2013-07-28 105 views
3

我已經得到一些結果,試圖使用TGridLayout來保存系列TImage對象,每個TImage對象都加載了位圖。但是,在這兩種情況之間沒有差距。我已經嘗試使TImage寬度/高度小於TGridLayout itemheight/itemwidth,但沒有運氣。德爾福TGridLayout佈局和項目之間的填充

示例代碼:

ImageRef := TImage.Create(GridLayoutGallery); 
ImageRef.Visible := False; // se true later 
ImageRef.Width := GridLayoutGallery.ItemWidth - 10; 
ImageRef.Height := GridLayoutGallery.ItemHeight - 10; 
GridLayoutGallery.AddObject(ImageRef); 
+1

你嘗試設置的設置頁邊距'YourImage.AlignWithMargins'到TRUE;和然後調整'YourImage.Margins'屬性? – LightBulb

+1

@LightBulb,通過將邊距設置爲每個單獨的圖像將導致圖像縮小,並且質量會受到影響。最終,佈局中每個對象的大小由GridLayout組件本身決定。 – Peter

+0

@LightBulb謝謝。這個建議實際上是有效的,現在我會使用,直到我有更多時間來嘗試其他建議的解決方案。 (我在一個相當緊張的時間表) – Tom

回答

4

你是接近的答案自己,這裏是我會怎樣做到這一點:

比方說你的網擁有一系列圖像的大小爲40×40 PX

enter image description here

要申請只需設置ItemWidthItemHeight properti圖像之間的空白es的TGridLayout分量的值大於實際圖像的大小,例如42×42像素。

enter image description here

這應該創建一個周圍的每一個放置在TGridLayout圖片保證金。

+0

我已經相信我已經嘗試過。我將擴展代碼 – Tom

+1

@Tom,您的解決方案無法正常工作,因爲您試圖更改Timage控件的實際寬度和高度,但它不起作用。正如我所說的,TGridLayout控制着控件的大小。在將TImage插入佈局之前,您的任何尺寸都會重置爲由TGridLayout設置的值。 – Peter

+0

好的。我現在知道了。它會有點混亂,因爲我有一個最佳尺寸的Bitmaps適合我的TImage的例程,但我想我會重寫,除非我找到另一個解決方案! :) – Tom