AGB  ·  Datenschutz  ·  Impressum  







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

TreeView HintergrundProbleme unter XP

Ein Thema von DS_Azrael · begonnen am 4. Okt 2004 · letzter Beitrag vom 4. Okt 2004
Antwort Antwort
DS_Azrael

Registriert seit: 17. Sep 2004
11 Beiträge
 
#1

TreeView HintergrundProbleme unter XP

  Alt 4. Okt 2004, 09:09
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?
/* no comment */
  Mit Zitat antworten Zitat
DS_Azrael

Registriert seit: 17. Sep 2004
11 Beiträge
 
#2

Re: TreeView HintergrundProbleme unter XP

  Alt 4. Okt 2004, 15:15
Ok - Ich hab jetzt eine passende Systemnachricht gefunden

Delphi-Quellcode:
 If (Message.msg=WM_NOTIFY)
   then TreeView1.refresh;
Allerdings führt das natürlich zu einem Flackern (Da gabs doch mal diesen Befehl um das schneller zu machen - wie war denn der?).

Das Problem, dass das Hintergrundbild über den Items liegt - kommt wohl daher dass Delphi bei einem Tooltipaufruf zwar dass HintergrundBild neu reinzeichnet aber nicht die Items (Um das zu unterbinden hätte ich jetzt obigen Code benutzt...) - Allerdings ist das unsinnig. Gibt es vielleicht eine Möglichkeit, das Zeichnen des Bildes zu unterbinden?


Danke schonmal.
/* no comment */
  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 20:34 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