![]() |
OnClick ohne Focus zu setzen
Hi Delphianer ,
folgendes Problem. Ich habe mir ein simples Overlay für ein Spiel programmiert. Dieses Game läuft im "Vollbild im Fenster Modus", so das ich weiterhin alle WinApi Elemente verwenden kann. Mit CreateParams,Exstyle und Topmost sitzt das Fenster auch super an oberster stelle und ist dank Glasframe schön transparent. Nun aber der Kniff. Ich habe ein Label auf dieser Form. Jedes mal wenn ich auf das Label(bzw Form) klicke wird die Taskleiste eingeblendet, was ein wenig den Spielfluss stört. Gibt es irgendeine Möglichkeit mein OnclickEvent auszulösen, mit einem Mausklick, ohne dabei die Taskleiste in den Vordergrund zu holen ? Grüße s0n |
AW: OnClick ohne Focus zu setzen
Einfach dem ExStyle ein
Delphi-Quellcode:
hinzufügen?
WS_EX_NOACTIVATE
|
AW: OnClick ohne Focus zu setzen
thx,
aber es will nicht funktionieren ! folgendes habe ich ausprobiert !
Delphi-Quellcode:
procedure TfrmMain.CreateParams(var Params: TCreateParams);
begin inherited; with Params do begin ExStyle := ExStyle or WS_EX_TOPMOST AND WS_EX_NOACTIVATE; //<--- AND Variante WndParent := 0; end; end;
Delphi-Quellcode:
Bei beiden zeigt er immer wieder die Taskleiste mit an, wenn ich draufklicke !
procedure TfrmMain.CreateParams(var Params: TCreateParams);
begin inherited; with Params do begin ExStyle := ExStyle or WS_EX_TOPMOST OR WS_EX_NOACTIVATE; //<--- Or Variante WndParent := 0; end; end; Was mache ich da falsch ? |
AW: OnClick ohne Focus zu setzen
Also bei mir klappt es.
Vollbild-Anwendung: Einfach ein Formular mit windowState = wsMaximized und borderStyle = bsNone. Auf Knopfdruck startet er das Overlay:
Delphi-Quellcode:
Und die Overlay-Anwendung hat in den CreateParams nur
procedure TForm1.Button1Click(Sender: TObject);
var si: TStartupInfo; pi: TProcessInformation; begin si := Default(TstartupInfo); si.cb := SizeOf(TStartupInfo); si.wShowWindow := SW_SHOWNOACTIVATE; pi := Default(TProcessInformation); CreateProcess( '.\OverlayApp.exe', nil, nil, nil, False, 0, nil, nil, si, pi ); end;
Delphi-Quellcode:
procedure TForm2.CreateParams(var Params: TCreateParams);
begin inherited; Params.ExStyle := Params.ExStyle or WS_EX_NOACTIVATE or WS_EX_TOPMOST; end; |
AW: OnClick ohne Focus zu setzen
Ahso vielleicht habe ich mich falsch ausgedrückt :) ...
Ich habe ein Spiel das nicht von mir kommt. Mein Overlay bedeckt nur einen kleinen Teil des Screens. Soll heißen meine Anwendung ist seperat. Aufbau meiner Anwendung. MainForm nicht Vollbild, da ich ja das Game weiterhin benutzen möchte :) Overlay1form overlay2form etc... und bei klick auf Overlay1form bspw holt er mir immer die Taskleiste mit raus. ich habe in die Overlay1form und in die mainform Exstyle eingefügt ! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:38 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