Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Loginfenster schließen aber Anwendung offen lassen? (https://www.delphipraxis.net/69427-loginfenster-schliessen-aber-anwendung-offen-lassen.html)

hronny 15. Mai 2006 06:57


Loginfenster schließen aber Anwendung offen lassen?
 
Hallo. Ich wollte jetzt nachträglich so eine Art LoginFenster haben, um die Benutzer mit Ihren Rechten in der Datenbank abzufragen. Also hab ich eine Form erzeugt mit Benutzer, Passwort, Einloggen und Abbrechen. Diese Form ist Stay-On-Top und hat keine Titelleiste. Zudem habe ich es in den Optionen als HauptFenster gesetzt. Das einloggen würde theoretisch funktionieren, nur wie krieg ich das Fenster zu ohne die Anwendung zu schließen?
Ich hab es mit Close und frmLOGIN.Close; versucht, aber da geht alles zu. Dann hab ich das Login auf Visible:=false gesetzt, an sich eine schöne Sache, nur kann ich nun das Programm aus meinen bestehenden Forms mit Close nicht schließen. Jetzt steh ich vor einer Sackgasse. Mit der Forensuche bin ich nur über SplashScreens gestolpert aber daraus werd ich nicht schlau bzw denke ich ist das nicht der richtige Weg.
Wie habt ihr so ein Login gelöst?

SirThornberry 15. Mai 2006 07:02

Re: Loginfenster schließen aber Anwendung offen lassen?
 
einfach das Fenster nicht als Hauptfenster nehmen wäre die einfachste Lösung. Was spricht dagegen?

hronny 15. Mai 2006 07:04

Re: Loginfenster schließen aber Anwendung offen lassen?
 
Ich will ja vorher abfragen was der Benutzer darf. Das muss ich machen bevor die Anwendung weiter ausgeführt wird.

Luckie 15. Mai 2006 07:05

Re: Loginfenster schließen aber Anwendung offen lassen?
 
Die zweite Möglichkiet ar schon richtig. Du musst nur schreiben frmLogin.Close, da die Login-Form jetzt deine Hauptform ist. Oder wenn du das nicht willst und die Login-Form nicht dein Hauptfenster sein soll, machst du es so:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    bFirstTime: Boolean
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}


procedure TForm1.FormShow(Sender: TObject);
begin
  if bFirstTime then
  begin
    bFirstTime := False;
    Form2.ShowModal;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  bFirstTime := True;
end;

hronny 15. Mai 2006 07:12

Re: Loginfenster schließen aber Anwendung offen lassen?
 
Wenn ich es als Hauptform lösen könnte wäre es schon gut so. Aber bei mir schliest sich alles mit frmLOGIN.Close. Oder ist da falsch die nächste Form mit Show aufzurufen?
Delphi-Quellcode:
  if (i <> 1) then begin
  ShowMessage('Benutzername oder Kennwort falsch');
end
else begin
  frmMAIN.Show;
  frmLOGIN.Close;
end;

Luckie 15. Mai 2006 07:15

Re: Loginfenster schließen aber Anwendung offen lassen?
 
Zitat:

Zitat von hronny
Aber bei mir schliest sich alles mit frmLOGIN.Close.

Dann ist deine LoginForm noch deine Hauptform. Mach es so wie ich oben und schließe die LoginForm nur, wenn die Eingaben stimmen.

hronny 15. Mai 2006 07:40

Re: Loginfenster schließen aber Anwendung offen lassen?
 
Gut dann mach ich es so. Beim Fenster schließen hab ich noch ein frmMAIN.Close eingebaut somit schließt sich das Hauptfenster und die Anwendung wird beendet. Das sehe ich so richtig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:30 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