Witam
Cwiczę wykorzystywanie Virtual TreeView. Wszystko działa dobrze za wyjątkiem zmiany wyglądu guzika otwierającego drzewo.
Standardowo jest to sybol "+" lub można go zmienić na symbol trójkąta zmieniając ButtoStylne na bsTriangle. I tak się dzieje w samplach, ale niestety nie w mojej aplikacji.
Co ustaliłem:
- przekompilowane sample działają bez zarzutu
- przeanalizowałem kod sampli i niestety nie widzę niczego co by mogło włączać lub wyłączać mozliwość zmiany stylu
- prześledziłem w module Virtual Tree View działanie flagi bsTriangle -powinna się narysować
oto program na którym testowałem Visual TreeView:
- na formię bez żadnych zmian przełaczników wstawiam komponent TVirtualStringTee
- dodaje do niego obsługę zdażeń:
PDane=^TDane;
TDane =record
nazwa:string;
end;
procedure TForm1.VTGetNodeDataSize(Sender: TBaseVirtualTree;
var NodeDataSize: Integer);
begin
NodeDataSize:=SizeOf(TDane);
end;
procedure TForm1.VTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
var bDane:PDane;
begin
bDane:=VT.GetNodeData(Node);
CellText:=bDane.nazwa;
end;
a przez naciśniecie guzika ma zostać utworzone drzewo i zmieniony wygląd gałęzi:
procedure TForm1.BitBtn1Click(Sender: TObject);
var bDane:PDane;
bNode:PVirtualNode;
begin
VT.BeginUpdate;
bNode:=VT.AddChild(nil);
bDane:=VT.GetNodeData(bNode);
bDane.nazwa:='Glowny';
bNode:=VT.AddChild(bNode);
bDane:=VT.GetNodeData(bNode);
bDane.nazwa:='Potomny:'+IntToStr(VT.RootNodeCount);
VT.EndUpdate;
VT.ButtonStyle:=bsTriangle;
VT.Repaint;
Repaint;
end;
Naciśnięcie BitBtn1 buduje poprawnie drzewo ale niestety nie reaguje na zmianę flagi.
Czy ktoś może wie dlaczego to nie działa [!!!] ?