![]() |
WM_SETFOCUS abfangen
Moin,
ich habe eine Komponente von TRichEdit abgeleitet und leite die Fenstermessage auf meine eigene prozedur um. So in meiner Fensterprozedur sieht es nun so aus:
Delphi-Quellcode:
FWndProc(Msg); // Alte Fensterprozedur aufrufen
if (FHideCaret) and (msg.Msg = WM_SETFOCUS) then // Wenn Focus gesetzt wird Windows.HideCaret(Handle); // Dann Caret verstecken Nur hat das HideCaret keine Wirkung, hat jemand ne idee was falsch sein könnte? |
Re: WM_SETFOCUS abfangen
Wenn du von TRichEdit ableitest und die alte Window-Funktion vor dem HideCaret aufrufst, wieso steckst du dann das HideCaret nicht gleich ins OnEnter oder machst sowas wie das hier:
Delphi-Quellcode:
;)
type
TMyRE = class(TRichEdit) public procedure OnFocus(var Msg: TMessage); message WM_SETFOCUS; end; |
Re: WM_SETFOCUS abfangen
moin dax,
im onenter funktioniert das irgendwie nicht, caret bleibt da. das mit message; versuch ich mal ;) obwohl das dann auch nicht gehen dürfte wenns bei meinem code s.o nicht geht oder? |
Re: WM_SETFOCUS abfangen
hi,
dass habe ich gerade selber gebraucht: bischen googlen dann findet man meistens immer was :) ![]()
Delphi-Quellcode:
Am besten du lässt die Abfage weg
type
//... private { Private declarations } procedure WMNCACTIVATE(var M: TWMNCACTIVATE); message WM_NCACTIVATE; end; implementation //... procedure TForm1.WMNCACTIVATE(var M: TWMNCACTIVATE); begin inherited; if M.Active then caption:='Form active' else caption:='Form not active' ; end;
Delphi-Quellcode:
und führst sofort dein Befehl aus, denn diese Abfrage dauert extrem lange...
if M.Active then
Aso und für OnEnter würde auch ne Message nehmen: ![]() Und hier noch was eigenes. ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 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