Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Wie TComboBox Einträge je nach true/false Icons eintrage

  Alt 30. Mär 2007, 12:29
Hallo,

wenn ich deine Frage richtig verstanden habe, dann müsste die Lösung ungefähr so aussehen:

Delphi-Quellcode:
procedure TForm1.ComoBoxDrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  icon: TIcon;
  imageIndex: Integer;
begin
  icon := TIcon.Create;
  ClientDataSet.RecNo := Index; //1
  imageIndex := 1 - Ord(ClientDataSet.FieldByName('bZeige').AsBoolean);
  ImageList.GetIcon(imageIndex, icon);
  with Control as TComboBox do
  begin
    Canvas.CopyMode := cmDstInvert;
    Canvas.FillRect(Rect);
    Canvas.Draw(Rect.Left, Rect.Top, icon);
    Canvas.TextOut(Rect.Left + 25, Rect.Top, Items[Index]);
  end;
  icon.Free;
end;
Damit das korrekte Feld ausgewertet wird, habe ich bei //1 den Datensatzzeiger positioniert. Stellenweise hattest du Methoden von Klassen aufgerufen, was ich korrigiert habe. Den Text könntest du übrigens genauso aus dem ClientDataSet nehmen, wie du es mit dem Bild vorhast.

Grüße vom marabu
  Mit Zitat antworten Zitat