この素晴らしいコンポーネントを見つけてインストールしました。問題なく動作していますが、少し問題があります。残念ながら、私は自分でそれを行う方法を知りません。
誰かがこのコンポーネントに新しい機能を追加するのを手伝ってくれませんか? これにより、 ImageList から画像を取得できますか? 実行時に ImageList を動的に埋めます。
現在、 TILE のプレビューを表示するために次のことを行っています。
procedure TTools.Preview_ImageExecute(Sender: TObject);
var image_temp : TBitmap;
begin
image_temp := TBitmap.Create;
LoadBitMap(ComboBox1.Text,image_temp,Main.ASDb1);
Image1.Picture.Bitmap:=image_temp;
image_temp.Free;
end;
これを Image Grid で何とか使用したいと思います...どうにかしてすべてのタイルをロードできるようにする必要があります.For ループを使用してそれを埋めます...
その間、私はListBoxで遊んでいて、なんとかこれを行うことができました:
procedure TTools.Lst1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var CenterText : integer;
begin
Lst1.Canvas.FillRect(Rect);
Il1.Draw(lst1.Canvas,rect.Left +4, rect.Top +4, Index);
Centertext := (rect.Bottom - rect.Top -lst1.Canvas.TextHeight(text)) div 2;
Lst1.Canvas.TextOut(rect.left + il1.width + 8, rect.Top + CenterText, lst1.Items.Strings[index]);
end;
procedure TTools.Lst1MeasureItem(Control: TWinControl; Index: Integer;
var Height: Integer);
begin
Height := IL1.Height+4;
end;
procedure TTools.Button4Click(Sender: TObject);
var i : integer;
image_temp : TBitmap;
begin
image_temp := TBitmap.Create;
for i:=0 to Main.Images.Count-1 do
begin
Lst1.Items.Add(Main.Images.Item[i].Name);
LoadBitMap(Main.Images.Item[i].Name,image_temp,Main.ASDb1);
IL1.AddMasked(image_temp, clNone);
end;
Image_temp.Free;
end;
これは、列が 0 の場合に機能しますが、たとえば 4 列では動作しません。誰か助けてもらえますか?
ごあいさつロバート