![]() |
Form unload
Hallo
Bin mal gespannt, welche Antworten mich hier erwarten. Hoffentlich nicht so wie bei der Konkurrenz! Verstehe schon, dass diese Frage für viele einfach klingen mag, aber für mich nicht. Ich habe ne Login-Form, ist das Passwort korrekt wird eine weitere Form geöffnet, nur die Login-Form sollte ganz verschwinden. Wenn man sie nicht aus den Speicher lassen kann, dann reicht auch verstecken Hoffe, das krieg ich hier beantwortet :wink: MFG Web-SZ |
Re: Form unload
Form1.Hide!!
Es geht aber auch Form1.Close; |
Re: Form unload
Beng!
Das hat gesessen! Wie gesagt sorry für die Frage, habe schon VB programmiert und habe mich irgendwie eh gewundert, dass man da kein hide hernehmen kann (bei delphi) geht also doch :D hab noch eine Frage: kann ich ohne zusätzliche Kompomenten die Buttons nicht farbig machen? habe Delphi 7 Enterprise Danke für Infos Super Board hier najch drei min schon ne helfende Antwort MFG Web-SZ Edit: hm ne, bei close das hab ich erst auch probiert, nur der schließt gleich die ganze sache, also auch die nächste Form. |
Re: Form unload
hm zufrüh gefreut! jetzt habe ich dafür das prob, dass wenn ich jetzt danach die zweite form schließe, er sie nur ausblendet, aber nicht richtig wieder ins code-fenster zurückkehrt. also er bleibt lam laufen ohne form
mfg web-sz |
Re: Form unload
Dann musst du das Login-Form nicht als Hauptform nehmen, sondern als 'neben' form!!
Du willst also das Programm gleichzeitig beenden?? |
Re: Form unload
also ich sehe schon, ich bin ein wenig unerfahren, besser gesagt noch zu viel an vb angewöhnt!
also kannst du mir mal erklären, wie du sowas machen würdest? das etwas nebenform wird, etc.. dann habe ich noch eine frage: bei mir ist es im moment so, wenn ich dir zweiten form sage, dass sie beim aufruf messages ausgeben soll, dann kommen diese schon vor der login-form hervor. das heißt dass alles schon mal geladen wird. bitte erklär mir das genauer... ich brauche ne login-form, und wenn alles richtig ist, dann sollte sie ausgeblendet (rausgeschmissen wäre mir lieber :D )und ne zweite form geladen werden. diese ist maximiert und hat ne timer-uhr, der sage ich, dass sie form3 aufrufen soll, die auf 800x600 angepasst ist. dann schalte ich die timer aus. nur wäre da halt wichtig, dass form2 auch erst wirklich geladen wird, wenn ich es sage. danke für deine hilfe und vielleicht melden sich ja noch welche mfg web-sz |
Re: Form unload
Also, du kannst forms über form1.show anzeigen!!
Wenn Form2 jetzt das passwort logim ist, dann würde ich schreiben
Delphi-Quellcode:
Und so verschwindet das LogIn und Form3 wird angezeigt!!
if edit1.text = 'passwort' then
begin LogIn.Hide; Form3.show; end; |
Re: Form unload
achso du meinst, ich sollte eine form starten, diese zum beispiel maximiert, ihr per uhr sagen, dass sie login anzeigen soll und timer wieder disabeln.
und danach sage ich der login dass sie bei richtig verschwinden soll und form3 reinladen soll. meine frage/poroblem: ich sage der timer sie sollte login.show machen und dann sage ich timer1.enabled:=false; nur der macht das nicht und macht lsutig weiter nebeneffekt könnt ihr euch dann ja ausmalen :cry: danke für weitere hilfe |
Re: Form unload
Dann mach doch statt den Timer in die Create-Funktion von Form1 (Doppelklick auf Form1, entwicklungsumgebung), dass er LogIn.Show und Form3.show machen soll!!
Dann kann man sich den Timer sparen!! |
Re: Form unload
Du solltest auf jeden Fall 3 Forms haben:
Form1 (Hauptformular der Anwendung) Form2 (LoginFormular) Form3 (Arbeitsfenster) Form2 und Form3 weist Du im OI visible = false zu. In den Projektoptionen soll stehen, dass Formulare 1 und 3 automatisch erzeugt werden und Form1 das Hauptfenster ist. Im Ereignis OnShow der Form1 rufst Du Form2.ShowModal auf. Dort weist Du (je nach Erfolg des Login) Form2.ModalResult den Wert mrOK oder mrCancel zu, dadurch wird das Fenster geschlossen. (Dazu kann ich nichts genaueres sagen, weil ich nicht weiß, wie Dein Login funktioniert).
Delphi-Quellcode:
Was passiert?
var loginForm: TForm;
begin loginForm := TForm2.Create(Application); if Form2.ShowModal = mrOK then begin Form2.FreeAndNil; Form3.Show end else Form1.Close; end; 1. Form1 und Form3 werden erzeugt (d.h. speicher reserviert und der ganze kram. Das siehst Du auch in der 'Projekt'.dpr-Datei vor Application.Run. 2. Form1 (als Hauptformular) wird angezeigt. Dann wird OnShow ausgelöst. 3. In OnShow erzeugst Du eine Instanz des Loginfensters und zeigst es mit ShowModal an. Das heißt, dass das Fenster im Vordergrund bleibt (d.h. man nichts anderes in der Anwendung gleichzeitig machen kann). Wenn der Loginvorgang erfolgreich war (mrOK), wird Form2 befreit (und ist dann auch nicht mehr im Speicher) und Form3 angezeigt, in der wohl die eigentliche Arbeit des Programms abläuft. Wenn der Login fehlgeschlagen ist, wird Form1 geschlossen. Wenn Du das Hauptformular einer Anwendung schließt, wird die Anwendung beendet. Ich hoffe, das hat es klarer gemacht MFG Urs P.S. Timer oder sowas brauchst Du auf jeden fall nicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz