AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

WM_SETFOCUS abfangen

Ein Thema von Pseudemys Nelsoni · begonnen am 2. Apr 2005 · letzter Beitrag vom 23. Mai 2008
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

WM_SETFOCUS abfangen

  Alt 2. Apr 2005, 14:31
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?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: WM_SETFOCUS abfangen

  Alt 2. Apr 2005, 14:42
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;
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: WM_SETFOCUS abfangen

  Alt 2. Apr 2005, 14:53
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?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#4

Re: WM_SETFOCUS abfangen

  Alt 23. Mai 2008, 10:07
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
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
Sebastian
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz