DrawAcquireComboListBoxItem
DrawAcquireComboListBoxItem
Declaration
procedure DrawAcquireComboListBoxItem(TheControl: TWinControl;
CanvasRect: TRect;
const sRawDeviceStr: string;
AnImageList: TCustomImageList = nil;
iScannerGlyph: Short = -1;
iCameraGlyph : Short = -1;
iDriveGlyph : Short = -1;
iDeviceGlyph : Short = -1;
iUnknownGlyph: Short = -1);
Description
If you use
FillListWithSources to fill a TListBox or TComboBox you can use this method to custom draw the item from the controls OnDrawItem event.
TheControl, CanvasRect are passed from the event parameters.
sRawDeviceStr will be TheControl.Items[Index].
If you have a TImageList containing glyphs then pass it as AnImageList and the index of each relevant glyph as iScannerGlyph, iCameraGlyph, iDriveGlyph and iUnknownGlyph.
Example
// Draw with glyphs from a TImageList
procedure TMyForm.lbxSourcesDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
const
Scanner_Glyph_Index = 0;
Camera_Glyph_Index = 1;
Drive_Glyph_Index = 2;
Device_Glyph_Index = 3;
Unknown_Glyph_Index = 4; // Probably a scanner
begin
// lbxSources Style has been set to lbOwnerDrawFixed
DrawAcquireComboListBoxItem(Control, Rect, lbxSources.Items[Index], imlDevices,
Scanner_Glyph_Index, Camera_Glyph_Index, Drive_Glyph_Index, Device_Glyph_Index, Unknown_Glyph_Index);
end;
// Draw source names only (no glyphs)
procedure TMyForm.lbxSourcesDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
// lbxSources Style has been set to lbOwnerDrawFixed
DrawAcquireComboListBoxItem(Control, Rect, lbxSources.Items[Index]);
end;
See Also
◼FillListWithSources