В настоящее время я рисую некоторые изображения внутри Tvirtualdrawtree
используя на перед краской. Вот мой код рисункаКак нарисовать узлы inline в TvirualTree?
procedure TForm2.VDTAniBeforeCellPaint(Sender: TBaseVirtualTree;
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
CellPaintMode: TVTCellPaintMode; CellRect: TRect; var ContentRect: TRect);
var
Data: PAnimeData;
NewRect: TRect;
R: TRect;
begin
//
if not Assigned(Node) then
begin
exit;
end;
Data := VDTAni.GetNodeData(Node);
case Column of
0, 1 ,2, 3, 4, 5, 6, 7:
begin
TargetCanvas.Brush.Style := bsClear;
TargetCanvas.FillRect(CellRect);
NewRect := ContentRect;
NewRect.Left := NewRect.Left;
NewRect.Width := 55;
NewRect.Height := 55;
NewRect.Top := NewRect.Top + 2;
NewRect.Bottom := NewRect.Bottom;
if Column = 0 then
begin
with NewRect do
begin
TargetCanvas.StretchDraw(NewRect, Data.FObject.anmigraphic);
end;
end;
end;
Образцы рисуются вертикально. Я хочу, чтобы показать их по горизонтали, например, как в этом следующем изображении
Здесь Структура данных
type
TAnmiClass = class
private
Fanmigraphic : TGifImage;
public
property anmigraphic: TGifImage read Fanmigraphic write Fanmigraphic;
public
constructor Create;
destructor Destroy; override;
end;
type
PAnimeData = ^TAnimeData;
TAnimeData = record
FObject: TAnmiClass;
end;
Для этого элемента ничего не создано. Раньше была библиотека от Jim Kueneman, Virtual Shell Tools, предоставляющая виртуальное дерево-проводник на основе виртуального древовидного представления и реализовала все привычные макеты значков, поддерживаемые традиционными элементами управления списком. Вам может показаться полезным, если вы сможете это найти. –
Я знаю, что это невозможно сделать с древовидным представлением, поэтому я создал 8 столбцов, чтобы нарисовать их рядом друг с другом, но проблема в том, что каждый столбец дублируется с тем же изображением, пока не нарисует второй узел –