ImageEn, unit iexAcquire

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