我有一個TcxGrid組件來顯示SQL Server表的數據。 如何在CXGrid整數列中顯示圖片? 此列中的單元格只能是0或1.如何在CXGrid整數列中顯示圖片?
如果整數列單元格值= 0那麼; cximagelist.picture指數= 0 其他 cximagelist.picture指數= 1
我有一個TcxGrid組件來顯示SQL Server表的數據。 如何在CXGrid整數列中顯示圖片? 此列中的單元格只能是0或1.如何在CXGrid整數列中顯示圖片?
如果整數列單元格值= 0那麼; cximagelist.picture指數= 0 其他 cximagelist.picture指數= 1
你可以嘗試ImageComboBox柱:
procedure Test(ACol: TcxGridColumn);
var
props: TcxImageComboBoxProperties;
i: Integer;
item: TcxImageComboBoxItem;
begin
ACol.PropertiesClass := TcxImageComboBoxProperties;
Assert(ACol.Properties is TcxImageComboBoxProperties);
props := TcxImageComboBoxProperties(ACol.Properties);
props.Images := YourImages;
for i in PossibleIndices do
begin
item := props.Items.Add;
item.Description := ''; // or IntToStr(i)
item.Value := i;
if i = 0 then
item.ImageIndex := 0
else
item.ImageIndex := 1;
end;
end;
你也許可以做最上面的視覺與窗體設計器。
你可以做到這一點很簡單,如下:
添加列到網格顯示該圖像並將其Properties
的值設置爲Image
在運行時,加載兩個位圖,BM1
和BM2
以及要顯示的位圖。
將代碼添加到新列的OnCustomDrawCell
,如下所示。
代碼:
procedure TForm1.cxGrid1DBTableView1Column1CustomDrawCell(Sender:
TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo:
TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
BM : TBitMap;
ARect : TRect;
I : Integer;
begin
ARect := AViewInfo.Bounds;
// In the next line, 2 is the index of my integer column which
// contains the value which deterimnes the image to display.
I := AViewInfo.GridRecord.Values[2];
if I = 0 then
BM := BM1
else
BM := BM2;
ACanvas.Draw(ARect.Left, ARect.Top, BM);
ADone := True;
end;
當然,如果你不想在網格中顯示的整數字段的值,你可以簡單地刪除其列或其Visible
屬性設置爲False
。
您可以嘗試ImageComboBox列並將所有項目的描述設置爲'''''。 –