아래와 같은 소스로 동적 생성 하였는데, 스크롤바를 움직이지 않을시 잘 됩니다. 문제는 스크롤 바를 움직인 후 동적 생성 하면 scrollbox에서 ImgPanel의 ImgPanel.top 이 이상해요. 뒤죽박죽으로 생성이 됩니다. 문제가 무엇인지...? 제 생각에는 스크롤바를 움직이면 scrollbox의 top 위치가 변경 되는것 같아요.
var
ImgPanel : TPanel;
ImgLeft : TImage32;
ImgCenter: TImage32;
ImgRight : TImage32;
Subject : TLabel;
Comment : TLabel;
begin
Rec.NowCount := Rec.NowCount + 1;
Rec.NowLeft := Rec.NowLeft + (Rec.Width+Rec.Space);
if Rec.NowCount > Rec.ColCount then begin
Rec.NowCount := 1;
Rec.NowTop := Rec.NowTop + (Rec.Height + Rec.Space);
Rec.NowLeft := Rec.Left;
end;
ImgPanel := TPanel.Create(ImgBack);
ImgCenter := TImage32.Create(ImgPanel);
ImgLeft := TImage32.Create(ImgPanel);
ImgRight := TImage32.Create(ImgPanel);
Subject := TLabel.Create(ImgPanel);
Comment := TLabel.Create(ImgPanel);
ImgPanel.Parent := ImgBack;
ImgPanel.Width := Rec.Width;
ImgPanel.Height := Rec.Height;
ImgPanel.Top := Rec.NowTop;
ImgPanel.Left := Rec.NowLeft;
ImgCenter.Left := 10;
ImgCenter.Width := ImgPanel.Width - 20;
ImgCenter.Top := 10;
ImgCenter.Height := ImgPanel.Height - 60;
ImgCenter.Cursor := crHandPoint;
ImgCenter.Color := clWhite;
ImgCenter.AutoSize := False;
ImgCenter.ScaleMode := smStretch;
ImgCenter.Parent := ImgPanel;
Subject.Left := 4;
Subject.Top := ImgCenter.Top+ImgCenter.Height+5;
Subject.Width := ImgPanel.Width - 8;
Subject.AutoSize := False;
Subject.Parent := ImgPanel;
Comment.Left := Subject.Left;
Comment.Top := Subject.Top + 15;
Comment.Width := Subject.Width;
Comment.AutoSize := False;
Comment.Parent := ImgPanel;
end;