Mainform ändern[gelöst]
-
- Beiträge: 465
- Registriert: Sa 21. Aug 2010, 21:30
- OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
- CPU-Target: 64-Bit
- Wohnort: nahe Bremen
- Kontaktdaten:
Mainform ändern[gelöst]
ist es möglich die mainform wärend das programm gestartet ist zu ändern?
hab jetzt schon gut ne viertelstunde danach gesucht bin aber leider nicht fündig geworden.
hab jetzt schon gut ne viertelstunde danach gesucht bin aber leider nicht fündig geworden.
Zuletzt geändert von Bauer321 am Di 28. Dez 2010, 00:11, insgesamt 1-mal geändert.
www.mcpatcher.net | www.hoeper.me
-
- Beiträge: 465
- Registriert: Sa 21. Aug 2010, 21:30
- OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
- CPU-Target: 64-Bit
- Wohnort: nahe Bremen
- Kontaktdaten:
Re: Mainform ändern
hmm okay danke schonmal 
ich hätte gleich anders fragen sollen und zwar würde ich dann noch gerne wissen wie

ich hätte gleich anders fragen sollen und zwar würde ich dann noch gerne wissen wie
www.mcpatcher.net | www.hoeper.me
-
- Beiträge: 465
- Registriert: Sa 21. Aug 2010, 21:30
- OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
- CPU-Target: 64-Bit
- Wohnort: nahe Bremen
- Kontaktdaten:
Re: Mainform ändern
aslo ich hab mehrere formen.
nehmen wir mal Form1, Form2, Form3.
Jetzt ist wenn ich das Programm starte Form1 die Mainform. Das möchte ich ändern und zwar soll Form2 die Mainform sein(das ganze wärend das programm läuft wie man bei lazarus einstellt das grundsätzlich Formx die mainform ist das weiß ich)
nehmen wir mal Form1, Form2, Form3.
Jetzt ist wenn ich das Programm starte Form1 die Mainform. Das möchte ich ändern und zwar soll Form2 die Mainform sein(das ganze wärend das programm läuft wie man bei lazarus einstellt das grundsätzlich Formx die mainform ist das weiß ich)
www.mcpatcher.net | www.hoeper.me
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Mainform ändern
Wieso? Was soll es denn werden?
Mal ein wenig genauer erläutern was Du haben möchtest, warscheinlich gibt es eine besser Lösung. als die MainForum anders fest zu legen.
Mal ein wenig genauer erläutern was Du haben möchtest, warscheinlich gibt es eine besser Lösung. als die MainForum anders fest zu legen.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 465
- Registriert: Sa 21. Aug 2010, 21:30
- OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
- CPU-Target: 64-Bit
- Wohnort: nahe Bremen
- Kontaktdaten:
Re: Mainform ändern
also das soll halt erst nen login sein und dann sollen wenn der erfolgreich war ne andere form erstellt und als mainform festgelegt werden
www.mcpatcher.net | www.hoeper.me
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Mainform ändern
Schau dir bitte mal den Quelltext deines Projektes an (Menü »Projekt -> Quelltext anzeigen«).Bauer321 hat geschrieben:also das soll halt erst nen login sein und dann sollen wenn der erfolgreich war ne andere form erstellt und als mainform festgelegt werden
Da findest du folgende (oder ähnliche) Zeilen:
Code: Alles auswählen
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
Daher musst du einen anderen Weg wählen, z.B. das Login-Formular anders erstellen oder woanders aufrufen und das Hauptformular im Fehlerfall gar nicht erst zeigen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Mainform ändern
Also, dieser Code erzeugt zu erst das Form1. Das ist auch die Main-Form.
Um ein Login zu machen, machst Du einfach in From1.OnCreate ein neues Formular 2 auf und zeigst es an.
Sollte das Passwort nicht richtig sein, dann ein HALT Befehlt oder Application.Terminate.
Somit:
- Formular 2 wird zu erst gezeigt und sonst nichts.
- bei falschen Passwort verschwindet die EXE wieder.
Ich löse solche Dinge immer anders:
- Formular 1 ganz normal erzeugen, aber die Datenbank geschlossen halten.
- Über Timer, nach 100 ms zeige ich den Passwortdialog, Modal.
- Falsches Passwort >> Terminate.
Vorteile:
- Man kann das Main-Programm schon sehen aber nicht bedienen.
- Der User weiß wofür er ein Passwort eingibt.
- Das Formular zeigt sich deutlich schneller, als wie wenn erst die Daten im Hintergrund geöffnet werden. Denn sonst müsste der User unter Umständen erst einige Sekunden warten und es tut sich nichts am Bildschirm, so sieht er wenigstens das Programm mit dem Mauscursor crHourGlass und weiß somit dass er warten muss.
Um ein Login zu machen, machst Du einfach in From1.OnCreate ein neues Formular 2 auf und zeigst es an.
Sollte das Passwort nicht richtig sein, dann ein HALT Befehlt oder Application.Terminate.
Somit:
- Formular 2 wird zu erst gezeigt und sonst nichts.
- bei falschen Passwort verschwindet die EXE wieder.
Ich löse solche Dinge immer anders:
- Formular 1 ganz normal erzeugen, aber die Datenbank geschlossen halten.
- Über Timer, nach 100 ms zeige ich den Passwortdialog, Modal.
- Falsches Passwort >> Terminate.
Vorteile:
- Man kann das Main-Programm schon sehen aber nicht bedienen.
- Der User weiß wofür er ein Passwort eingibt.
- Das Formular zeigt sich deutlich schneller, als wie wenn erst die Daten im Hintergrund geöffnet werden. Denn sonst müsste der User unter Umständen erst einige Sekunden warten und es tut sich nichts am Bildschirm, so sieht er wenigstens das Programm mit dem Mauscursor crHourGlass und weiß somit dass er warten muss.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 465
- Registriert: Sa 21. Aug 2010, 21:30
- OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
- CPU-Target: 64-Bit
- Wohnort: nahe Bremen
- Kontaktdaten:
Re: Mainform ändern
will der bei mir nicht machen:
den timer lasse ich im oncreate ereignis aktivieren und x ist auf 1 gestzt das intervall ist 100
Code: Alles auswählen
procedure TFMain.starttimerTimer(Sender: TObject);
begin
x := x + 1;
if x = 5 then
begin
FLogin.ShowModal;
starttimer.enabled := false;
end;
end;
Zuletzt geändert von Lori am Mi 29. Dez 2010, 16:21, insgesamt 1-mal geändert.
Grund: Highlighter
Grund: Highlighter
www.mcpatcher.net | www.hoeper.me
Re: Mainform ändern
Wofür ist denn das x?
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Mainform ändern
So ist es besser:
Code: Alles auswählen
procedure TFMain.starttimerTimer(Sender: TObject);
begin
starttimer.enabled := false;
If FLogin.ShowModal <> mrOK Then Halt; // Wenn jemand die Abbruch-Taste drückt, Programm beenden.
.....
If Passwort_Falsch Then
starttimer.enabled := true; // Passwort darf neu eingegeben werden
end;
Zuletzt geändert von Lori am Mi 29. Dez 2010, 16:23, insgesamt 1-mal geändert.
Grund: Highlighter
Grund: Highlighter
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 465
- Registriert: Sa 21. Aug 2010, 21:30
- OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
- CPU-Target: 64-Bit
- Wohnort: nahe Bremen
- Kontaktdaten:
Re: Mainform ändern
geht danke
ich weiß auch nicht wieso das vorher nicht der fall war wahrscheinlich wars einfach zu umständlich^^ morgen dann mal an mysql ranmachen 


www.mcpatcher.net | www.hoeper.me