Entwickler-Ecke
Sonstiges (Delphi) - Start-Formular <> MainForm
bl3nder - Mo 25.09.06 13:04
Titel: Start-Formular <> MainForm
Hi
Ich wuerde gerne beim Start meines Programmes zunaechst ein Formular anzeigen, worauf sich nur ein Bild befindet .
Beim Klicken auf dieses Bild soll erst dann das Hauptformular und eigentlich auch erst das ganze Programm geoeffnet werden.
Meine MainForm heisst leider Form1 ( hab das Umbenennen zu lange vergessen und jetzt zu faul alles umzschreiben ;) )
und das ImageForm heisst Form6
Wenn ich es so schreibe, startet sich leider trotzdem sofort die Form1 des Programms:
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:
| program Inventory;
uses Forms, Doku in 'Doku.pas' , Edit in 'Edit.pas' , Delete in 'Delete.pas' , Search in 'Search.pas' , Tausch in 'Tausch.pas' , Wait in 'Wait.pas' ;
{$R *.res}
begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm6, Form6); Form1.Hide; Form6.Show;
Application.Run; end. |
Bei Klick auf das Bild :
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm6.Image1Click(Sender: TObject); begin
Application.CreateForm(TForm2, Form2); Application.CreateForm(TForm3, Form3); Application.CreateForm(TForm4, Form4); Application.CreateForm(TForm5, Form5);
Form1.Show; Form2.Hide; Form3.Hide; Form4.Hide; Form6.Close; Form6.Free; end; |
wulfskin - Mo 25.09.06 13:26
Hallo,
du kannst im Nachhinein deine MainForm in den Optionen umstellen. Wenn du das nicht möchtest, dann würde ich das Logofenster dynamisch erzeugen und nach dem Click wieder freigeben.
Die MainForm kannst du dann mit ShowMainForm := False zunächst ausblenden.
Gruß Hape!
bl3nder - Mo 25.09.06 13:43
Hi
Das Fenster dynamisch zu erzeugen hab ich doch probiert oder ?
Zunaechst moechte ich die MainForm verbergen mit Form1.Hide und lasse Form6 anzeigen, was sich bei Klick auf Form6 wieder aendert. Aber das funzt so nicht.
Das Umstellen der MainForm kenn ich schon, doch wuerd ich gerne das so beibehalten.
ShowMainForm := false geht bei mir nicht
wulfskin - Mo 25.09.06 14:13
Delphi-Quelltext
1:
| Application.ShowMainForm := False |
Und mit dynamisch erstellen meinte ich sowas in der Art:
Delphi-Quelltext
1: 2: 3: 4:
| Form6 := TForm6.Create(Self);
Action := caFree; |
Denn Rest würde ich wieder aus der Projektdatei entfernen!
Gruß Hape!
bl3nder - Mo 25.09.06 14:30
Danke jetzt gehts
Hier der Code fuer alle Googelnden ;)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| begin
Application.Initialize;
Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.CreateForm(TForm3, Form3); Application.CreateForm(TForm4, Form4); Application.CreateForm(TForm5, Form5); Application.CreateForm(TForm6, Form6);
Application.ShowMainForm := False;
Form6.Show;
Application.Run; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm6.Image1Click(Sender: TObject); begin Application.ShowMainForm := true; Form1.Show; Form6.Close; end; |
wulfskin - Mo 25.09.06 14:34
Hallo,
schön das es funktioniert. Dennoch erstellst du dein Formular 6 immer noch nicht dynamisch. Du zeigst es an und versteckst es wieder, gibt es aber nicht frei.
Gruß Hape!
bl3nder - Mo 25.09.06 14:54
in Image1Click dann ein Form6.Free ?
wulfskin - Mo 25.09.06 15:17
bl3nder hat folgendes geschrieben: |
| in Image1Click dann ein Form6.Free ? |
Geht wohl eher nicht. Benutz dafür das Ereignis
OnClose. Allerdings musst du es dann auch dynamisch erstellen, zum Beispiel in
OnCreate und in den Optionen festlegen, dass es nicht automatisch erzeugt werden soll! Warum zeigst du das Formular eigentlich nicht Modal an?
Gruß Hape!
bl3nder - Mo 25.09.06 15:37
Wusst ich nicht ;)
Dann mach ichs Modal
Danke
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!