Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - form öffnen


Zlatan - Do 20.01.11 19:14
Titel: form öffnen
Cih habe ein Quiz erstellt, das auf einer form 6 fragen produzieren kann.
4 buttons dienen als antworten
nun stimmt ein button bei zwei antworten.
wenn der richtige button geantwortet wurde soll sich form2 öffnen und wenn falsch dann
form3.

Mein Quelltext:

Button1click...

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
begin
if (Label1.Caption='...'or (Label1.Caption='###')
then
begin
Form2.Show;
Form1.close;
end else                                             / Formname ist hier egal
Form1.Close;
Form3.Show;     
end;



allerdings öffnet der mir dann sowohl die nächste frage als auch die andere Form. Die antwort ist also richtig und falsch zugleich

Moderiert von user profile iconMartok: Delphi-Tags gesetzt
Moderiert von user profile iconMartok: Topic aus Sonstiges (Delphi) verschoben am Do 20.01.2011 um 18:43


Tilman - Do 20.01.11 19:19


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
begin
if (LAbel1.Caption='...'or (Label1.Caption='###')
then
begin
  Form2.Show;
  Form1.close;
end else / formname ist hier egal
begin <--- FEHLT  
  Form1.Close;
  Form3.Show;
end; <-- und das natürlich auch.

end;


Da fehlt ein "Begin".


Zlatan - Do 20.01.11 19:23

ist das nicht egal das geht auch ohne das funktioniert noch nicht mal mit diesem begin
das problem ist das der die antwort als falsch und richtig zugleich ansieht


Tilman - Do 20.01.11 19:26

Dadurch dass das Begin (und ein weiteres end; am ende) fehlt, wird halt form3 jedesmal geöffnet. Wenn das so sein soll, dann ist es egal.


Zlatan - Do 20.01.11 19:27


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm11.Button3Click(Sender: TObject);
begin
if   (Label2.Caption='Welcher dieser Vögel ist der beste Schwimmer und Taucher?'or (Label2.Caption= 'Welcher dieser Vögel frisst hauptsächlich Fisch?')
 then begin
Form11.Close;
Form12.Show;
end else

Form11.Close;
Form4.Show;
end;



hilft das weiter???
das ist das orginal so der öffnet Form4 und Form12 und schließt Form11
Er soll aber entweder Form4 oder Form12 öffnen


Zlatan - Do 20.01.11 19:31

Sorry tatsächlich fehlten begin und end
DANKE


Tilman - Do 20.01.11 19:37

Gerne :) Denk vor allem daran deinen Code immer schön einzurücken, dann sieht man nämlich am besten ob Blöcke (begin...end) korrekt sind. Ein weiterer "Trick" besteht darin, hinter jedes end; einen Kommentar // zu schreiben, z.B.

Delphi-Quelltext
1:
2:
3:
4:
5:
procedure MeineProzedur;
if bla then
  begin
  end// if bla
end// MeineProzedur


Dann kann man beim Programmieren am leichtesten erkennen, wo etwas falsch läuft, und die end's sauber unterscheiden :)