Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida de Quais Componentes Usar?


Arrais Júnior

Pergunta

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 para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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

Editado por Arrais Júnior
Link para o comentário
Compartilhar em outros 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

Editado por Arrais Júnior
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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

Editado por Arrais Júnior
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...