Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Form per button aufrufen
klausiemausie - Mi 04.02.09 00:28
Titel: Form per button aufrufen
Ich habe folgendes Problem,
ich habe ein Spiel programmiert, und habe nun nachdem ich fertig bin mir überlegt noch einen Startbildschirm zu erstellen. hab ich gemacht mit einer neuen form.
auf dieser form wird der name von spieler 1 und 2 eingetragen, per klick auf den button "start" sollen nun die namen als stringvariable eingelesen werden, was nich das problem ist, und das programm gestartet werden, also die form 1 aufgerufen werden. wie bekomm ich das hin, dass zu erst nur diese form angezeigt wird, und dann per klick auf den button die eigentliche hauptform erscheint?
danke im vorraus
gruss klaus
freedy - Mi 04.02.09 00:33
Hallo Klaus,
es gibt verschiedene Wege. Am schnellsten dürfte es gehen, wenn du dein Hauptformular "Visible := false" setzt. Erst wenn das Spiel gestartet wird, machst du es sichtbar. Dies kann direkt im Designer eingestellt werden. Ist das Spiel beendet, machst du es wieder unsichtbar. Das ist nicht besonders elegant, sollte aber zu dem führen, was du dir vorstellst.
Grüße,
Michael
Jens Hartmann - Mi 04.02.09 00:37
Hallo erstmal,
Ich habe sowas mit einer Lizenzabfrage gelößt.
Du mußt die Einbindung in der Projektdatei einfügen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
|
begin TStart := TTStart.Create(Application); case TStart.ShowModal of mrOk: begin Application.CreateForm(TForm1, Form1); Application.Run; end; |
MFG
Jens
Jens Hartmann - Mi 04.02.09 00:41
Ach so,
Du kannst natürlich mit:
Delphi-Quelltext
1:
| if Start.ShowModal = mrOK then |
arbeiten. Die Case Anweisung war noch von meiner Lizenzabfrage.
Gruß
Jens
klausiemausie - Mi 04.02.09 00:51
für TStart setze ich dann meine form ein? also in meinem Fall TForm37? weil wenn ich das so mache funktioniert das nicht, [Error] Project2.dpr(47): Left side cannot be assigned to, bekomme ich als fehlermeldung
klausiemausie - Mi 04.02.09 00:54
hat sich erledigt, ich habe einen anderen Weg gefunden, ich verschiebe in der projektdatei einfach die create von der entsprechenden form ganz nach oben, trotzdem danke
gruss klaus
Jens Hartmann - Fr 06.02.09 08:08
Nein, Du musst natürlich als erstes die Form TStart.Create und nachher die if-Abfrage durchführen.
Habe momentan mein Codes nicht hier, werde dir heute Nachmittag mal die komplette Projektdatei einstellen.
MFG
Jens
jaenicke - Fr 06.02.09 16:00
klausiemausie hat folgendes geschrieben : |
| für TStart setze ich dann meine form ein? also in meinem Fall TForm37? weil wenn ich das so mache funktioniert das nicht, [Error] Project2.dpr(47): Left side cannot be assigned to, bekomme ich als fehlermeldung |
Das liegt daran, dass die Benennung in dem Beispiel nicht standardkonform ist.
So kann man das nicht so einfach überblicken. Deshalb sollte man sich an die Benennungsstandards ja auch halten. (Typbezeichner bekommen ein T vorgestellt, Variablen natürlich nicht.)
Jens Hartmann hat folgendes geschrieben : |
Delphi-Quelltext 1: 2:
| begin TStart := TTStart.Create(Application); | |
TStart ist hier kein Typ sondern die Variable vom Typ TTStart. :shock:
TStart wäre bei dir also Form37 und TTStart TForm37. ;-)
Zudem müsstest du das Formular aus den automatisch erzeugten herausnehmen.
Jens Hartmann - Fr 06.02.09 18:27
Sorry,
ja ich weiß, meine Benennung in meinem Beispiel ist nicht Standartkonform. Ich habe die aus meinem Programm kopiert.
Da fehlt mir leider auch manchmal noch das nötige wissen.
Ich hoffe trotzdem das meine Hilfe irgendwo weitergeholfen hat.
MFG
Jens
PS. Ich versuche natürlich auch so gut wie möglich zu helfen, da mir hier und bei DP auch immer geholfen wird.
Ud ich denke der Ansatz war schon ganz OK.
jaenicke - Fr 06.02.09 19:00
Jens Hartmann hat folgendes geschrieben : |
ja ich weiß, meine Benennung in meinem Beispiel ist nicht Standartkonform. Ich habe die aus meinem Programm kopiert.
Da fehlt mir leider auch manchmal noch das nötige wissen. |
Schau mal hier, es gibt einen Styleguide, nach dem du dich richten kannst:
http://www.delphi-treff.de/delphi-styleguide/
(Du warst das ja glaube ich mit dem "little English"? ;-) Deshalb ist diese deutsche Variante wohl am besten geeignet statt dem englischen Original.)
Jens Hartmann hat folgendes geschrieben : |
| Ud ich denke der Ansatz war schon ganz OK. |
Sicher, die Benennung hat ja nur für etwas Verwirrung gesorgt. ;-)
Jens Hartmann - Fr 06.02.09 19:29
Alles klar,
werde das gleich mal durcharbeiten und-->
jawohl ich war der mit dem little Englisch. Wird aber von Tag zu Tag besser.
MFG
Jens
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!