dokladnie mam cos takiego, chce zrobic tumbnails z Treeview w expandzie Tree daje ta procedurke:
procedure TFormTree.paneliki(nod : TTreeNode; szer : integer = 100);
var
git : TTreeNode;
a,i,x,y,w,br : integer;
Paneliki: TPanel;
labelki: TJvLinkLabel;
imadze: TImage;
begin
w:= ScrollBox1.ComponentCount;
if w>0 then for x:=(w-1) downto 0 do ScrollBox1.Components[x].Free;
szer := 100; br := 20;
x := br; y := br;
a := 0;
//tutaj oblicza zeby panele ladnie sie miescily w scrollu
w := (ScrollBox1.Width div szer);
panMAIN.Caption:= IntToStr(w);
if ScrollBox1.Width >= (w*(szer + br)+10) then
br := ((ScrollBox1.Width - (w*szer))-5) div (w+1)
else begin
w := w-1;
br := ((ScrollBox1.Width - (w*szer))-5) div (w+1);
end;
i:=0;
git := nod.getFirstChild;
while git <> nil do
begin
if i=0 then
begin
x:=br;
if a<>0 then y:=(y + szer + 20);
panMAIN.Caption:= IntToStr(y);
end
else x:=(x + szer + br);
Paneliki := TPanel.Create(ScrollBox1);
with Paneliki do
begin
parent := ScrollBox1;
Left := x;
Top := y;
Anchors := [akLeft,akTop];
Height := szer;
Width := szer;
Hint := git.Text;
ShowHint := True;
//++++++++
imadze := TImage.Create(Paneliki);
with imadze do
begin
Parent := Paneliki;
Align := alNone;
Top := 1;
Left := 5;
Width := 90;
Height := 80;
Proportional := True;
Picture := Image1.Picture;
end;
//++++++++
labelki := TJvLinkLabel.Create(Paneliki);
with labelki do
begin
Parent := Paneliki;
Top := 85;
Left := 4;
Width := 92;
AutoSize := True;
Constraints.MaxWidth := 92;
Caption := git.Text;
end;
//--------
end;
if i<(w-1) then i:=i+1 else
begin
a:=a+1;
i:=0;
end;
git := nod.GetNextChild(git);
end;//end while
//ten jeden zeby sie nie konczylo dolkadnie z skrolem
Paneliki := TPanel.Create(ScrollBox1);
with Paneliki do
begin
parent := ScrollBox1;
Height := 1;
Width := 1;
Left := 10;
Top := y + szer + 10;
end;
label6.Caption := PathDrzewa(nod);
end;
no a jak TjvLinkedLabel mi sie rozszerza w dół to rozciaga panele i teraz poleceniem
for x:=0 to ScrollBox1.ComponentCount-1 do
JvLinkLabel1.Caption := JvLinkLabel1.Caption + IntToStr(TPanel(ScrollBox1.Components[x]).Height)+'; ';
no i mi wypisuje zawsze 103,103,103 nawet nie wiem czemu, a one na oko sie różnią wysokościa bo przesz widze :P
pliss moze ktos to poprawi :D i mi powie co nie tak i to zadziała?