Jump to content
Fórum Script Brasil
  • 0

Dúvida de Quais Componentes Usar?


Arrais Júnior

Question

boa madrugada, antes de tudo, sou iniciante em Delphi e estive pensando em criar uma aplicação para estudo.

nesse aplicação seria feito um banco de dados em access e iria aparecer uma pergunta com algumas opções de resposta, gostaria de colocar aquele componente que só se pode marcar um (não lembro se e o checklist) e quando a pessoa marcasse, apareceria a confirmação da resposta certa ou errada.

obg.

Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

jhonas, me d uma luz aqui... hihihih

tipo, eu tava usando o radiobutton, ai botava no onclick dele para mudar a cor do item certo para verde e as demais para vermelho...

ok...assim dá certo ... mas...o problema disso é que eu teria que configurar todas as perguntas, respostas e tals,

eu queria fazer um estilo que desse para por as perguntas e resposta em um banco de dados access e que tivesse alguma forma de ESPECIFICAR a resposta correta, para que quando a pessoa apertasse na correta ele corrigir...

não sei como fazer isso.... não sei se existe um componente tipo o radiobutton para banco de dados...

obg.

Link to comment
Share on other sites

  • 0

veja:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    RadioGroup1: TRadioGroup;
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  // PERGUNTAS
  Label1.Caption := 'PERGUNTA: QUANTOS MINUTOS TEM 900 SEGUNDOS ?'
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   //  ALTERNATIVAS
   RadioGroup1.Caption := ' ALTERNATIVAS ';
   RadioGroup1.Items.Append('( A )'+'14 minutos');
   RadioGroup1.Items.Append('( B )'+'15 minutos');
   RadioGroup1.Items.Append('( C )'+'16 minutos');
   RadioGroup1.Items.Append('( D )'+'17 minutos');
end;

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
   // RESPOSTA CORRETA
   if RadioGroup1.ItemIndex = 1 then
      RadioGroup1.Color := $0080FF80
   else
      RadioGroup1.Color := $0070A5FC;
end;

end.
OBS: esse é um exemplo onde voce pode melhorar para conseguir fazer o que esta querendo 1 - com relação as perguntas, voce pode tira-las de um banco de dados aleatoriamente ou sequencial
Label1.Caption := tabela_pergunta.value;
2 - com relação as alternativas
RadioGroup1.Items.Append('( A )' + tabela_alternativa1.value);
   RadioGroup1.Items.Append('( B )' + tabela_alternativa2.value);
   RadioGroup1.Items.Append('( C )' + tabela_alternativa3.value);
   RadioGroup1.Items.Append('( D )' + tabela_alternativa4.value);
3 - com relação a resposta
if RadioGroup1.ItemIndex = tabela_resposta.value then
      RadioGroup1.Color := $0080FF80
   else
      RadioGroup1.Color := $0070A5FC;

então voce pode cirar uma tabela de perguntas com os campos :

Id

Pergunta

Resposta

e a tabela de alternativas

Id

Alternativa1

Alternativa2

Alternativa3

Alternativa4

onde o campo Id seria a referencia entre a tabela perguntas e alternativas

o campo resposta conteria o numero da alternativa correta

================================================

Use a imaginação e veja o que consegue fazer ...

abraço

Link to comment
Share on other sites

  • 0

usei a imaginação e....

fiz um banco de dados onde consta os seguintes campos

BDText1 (pergunta )

BDText2 (Item A )

BDText3 (Item B )

BDText4 (Item C )

BDText5 (Item D )

BDText6 (Item E )

BDText7 (Resposta Correta, indicada pelos numeros de 1 a 5)

OBS: o DBText7 ficará INVISIVEL (contendo um número de 1 a 5, como já dito).

Coloquei 5 RadioButtons

RadioButton1 = Correspondente ao Item A

RadioButton2 = Correspondente ao Item B

RadioButton3 = Correspondente ao Item C

RadioButton4 = Correspondente ao Item D

RadioButton5 = Correspondente ao Item E

... agora vem o problema... eu queria que QUANDO marcasse qualquer RadioButton fizesse uma leitura do NÚMERO que consta no DBText7 e mudasse a cor do RadioButton correspondente para verde e os demais ficariam da cor vermelha.

acho que essa maneira supre minhas necessidades =D vlws jhonas

Edited by Arrais Júnior
Link to comment
Share on other sites

  • 0

então...eu fiz aqui dessa maneira..

um botão para gerar perguntas e alternativas

