Mainform ändern[gelöst]

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Bauer321
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]

Beitrag von Bauer321 »

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.
Zuletzt geändert von Bauer321 am Di 28. Dez 2010, 00:11, insgesamt 1-mal geändert.
www.mcpatcher.net | www.hoeper.me

shokwave
Beiträge: 475
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Mainform ändern

Beitrag von shokwave »

Ja.
mfg Ingo

Bauer321
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

Beitrag von Bauer321 »

hmm okay danke schonmal ;)

ich hätte gleich anders fragen sollen und zwar würde ich dann noch gerne wissen wie
www.mcpatcher.net | www.hoeper.me

shokwave
Beiträge: 475
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Mainform ändern

Beitrag von shokwave »

Naja, kommt darauf an was du an der Form ändern willst. :)
mfg Ingo

Bauer321
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

Beitrag von Bauer321 »

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)
www.mcpatcher.net | www.hoeper.me

MmVisual
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

Beitrag von MmVisual »

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.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Bauer321
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

Beitrag von Bauer321 »

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

Socke
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

Beitrag von Socke »

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
Schau dir bitte mal den Quelltext deines Projektes an (Menü »Projekt -> Quelltext anzeigen«).
Da findest du folgende (oder ähnliche) Zeilen:

Code: Alles auswählen

Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
Das erste Formular, das mit CreateForm() erstellt wird, ist immer das Hauptformular und wird diese Rolle auch nicht mehr los -- das ist so beabsichtigt und soll auch so sein.
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

MmVisual
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

Beitrag von MmVisual »

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.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Bauer321
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

Beitrag von Bauer321 »

will der bei mir nicht machen:

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;
den timer lasse ich im oncreate ereignis aktivieren und x ist auf 1 gestzt das intervall ist 100
Zuletzt geändert von Lori am Mi 29. Dez 2010, 16:21, insgesamt 1-mal geändert.
Grund: Highlighter
www.mcpatcher.net | www.hoeper.me

Benutzeravatar
theo
Beiträge: 10872
Registriert: Mo 11. Sep 2006, 19:01

Re: Mainform ändern

Beitrag von theo »

Wofür ist denn das x?

MmVisual
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

Beitrag von MmVisual »

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
EleLa - Elektronik Lagerverwaltung - www.elela.de

Bauer321
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

Beitrag von Bauer321 »

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

Antworten