Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Application.ShowMainForm:= False Rückgängig machen Ohne Self.Show (https://www.delphipraxis.net/152303-application-showmainform-%3D-false-rueckgaengig-machen-ohne-self-show.html)

Fussel9 17. Jun 2010 17:14

Delphi-Version: 2006

Application.ShowMainForm:= False Rückgängig machen Ohne Self.Show
 
Hi, in meiner Anwendung führe ich am Anfang direkt den Befehl Application.ShowMainForm:=False aus,
in einem anderen Formular kann man dann ein Passwort eingeben und dann soll die MainForm wieder sichtbar werden.

Application.ShowMainForm:=True funktioniert nicht, da kommt nur ein *Bing* und die Form wird nicht angezeit...
FormMain.Show geht leider auch nicht, da ich UMain nicht in die Uses einfügen kann, weil sonst eine Zirkuläre Unit-Refferenz entsteht...

Daher meine Frage: Gibt es eine andere Möglichkeit das Hauptformular wieder sichtbar zu machen oder die Zirkuläre Unit-Refferenz zu umgehen?

DeddyH 17. Jun 2010 17:23

AW: Application.ShowMainForm:= False Rückgängig machen Ohne Self.Show
 
Zitat:

Zitat von Fussel9 (Beitrag 1029711)
FormMain.Show geht leider auch nicht, da ich UMain nicht in die Uses einfügen kann, weil sonst eine Zirkuläre Unit-Refferenz entsteht...

Du weißt aber, dass Du 2 uses-Klauseln definieren kannst?

Fussel9 17. Jun 2010 17:27

AW: Application.ShowMainForm:= False Rückgängig machen Ohne Self.Show
 
Nein,
könntest du das erklären?

EDIT:

Oh, habe es schon selbst herrausgefunden.
ABer ich wusste wirklich nicht das das zwei verschiedene sind....

danke

DeddyH 17. Jun 2010 17:29

AW: Application.ShowMainForm:= False Rückgängig machen Ohne Self.Show
 
Es gibt einen interface-Abschnitt und einen implementation-Abschnitt. Beide können eine eigene uses-Klausel enthalten. Übrigens übernimmt Delphi das selbst gern für Dich (auf Nachfrage).

Fussel9 17. Jun 2010 17:42

AW: Application.ShowMainForm:= False Rückgängig machen Ohne Self.Show
 
Delphi-Quellcode:
implementation
uses UMain;
var FMain: TFormMain;
{$R *.dfm}
{ TFEnterPW }

procedure TFEnterPW.CheckPasswort;
var Load: TInifile;
    passwort:String;
begin
  Load:=TInifile.Create(ExtractFilePath(ParamStr(0))+'settings.lem');
  ShowMessage(ExtractFilePath(ParamStr(0))+'settings.lem');
  passwort:=Load.ReadString('PW','MPW','AGAbugudalo91634187621986201245237156');
    if not (passwort='AGAbugudalo91634187621986201245237156') then
      begin
        if not (passwort=EPasswort.Text) then
          begin
            MessageDLG('Falsches Passwort!',mtWarning,[mbCancel],0);
            self.Close;
          end
        else
          begin
            MessageDLG('Passwort stimmt mit dem Masterpasswort überein.',mtInformation,[mbOK],0);
            Application.ShowMainForm:=True;
            FMain:=TFormMain.Create(self);
            FMain.Show;
          end;
      end
    else
      begin
        MessageDLG('Ladefehler!',mtError,[mbOK],0);
      end;
  Load.Free;
end;

Wenn ich es so schreibe, dann kommt eine Fehlermeldung: Der Gerätename wird von dieser Anwendung bereits als Alias genutzt...

DeddyH 17. Jun 2010 17:44

AW: Application.ShowMainForm:= False Rückgängig machen Ohne Self.Show
 
Wozu jetzt die globale Variable?

Fussel9 17. Jun 2010 17:49

AW: Application.ShowMainForm:= False Rückgängig machen Ohne Self.Show
 
Ok, aber ob lokal oder global macht hier keinen unterschied.

DeddyH 17. Jun 2010 17:54

AW: Application.ShowMainForm:= False Rückgängig machen Ohne Self.Show
 
Kommentier die Zeile einfach mal aus.

Fussel9 17. Jun 2010 17:55

AW: Application.ShowMainForm:= False Rückgängig machen Ohne Self.Show
 
Woher kennt denn nun die Unit UEnterPW die Variable FormMain???

Aber es funktioniert ^^ THX

DeddyH 17. Jun 2010 17:57

AW: Application.ShowMainForm:= False Rückgängig machen Ohne Self.Show
 
Zitat:

Delphi-Quellcode:
var FMain: TFormMain;

Die ist nicht flüssig, sondern überflüssig.


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