Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Form vor Mainform
anno2007 - So 29.03.09 21:22
Titel: Form vor Mainform
Hi,
ich brauche wieder eure Hilfe :S.
Ich habe jetzt eine MainForm erstellt, in der eig. alles drin ist.
Jetzt will ich noch eine kleine Form erstellen, die erscheint und erst beim Buttonclick soll die MainForm aufgerufen werden.
Mein Problem liegt Hauptsächlich darin die erstellte GUI am Anfang aufzurufen, bzw. die MainForm zu verstecken.
Danke für die Tips :).
anno2007
FinnO - So 29.03.09 21:25
Einfach im Objektinspektor dein Mainform.Visble auf False stellen und bei deinem kleinen Form auf True. Dann im Buttonclick-Ereignis
Delphi-Quelltext
1: 2: 3: 4:
| begin Mainform.Show; Kleinform.Hide; end; |
anno2007 - So 29.03.09 21:32
Danke für die Antwort.
Das hab ich eben schon probiert, aber das funktioniert so leider nicht.
Die kleine GUI wird zwar angezeigt, aber die wird MainForm trotz Visible = False angezeigt.
Wo könnte das dran liegen?
jaenicke - So 29.03.09 21:40
Schreib das doch einfach in den Projektquelltext (Projekt --> Quelltext anzeigen), wobei frmSplashScreen dein Startfensterchen ist:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| program Project1;
uses Forms, Unit1 in 'Unit1.pas' , Unit2 in 'Unit2.pas' ;
{$R *.res}
begin frmSplashScreen := TfrmSplashScreen.Create(nil); frmSplashScreen.ShowModal; frmSplashScreen.Free;
Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. |
Du kannst auch den Rückgabewert von ShowModal auswerten, wenn mit verschiedenen Buttons verschiedene Aktionen ausgelöst werden sollen. Die Buttons müssten dann ModalResult setzen.
anno2007 - So 29.03.09 22:08
Das ist schonmal perfekt, das richtige Fenster startet :) .
Aber wie zeige ich jetzt bei dem ButtonClick die MainForm wieder an?
Wie werte ich den Rückgabewert von ShowModal aus?
Dankeschön 8)
Yogu - So 29.03.09 22:59
anno2007 hat folgendes geschrieben : |
| Aber wie zeige ich jetzt bei dem ButtonClick die MainForm wieder an? |
Du brauchst das Formular nur zu schließen (
Close;), dann geht's weiter im Code und das Hauptformular wird angezeigt.
anno2007 hat folgendes geschrieben : |
| Wie werte ich den Rückgabewert von ShowModal aus? |
Auswerten kannst du ihn wie folgt:
Delphi-Quelltext
1: 2: 3: 4:
| case frmSplashScreen.ShowModal of mrAbort: Halt; mrOk: end; |
JayEff - So 29.03.09 23:07
Yogu hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3: 4:
| case frmSplashScreen.ShowModal of mrAbort: Halt; mrOk: end; | |
Aber das is nich dein Ernst, dass du [zitat Luckie] dein Auto zum Bremsen vor nen Baum fährst, anstatt die Bremse zu ziehen[sinngemäß]? :mrgreen:
Halt bitte nicht einsetzen. Wie gesagt. Auto gegen nen Baum fahren und so. Besser wäre natürlich:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| program Project1;
uses Forms, Unit1 in 'Unit1.pas' , Unit2 in 'Unit2.pas' ;
{$R *.res}
var SplashResult: Integer;
begin frmSplashScreen := TfrmSplashScreen.Create(nil); SplashResult := frmSplashScreen.ShowModal;
frmSplashScreen.Free;
if SplashResult = mrOK then begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end; end. |
Das heißt in dem Fall natürlich: Nur wenn meine Splash-Form mrOK liefert wird mein Programm ganz normal ausgeführt, an sonsten passiert nichts bzw. der Else-Zweig.
Wenn du einfach im Hauptfenster auswerten willst, was passiert ist, dann müsstest du irgendwie dem Hauptfenster die Variable SplashResult zukommen lassen, weiß jetzt nicht genau, wie.
Yogu - So 29.03.09 23:29
Meine Güte,
anno2007 wollte ein Beispiel, wie man den Rückgabewert auswertet. Wenn es dich beruhigt, schreibe ich halt noch was drüber:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| type EFaltalException = class(Exception)
procedure Halt; begin raise EFatalException.Create('Evil developer tried to shutdown this '+ 'application very bad. To keep your safety, it will do it in a '+ 'different way.'); end; |
:mrgreen:
JayEff - Mo 30.03.09 00:04
Yogu hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3:
| raise EFatalException.Create('Evil developer tried to shutdown this '+ 'application very badly. To keep your safety, it will do it in a '+ 'different way.'); | |
Wobei das mehr sowas heißt wie "hätte es verdammt gern getan", "gab sein bestes". Besser wäre "tried to shut [it] down in a very bad way" :mrgreen:
Aber genug :rofl:
Yogu - Mo 30.03.09 10:33
Ich wusste ja schon immer, dass ich kein Englisch kann. :bawling:
(aber jetzt war's wirklich genug offtopic...)
anno2007 - Mo 30.03.09 17:40
Danke,
funzt jetzt perfekt :wink:
anno2007
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!