Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > VirtualStringTree изменение цвета текста


Автор: Leana 29.6.2007, 22:16
Ребята, помогите! 
Кто работал с VirtualStringTree....
Пытаюсь на getText поменять цвет текста...

В
Код

procedure TBaseContextPickForm.TreeViewGetText(Sender: TBaseVirtualTree;
    Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
    var CellText: WideString);
    var
        rec: PListRecord;
        Tree: TVirtualStringTree;  
    begin
    rec      := Sender.GetNodeData(Node);
    Tree := TVirtualStringTree(Sender);    
    CellText := View.GetText(Column, rec.Data);
    if View.ChangeFontColor                      
        then Tree.Font.Color := clGrayText             
        else Tree.Font.Color := clWindowText;                  
    end;


Что я делаю не так? Цвет меняется, но все остальные компоненты на форме ведут себя очень странно...
Под каким другим событием мне надо делать отрисовку узлов??



Автор: Leana 30.6.2007, 00:17
Мерси всем, кто взглянул. Проблема решена.  smile 

Автор: Poseidon 30.6.2007, 10:07
Не знаю что ты там нашла, какое решение. Но не правильно ты делаешь то, что делаешь это в GetText, если надо в PaintText

Код
procedure TBaseContextPickForm.TreeViewPaintText(Sender: TBaseVirtualTree;  const TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;  TextType: TVSTTextType);
var rec: PListRecord;
begin  
rec:= TreeView.GetNodeData(Node);

if Assigned(rec) then TargetCanvas.Font.Color := clGrayText;  
end;

Автор: Leana 1.7.2007, 16:35
да, спасибо, именно через PaintText я и сделала все...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)