Moin,
Inzwischen funktioniert zwar (fast) alles mit dem TreeView, doch am Wochenende ist mir noch ein höchst ärgerliches Problem aufgefallen. Bei der Reaktion auf die Message WM_Paint wird ein
Delphi-Quellcode:
If (
Message.Msg = WM_Paint )
then
begin
Rect:=TreeView1.Selected.DisplayRect(TRUE);
DC := GetDC( TreeView1.Handle );
SetBkMode(
DC,TRANSPARENT);
with TreeView1.Canvas
Do
begin
Brush.Color:= clyellow;
FillRect(Rect);
Font.Color:= clactivecaption;
TextOut(Rect.Left, Rect.Top, TreeView1.selected.text);
Font.Color:=clblack;
end;
end;
gemacht, allerdings erscheint das Bild nun unter WinXP im Vordergrund! Dass heisst der Baum ist nicht mehr zu sehen, was natürlich nicht so prickelnd ist.
Nachtrag: Ok - es liegt wohl doch nciht an der MessageRoutine, sondern der Fehler tritt vor allem auf, wenn ein Tooltip im TreeView angezeigt wird. Wird TreeView1.Tooltips auf FALSE gesetzt funktioniert das ohne Probleme.
Wie und wo ist denn das Ereignis/Message das/die ausgelöst wird, wenn ein Tooltp angezeigt wird?