Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - fenster schließen


Zlatan - Di 18.01.11 16:34
Titel: fenster schließen
Ich möchte ein Quiz erstellen. Das bedeutet ich lasse bei richtiger antwort
(per buttonklick) eine neue Form erscheinen mit neuer Frage.
Ich möchte aber auch die vorherige Form (also Frage) schließen lassen damit man sie nicht nocheinmal beantworten kann.

??????? :?: :wink:


Moderiert von user profile iconMartok: Topic aus Sonstiges (Delphi) verschoben am Di 18.01.2011 um 15:41


Martok - Di 18.01.11 16:42

Hallo,

bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. In diesem Fall ist irgendwas in Richtung Fenster schließen wohl angebrachter. Hier der entsprechende Absatz aus den Richtlinien [http://www.entwickler-ecke.de/richtlinien.html]:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

Viele Grüße,
Martok


Nersgatt - Di 18.01.11 16:45

Trotz der vielen Fragezeichen kann ich keine Frage in Deinem Posting entdecken. Wobei hakt es denn bei Dir, wie hast Du es schon probiert?


zuma - Di 18.01.11 16:45

nen Quiz mit Form's pro Frage ??
Überdenke mal deinen Ansatz, der erscheint mir daneben.
Eine Form reicht, darin brauchst zu ein Objekt (Zb. Label, EditFeld, etc.), in dem du die Frage anzeigst,
ein Objekt für die Antwort (Checkbox, Editfeld, Radiogroup, etc) und mind. einen Button für die Auswertung. Den ganzen Rest (Liste der Fragen/Anworten verwalten, Steuerung fürs durchschalten der Fragen, etc.) kannst du intern machen.


HenryHux - Di 18.01.11 16:51

Vielleicht hilft dir das hier weiter:

http://www.delphibasics.co.uk/RTL.asp?Name=InputQuery

Ich denke, damit kann man das recht einfach und elegant lösen.

Lg


Zlatan - Di 18.01.11 16:54

Es ist im Prinzip egal, was ich mache.
Meine Frage lautet: Kann ich per Buttonklick eine einzige Form schließen, da der Close-Befehl immer gleich alles beendet?


ALF - Di 18.01.11 17:00

Na geht doch, ist ja wenigstens ne Frage :wink:
FormName.close
'Formname' steht für die Form die du schließen willst!

Gruss ALf

Ps: Du solltest wirklich Deinen Ansatz, mit x Formen überlegen!


HenryHux - Di 18.01.11 17:03

user profile iconZlatan hat folgendes geschrieben Zum zitierten Posting springen:
Es ist im Prinzip egal, was ich mache.
Meine Frage lautet: Kann ich per Buttonklick eine einzige Form schließen, da der Close-Befehl immer gleich alles beendet?


Mit Close schließt du immer die aktuelle Form. Bei der Hauptform bedeutet das den Abbruch des Programmes.
Wenn du es wirklich so realisieren willst, solltest du ein Hauptformular machen und aus diesem eine neue Form öffnen.
Diese kannst du dann mit close() schließen, ohne dass das ganze Programm beendet wird.
Ansonsten kannst du auch gezielt Formen schließen mit Name.close.

Ansonsten versuche doch mal das hier :

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var Answer : string;
begin
  InputQuery('Dies ist die Fensterüberschrift''Was ergibt 3+4?', Answer);
  if Answer = '7' then showmessage('Richtig!!')
  else ShowMessage('Leider Falsch');
end;


chrisw - Di 18.01.11 17:03

Du kannst, aus einem anderen Form heraus,ein Form anzeigen mit Form2.Show, nicht anzeigen Form2.Hide oder auch die Referenzen und Objecte des Forms entfernen mit Form2.Close.