RadioGroup1.Items.Append('( A ) ' + DBMemo2.Text);

RadioGroup1.Items.Append('( B ) ' + DBMemo3.Text);

RadioGroup1.Items.Append('( C ) ' + DBMemo4.Text);

RadioGroup1.Items.Append('( D ) ' + DBMemo5.Text);

tou com dificuldades para fazer a resposta, exemplo, eu queria algo assim...

onde no DBText1 seria o item da resposta correta, no entanto, não consigo fazer...dá erro.

// RESPOSTA CORRETA

if RadioGroup1.ItemIndex = (DBText1.Caption) then

RadioGroup1.Color := $0080FF80

else

RadioGroup1.Color := $0070A5FC;

end;

outra dúvida é... como eu faço para "resetar" o RadioGrup, pois quando eu boto para pegar mais valores de outras alternatavas, ele vai somando, 4,8,12,16, ... ..eu poderia botar para ele resetar em um botão para ficar pronto para receber mais alternativas. obg

Edited by Arrais Júnior
Link to comment
Share on other sites

  • 0

vlw jhonas, deu certíssimo aqui...não sei se você leu a ultima parte do post acima, porque eu tava editando quando você me respondeu...

outra dúvida é... como eu faço para "resetar" o RadioGrup, pois quando eu boto para pegar mais valores de outras alternatavas, ele vai somando, 4,8,12,16, ... ..eu poderia botar para ele resetar em um botão para ficar pronto para receber mais alternativas. obg

Link to comment
Share on other sites

  • 0

sei, eu tentei fazer com checkbox, no entanto, apesar de ter conseguido por em linhas, utilizando a propriedade WORDWRAP do CheckBox para setada em TRUE e com o cód.

CheckBox1.Caption:='123' + #13 + '456';

só que é um problema para mim, já que eu vou ter que tirar as alternativas de um banco de dados...

Eu estava pensando e acabei por botar 5 RadioButtons, sem caption e ao lado os DBMemo (onde será exibido a alternativa direto do banco de dados, porém, ainda não consegui pensar em uma maneira de associar o RadioButton1,2,3,4 e 5, ao Campo RESPOSTACORRETA que fica no banco de dados.

Lembre-se que quando utilizei o RadioGroup você me ensinou a fazer a associação através desse cód.

// RESPOSTA CORRETA

if RadioGroup1.ItemIndex = strtoint(DBText1.Caption) then

RadioGroup1.Color := $0080FF80

else

RadioGroup1.Color := $0070A5FC;

end;

... Você consegue visualizar uma possibilidade para esta minha dúvida???

Algum método para quando clicar em um botão ele ler o número que consta no campo RESPOSTACORRETA (DBText1) e então associar aos RadiosButtons, identificando o RadioButton1 como sendo o valor 1 do DBText1, o RadioButton2 como sendo o valor 2 do DBText1, e assim sucessivamente...

obg e desculpa pela dor de cabeça! :)

pensei em uma possibilidade meio que bizarra, mas que poderá funcionar...me ajuda a implementar...

no onclick do RadioButton1 eu vou por algo que faça isso "se DBText1.caption contiver o valor 1 muda-se a cor do DBMemo1.text pára verde, caso contrário muda-se a cor do DBMemo1.text para vermelho"

no onclick do RadioButton2 eu vou por algo que faça isso "se DBText1.caption contiver o valor 2 muda-se a cor do DBMemo2.text pára verde, caso contrário muda-se a cor do DBMemo2.text para vermelho"

daria certo? só não sei implementar isso

obg mais uma vez.

pensei em uma possibilidade meio que bizarra, mas que poderá funcionar...me ajuda a implementar...

no onclick do RadioButton1 eu vou por algo que faça isso "se DBText1.caption contiver o valor 1 muda-se a cor do DBMemo1.text pára verde, caso contrário muda-se a cor do DBMemo1.text para vermelho"

no onclick do RadioButton2 eu vou por algo que faça isso "se DBText1.caption contiver o valor 2 muda-se a cor do DBMemo2.text pára verde, caso contrário muda-se a cor do DBMemo2.text para vermelho"

daria certo? só não sei implementar isso

obg mais uma vez.

///////////////////////////////////////////////////////

vlws....eu fiz assim e deu certo

// RESPOSTA CORRETA

if DBText1.caption = ('1') then

DBMemo2.Color := $0080FF80

else

DBMemo2.Color := $0070A5FC;

.... obg

Edited by Arrais Júnior
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...