![]() |
Probleme mitn Hook?
Hallo DP :hi: ,
vorne weg gesagt habe ich schon einiges hier im Forum über Hooks gelesen... Ich habe eine von TPanel abgeleitete Kompo die als Titelleisten-Ersatz fungiert und welche ein Hook auf die Form.WindowProc hat. im Create meiner Kompo tu ich folgendes:
Delphi-Quellcode:
Die "NewProc" sieht so aus:tmp := GetParentForm(Self); if tmp <> nil then begin FParentForm := TForm(tmp); CreateIconData;//tray icon if not (csDesigning in ComponentState) then begin FPOldParentFormProc := FParentForm.WindowProc;//FPOldParentFormProc ist TWndMethod; FParentForm.WindowProc := NewProc; end; Caption := FParentForm.Caption; end;
Delphi-Quellcode:
Mein Problem ist das manchmal "komische Sachen passieren" :witch:
procedure TDaSysBtns.NewProc(var Message: TMessage);
var WorkArea: TRect; begin case Message.Msg of WM_USER_ICONMSG: begin case Message.lParam of WM_LBUTTONDBLCLK: begin FParentForm.Show; // Icon nur anzeigen wenn Fenster minimiert Shell_NotifyIcon(NIM_DELETE, @FIconData); end; end;//Message.lParam-case end; WM_GETMINMAXINFO: begin//da maximieren ohne biMaximize über Taskbar maximiert if not (csDesigning in FParentForm.ComponentState) AND (FParentForm.WindowState = wsMaximized) then begin//nur bei maximized! if SystemParametersInfo(SPI_GETWORKAREA, 0, @WorkArea, 0) then begin with WorkArea do begin pMinMaxInfo(Message.LParam).ptMaxSize.Y := Bottom+6; end; end; end else begin FPOldParentFormProc(Message);// alten Message-Handler rufen end; end; else begin FPOldParentFormProc(Message);// alten Message-Handler rufen end; end;//message.msg-case end; Das irgendwelche Messages an Controls gesendet werden. Vorhin wurde ein "Enter" an nen TEdit gesendet (Tastatur wurde nicht einmal angeschaut...)?! Auch hat ich Probleme mit dem Enablen eines deaktivierten Buttons - Es ging einfach nicht :?: Ich hab was von nen Tutorial von Asserbad gelesen, konnte es aber nicht finden. Vielleicht ist mein Source auch buggy? Oder ich hab irgendwas nicht beachtet? Bitte helft mir. Gottes Segen |
Re: Probleme mitn Hook?
Zitat:
![]() |
Re: Probleme mitn Hook?
Wie ich deinem Source entnehme, arbeitest du aber garnicht mit Fensterhooks (wie ich sie in meinem Tutorial beschreibe). Mir scheint vielmehr, daß du Informationen über "Subclassing" suchst. Vielleicht findest du da was in Luckies Win32-API-Tutorials.
|
Re: Probleme mitn Hook?
Hallo,
danke für die Antworten! Jetzt weiß ich immer hin schonmal das ich "subclassing" mache... Hab auch ma einwenig im forum darüber gesucht und mir Luckie's Tutorial durchgelesen (das Subclassing Kapitel...). Jedoch kann ich auch im nachhinein nichts "Falches" an meinen Source feststellen?! das mit den inaktiven Button hab ich gelöst, das Problem war der Button selbst... das andere Problem, dass mit den "Enter", kann ich mir aber nicht erklären. :? Falls ihr noch irgendwas "Falsches" am Source findet oder nen Tipp habt, sagt es mir bitte. Danke und Gottes Segen euch |
Re: Probleme mitn Hook?
"subclassing" - nicht zuverwexeln mit OOP Subclassing </senf>
|
Re: Probleme mitn Hook?
Zitat:
|
Re: Probleme mitn Hook?
Zitat:
das TEdit funktioniert so das in OnChange eine procedure ausgelöst wird, wenn im TEdit "Enter" (#13 / VK_RETURN) gedrückt wird. Obwohl die Tastatur nicht angefasst wurde, wird diese procedure ausgefürt... Gottes Segen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22: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