Einzelnen Beitrag anzeigen

HintByError

Registriert seit: 13. Dez 2018
Ort: Marburg
20 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Von „TCustomControl“ abgleitete visuelle Komponente erhält nicht den Tastaturfoku

  Alt 31. Dez 2018, 19:56
Es genügt, die folgenden beiden Message-Handler zu überschreiben um ein Neuzeichnen bei einem Focuswechsel auszulösen.
Delphi-Quellcode:
procedure TBorderIcon2.WMKillFocus(var Message: TWMKillFocus);
begin
  inherited;
  Invalidate;
end;

procedure TBorderIcon2.WMSetFocus(var Message: TWMSetFocus);
begin
  inherited;
  Invalidate;
end;
Stimmt. Die Variable „fFocused“ und die damit zusammenhängenden Anweisungen werden nicht benötigt. Die Zahl der Eingriffe über Windows-Botschaften bleibt aber gleich, um die angestrebte Funktionalität zu erreichen. Die Leertaste und die Eingabetaste sollen sich so verhalten wie bei einer Schaltfläche. Beim Klicken mit der Maus, soll der Fokus auch entsprechend geschaltet sein. Es läuft darauf hinaus, dass von „TCustomControl“ ein Basistyp „TCustemFocus“ abgeleitet wird, der den richtigen Tastaturfokus zeigt. Während Elemente, die dies nicht benötigen von „TCustomControl“ abgeleitet werden. Vielen Dank für den Hinweis.
Wolfgang Sauer
  Mit Zitat antworten Zitat