Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Kann mir das einer mit ListBoxDrawItem und odFocused erklären

  Alt 15. Okt 2012, 20:10
Tstststs ... anstatt stundenlang die Haare zu raufen und irgendwas auszuprobieren, hätten ein paar gezielte Strg-Clicks auf DrawFocusRect zunächst hierhin gebracht:
Delphi-Quellcode:
unit Vcl.Graphics;
...
procedure TCanvas.DrawFocusRect(const Rect: TRect);
begin
  Changing;
  RequiredState([csHandleValid, csBrushValid]);
  Winapi.Windows.DrawFocusRect(FHandle, Rect);
  Changed;
end;
Dann hierhin:
Delphi-Quellcode:
unit Winapi.Windows;
...
function DrawFocusRect; external user32 name 'DrawFocusRect';
Und schließlich hierhin: MSDN: DrawFocusRect function
Und was finden wir da?
Zitat von MSDN: DrawFocusRect function:
Because DrawFocusRect is an XOR function, calling it a second time with the same rectangle removes the rectangle from the screen.
Aha, damit ist also auch geklärt, warum das explizite Löschen des Canvas eher kontraproduktiv als hilfreich ist
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat