Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Problem beim Focus setzen nach erstellen eines forms (https://www.delphipraxis.net/123728-problem-beim-focus-setzen-nach-erstellen-eines-forms.html)

5etH 12. Nov 2008 07:32

Re: Problem beim Focus setzen nach erstellen eines forms
 
Liste der Anhänge anzeigen (Anzahl: 1)
ich werde mich gleich daran machen und es mit source uploaden

EDIT: Wie versprochen das Testproject, es tritt auch der selbe fehler auf!

nahpets 12. Nov 2008 10:59

Re: Problem beim Focus setzen nach erstellen eines forms
 
Hallo,

Du hast in Deinem Quelltext zweimal Form9.Show, aber nur einmal Application.BringToFront.
Verlagere das Form9.Show und Application.BringToFront so, dass es in dem entsprechenden Else-Zweig immer durchlaufen wird. Damit sollte es dann funktionieren.
Delphi-Quellcode:
  if seh then begin
    application.Minimize;
    for I := 0 to screen.formcount - 1 do begin
      screen.forms[i].hide;
    end;
    seh := false;
  end else begin
    if sperr then begin
      if not s8 then begin
        s8 := true;
        Application.CreateForm(TForm9, Form9);
      end;
    end else begin
      for I := screen.formcount -1 downto 0 do begin
        screen.forms[i].show
      end;
      seh := true;
    end;
    form9.show;
    application.BringToFront;
  end;

5etH 12. Nov 2008 11:08

Re: Problem beim Focus setzen nach erstellen eines forms
 
wow super die lösung war total einfach :wall:
war echt blind ... habs mir echt komplizierter vorgestellt vielen dank für eure hilfe
funktioniert super :thumb:

Schwedenbitter 16. Mär 2009 10:50

Re: Problem beim Focus setzen nach erstellen eines forms
 
Hallo,

ich habe ein ähnliches Problem und wollte daher kein neues Thema aufmachen. Die Suche hat mir bislang auch keine Antwort beschert.

Mein Programm besteht aus einem Form, mit den Eigenschaften BorderStyle:=byNone; und FormStyle:=fsStayOnTop;. Weiterhin existiert keinerlei Anzeige in der Taskleiste mittels
Delphi-Quellcode:
SetWindowLong(Application.Handle,GWL_EXSTYLE,
              GetWindowLong(Application.Handle,GWL_EXSTYLE) Or
              WS_EX_TOOLWINDOW And Not WS_EX_APPWINDOW);
Es wird durch ein weiteres externes Programm aufgerufen und soll lediglich als eine Art Hinweisfenster kommen; allerdings mit einer Menge Interaktionsmöglichkeiten für den Benutzer. Das klappt soweit auch gut.

Allerdings möchte ich es gern auch mit der Tastatur bedienen können. Wird mein Programm eingeblendet, hat es aber nicht den Focus. Ich muss also erst mit der Maus auf das Fenster klicken und kann es dann - wie gewünscht - mit der Tastatur bedienen. :gruebel: Ich habe schon probiert, im Ereignis OnShow den Befehl Application.BringToFront; ausführen zu lassen. Das hat es nicht gebracht.

Wie kann ich es schaffen, dass das ohne den "goldenen Klick" :-D geht?

Gruß und Dank, Alex


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

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