Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Form2 ist nicht aktiv (kein Focus) (https://www.delphipraxis.net/109002-form2-ist-nicht-aktiv-kein-focus.html)

delphin06 22. Feb 2008 15:52


Form2 ist nicht aktiv (kein Focus)
 
Hallo

Mein Wissen stößt wieder an Grenzen...Ich schaffe es einfach nicht die 2. Form in meinem Programm aktiv werden zu lassen.

Also ich habe einmal eine Hauptform und eine Passwort-Form. Je nachdem, welche Einstellungen beim Starten des Programms eingelesen werden wird das Passwort Dialogfeld angezeigt oder nicht. Jetzt habe ich aber das Problem, dass das Edit Feld des Passwort-Dialogs nicht aktiv ist, wenn die Form erstellt wird. Also im Prinzip ist das Edit Feld aktiviert nur die Form nicht.
An der Taskleiste kann ich das sehen, da ist die Form nämlich nicht angeklickt. Wenn ich dann auf den Eintrag in der Taskleiste klicke, dann ist auch sofort das Edit Feld aktiv und ich kann sofort lostippen.
Das ist aber blöd, wenn man immer erst da draufklicken muss. Das soll so sein, dass wenn nach einem Passwort gefragt wird das auch direkt eingegeben werden kann.

Weiß einer eine Lösung dafür?

s-off 22. Feb 2008 16:39

Re: Form2 ist nicht aktiv (kein Focus)
 
Hallo,

wie zeigst Du denn die Form mit dem Edit-Feld an?

Mit 'TForm.ShowModal' wird das Formular angezeigt und hat den Fokus, bis es geschlossen wird.

delphin06 22. Feb 2008 16:49

Re: Form2 ist nicht aktiv (kein Focus)
 
Hmm...gibts da nich ne bessere Lösung? Es funktioniert keine Frage nur irgendwie beendet sich mein Programm selbst. Wahrscheinlich wenn ich es wieder invisible mache das Passwort Fenster

s-off 22. Feb 2008 16:51

Re: Form2 ist nicht aktiv (kein Focus)
 
Zitat:

Zitat von delphin06
Hmm...gibts da nich ne bessere Lösung?

Wenn man es korrekt macht, dann benötigt man keine bessere Lösung - denn für (u.a.) soetwas ist das modale Anzeigen eines Formulars gedacht.

Zitat:

Zitat von delphin06
Es funktioniert keine Frage nur irgendwie beendet sich mein Programm selbst. Wahrscheinlich wenn ich es wieder invisible mache das Passwort Fenster

Das hört sich eher danach an, als wenn Du Deine Mainform aus Versehen schließt, und nicht Dein Passwortformular.

DeddyH 22. Feb 2008 16:51

Re: Form2 ist nicht aktiv (kein Focus)
 
Zeig doch mal den Aufruf der Passwortform (am Besten gleich die ganze Routine).

delphin06 22. Feb 2008 18:06

Re: Form2 ist nicht aktiv (kein Focus)
 
Also ich erklär nochmal wie das aufgebaut ist:

Erst wird Form1 erstellt dann Form2 (Passwort Dialog)

So jetzt wollte ich in der Formcreate von Form2 die Einstellungen laden und dann entscheiden ob das passwortdialogfeld angezeigt wird oder nicht. Bis jetzt habe ich das einfach nur mit form.visible gemacht. allerdings wie gesagt ist die Form2 dann nicht aktiv. und Showmodal kann ich ja in Formcreate noch nicht aufrufen da die Form ja noch nicht existiert.

Dann habe ich das Laden der Einstellungen im Hauptcode reingepackt.

Also direkt unter:
Delphi-Quellcode:
Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TPasswordDlg, PasswordDlg);
und dort dann showmodal aufgerufen. Aber irgendwie ist er dann nach dem ausführen der Buttonklick routine in die Formclose von Form2 gesprungen (weiß der Geier warum) und da stand natürlich drin Application.terminate. weil wenn das Dialogfeld geschlossen wird soll das Programm direkt beendet werden. Als ich dann das Application.terminate auskommentiert habe, lief das Programm, aber ich konnte es nicht mehr über form1.close beenden.
Ist das Passwort Dialogfeld nach aufruf von showmodal zu meiner Hauptform geworden?

DeddyH 22. Feb 2008 18:11

Re: Form2 ist nicht aktiv (kein Focus)
 
Ich steig da ehrlich gesagt nicht ganz durch. Vorschlag: erstelle ggf. den Passwort-Dialog dynamisch im OnCreate des MainForms und rufe ihn per ShowModal auf.

delphin06 22. Feb 2008 18:46

Re: Form2 ist nicht aktiv (kein Focus)
 
Ich hab das mal wie du gesagt hast dynamisch zu erstellen in der formcreate() vom hauptformular.

das sieht dann in etwa so aus:

Delphi-Quellcode:
if cryptedlist = 'true' then
    begin
      PasswordDlg2:= TPasswordDlg.Create(Application);
      try
        passworddlg2.ShowModal;
      finally
        passworddlg2.free;
      end;
      pwdtype:='gblpwd';
    end;
Dann bekomm ich ne Fehlermeldung durch das showmodal: Aus einem sichtbarem Fenster kann kein modales gemacht werden


Aber das ist doch gar nicht sichtbar. das wurde ja noch nicht mal erstellt vorher

DeddyH 22. Feb 2008 18:49

Re: Form2 ist nicht aktiv (kein Focus)
 
Mal eine Zeile mehr:
Delphi-Quellcode:
if cryptedlist = 'true' then
    begin
      PasswordDlg2:= TPasswordDlg.Create(Application);
      PasswordDlg2.Visible := false;
      try
        passworddlg2.ShowModal;
      finally
        passworddlg2.free;
      end;
      pwdtype:='gblpwd';
    end;
Was passiert jetzt?

delphin06 22. Feb 2008 18:52

Re: Form2 ist nicht aktiv (kein Focus)
 
immer noch das selbe problem


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:07 Uhr.
Seite 1 von 2  1 2      

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