मैं माउस दर्ज करने/संदेशों को CM_MOUSEENTER
और CM_MOUSELEAVE
पर जाने का प्रयास कर रहा हूं लेकिन यह इसे पकड़ नहीं रहा है। मुझसे यहां क्या गलत हो रहा है?माउस एंटर/संदेश पोस्ट नहीं कर रहे हैं?
type
TMyControl = class(TCustomControl)
private
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
end;
procedure TMyControl.CMMouseEnter(var Message: TMessage);
begin
//Handle mouse entering
//Breakpoint never reached, procedure never called
end;
procedure TMyControl.CMMouseLeave(var Message: TMessage);
begin
//Handle mouse leaving
//Breakpoint never reached, procedure never called
end;
procedure TMyControl.WMNCHitTest(var Message: TWMNCHitTest);
var
Ch: Bool;
begin
if csDesigning in ComponentState then
Message.Result := HTCLIENT
else begin
Ch:= False;
//Do checks and pass `Ch:= True;` if something changed...
if Ch then Invalidate;
end;
end;
मेरी पहली टिप्पणी ऐसी सामग्री की निगरानी के लिए ब्रेकपॉइंट्स का उपयोग नहीं करती है। जब आप डीबगर में स्विच करते हैं तो यूआई इंटरैक्शन हमेशा गड़बड़ हो जाता है। किसी अन्य विंडो पर संदेश भेजने के लिए कोडेसाइट जैसे कुछ का उपयोग करें, और सुनिश्चित करें कि निगरानी करते समय फोकस न बदलें। – mj2008