Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Combobox items, anderen strings zuweisen

  Alt 17. Mär 2010, 11:16
Hier ein Beispiel mit der angesprochenen eigenen Klasse (auf der Form befindet sich nur eine ComboBox):
Delphi-Quellcode:
type
  //eigene Klasse mit 2 Stringattributen
  TComboItem = class
  private
    FDisplayText,
    FInternalText: string;
  public
    //Anzeigetext
    property DisplayText: string read FDisplayText write FDisplayText;
    //intern genutzter Text
    property InternalText: string read FInternalText write FInternalText;
  end;

procedure TfrmTest.ComboBox1Change(Sender: TObject);
var MyItem: TComboItem;
begin
  //internen Text des ausgewählten Items anzeigen
  if ComboBox1.ItemIndex > -1 then
    begin
      MyItem := ComboBox1.Items.Objects[ComboBox1.ItemIndex] as TComboItem;
      ShowMessage(MyItem.InternalText);
    end;
end;

procedure TfrmTest.FormCreate(Sender: TObject);
var MyItem: TComboItem;
begin
  //Einfügen von 2 Instanzen der Klasse zur Combobox
  MyItem := TComboItem.Create;
  MyItem.DisplayText := 'Sichtbarer Text';
  MyItem.InternalText := 'Intern genutzter Text';
  ComboBox1.Items.AddObject(MyItem.DisplayText, MyItem);
  MyItem := TComboItem.Create;
  MyItem.DisplayText := 'Wuppdi';
  MyItem.InternalText := 'Hinter den 7 Bergen';
  ComboBox1.Items.AddObject(MyItem.DisplayText, MyItem);
  ComboBox1.ItemIndex := 0;
end;

procedure TfrmTest.FormDestroy(Sender: TObject);
var i: integer;
begin
  //Instanzen freigeben
  for i := ComboBox1.Items.Count - 1 downto 0 do
    ComboBox1.Items.Objects[i].Free;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat