AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

While Schleife um Application.Run

Ein Thema von backdraft · begonnen am 1. Jun 2006 · letzter Beitrag vom 2. Jun 2006
Antwort Antwort
backdraft

Registriert seit: 19. Apr 2005
Ort: Hückeswagen
335 Beiträge
 
Delphi 11 Alexandria
 
#1

While Schleife um Application.Run

  Alt 1. Jun 2006, 20:10
Hallo zusammen,

ich möchte einen Login Dialog machen, der vor der Mainform ausgeführt wird.
Dann soll die Möglichkeit bestehen, das man sich abmelden und neu anmelden kann.

Dachte ich mach es einfach so:

Delphi-Quellcode:
 WHILE TRUE DO BEGIN
  IF NOT(frm_Login.Create(self).Execute) THEN halt;
  Application.Run;
  IF vabmelden = FALSE THEN break;
 END;
klappt aber gar nicht. geht trotzdem immer raus...
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: While Schleife um Application.Run

  Alt 1. Jun 2006, 20:49
ich seh hier aber auch nirgends etwas das die variable vabmelden auf False setzt. Desweiteren seh ich den Sinn hier nicht. Application.Run startet die Nachrichtenschleife. Wenn die ganzen Forms aber zuerstört sind etc. macht das 0 sinn.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#3

Re: While Schleife um Application.Run

  Alt 2. Jun 2006, 10:07
Hallo Backdraft,

deine Idee ist logisch gesehen richtig, du musst aber wissen, dass wie SirThornberry bereits angemerkt hatte Application.Run nicht dein Hauptformular darstellt.

Du müßtest also das Hauptformular ebenfalls in der Schleife erzeugen, womit wir zum nächsten Problemchen kommen.
Deine Delphianwendung kennt nur ein Hauptformular, dieses definiert sich darüber welches Form zuerst erzeugt wird (ist evtl. über das APplication-Objekt im nachhinnein änderbar, bin mir da aber nicht sicher). Wird dieses "Hauptforumlar" geschlossen, wird das Application.Run, also deine Nachrichtenschleife verlassen und die Anwendung beendet sich normalerweise.

An deiner Stelle würde ich das so machen, dass ich das Loginform vor der Schleife erzeuge, in der Schleife mit showModal anzeige und den Rückgabewert auswerte.
Wenn der Rückgabewert ok ist, zeige ich das eigentliche Forumlar an. Somit ist das Loginform das Hauptformular und es sollte eigentlich funktionieren. Ein Action:= caHide; in der OnClose des Loginforms müßtest du allerdings auch verwenden. In die OnClose des Hauptformulars schreibst du sendMessage(Application.handle, WM_QUIT, 0, 0); Dies durchbricht die Nachrichtenschleife in Application.run, somit brauchst du dir keine eigene Programmieren, die nur solange läuft, wie das Form existiert.

Oder du machst ein drittes Form zur Hauptform, lässt alles wie es ist und die beiden Login+Hauptschirm rufen sich nur gegenseitig auf.
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz