hallo jfheins,
habe esst gestern Abend ausprobiert, bin aber bei @NewWndProc in FormCreate hängen geblieben ich bekam den Fehler
[Fehler] E2036 Variable erforderlich,. Weist du welche Variable gemeint ist und wie und wo ich diese deklarieren muss?
Ich habe auch probiert die NewWndProc eingenständig ohne sie im Private teil anzugeben, hier bekomme ich noch den Fehler,
dass die Typen Pointer und Integer nicht kombatibel sind. Kann dir deshalb nicht sagen ob die function überhaupt aufgerufen wird.
const DTM_Raise=WM_User+83;
type
TForm2 = class(TForm)
private
function NewWndProc(hWnd:HWND;uMsg:Uint;wparam:WParam;lPara m:LPARAM):Lresult;
end;
var
Form2: TForm2;
OldwndProc
ointer;
implementation
procedure TForm2.FormCreate(Sender: TObject);
begin
OldwndProc:=Setwindowlong(self.Handle,GWL_WNDPROC, @NewWndProc);
end;
function TForm2.NewWndProc(hWnd:HWND;uMsg:Uint;wparam:WPara m;lParam:LPARAM):Lresult;
begin
if (uMsg=DTM_RAISE) then begin
sleep(3000);
end else CallwindowProc(Oldwndproc,hwnd,umsg,wparam,lparam) ;
end;
Hallo Oliver,
wenn die Transparent nicht am diesem Verhalten schuld ist, was bewirkt dann, dass dein Fenster für Win+D bzw Win+M tasten scheinbar unempfindlich ist, erklärs mir bitte. Ich kann nämlich keine besonderen Messageaufrufe in deinem Code erkennen, er funktioniert aber.
gruss Dieter
Gruss Optiplex