Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi WM_SETFOCUS abfangen (https://www.delphipraxis.net/43352-wm_setfocus-abfangen.html)

Pseudemys Nelsoni 2. Apr 2005 14:31


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?

Dax 2. Apr 2005 14:42

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;
;)

Pseudemys Nelsoni 2. Apr 2005 14:53

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?

geskill 23. Mai 2008 10:07

Re: WM_SETFOCUS abfangen
 
hi,
dass habe ich gerade selber gebraucht:

bischen googlen dann findet man meistens immer was :)

http://www.swissdelphicenter.ch/en/showcode.php?id=1775

Delphi-Quellcode:
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;
Am besten du lässt die Abfage weg
Delphi-Quellcode:
if M.Active then
und führst sofort dein Befehl aus, denn diese Abfrage dauert extrem lange...

Aso und für OnEnter würde auch ne Message nehmen:
http://delphi.about.com/cs/adptips20...ltip0703_5.htm

Und hier noch was eigenes.
http://www.delphipraxis.net/internal...534cf5fe10b022


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