Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#17

AW: Daten mit ID in eine ComboBox laden?

  Alt 26. Okt 2012, 16:17
Ist mir ein bisschen zu kompliziert das mit TObject
Das glaub ich dir, das täuscht letztendlich aber. Wenn man das aber paar mal gemacht, fragt man sich wieso man es früher immer anders gemacht hat. Kleines Beispiel:

Delphi-Quellcode:
type
  TInfo = class //Beispiel-Klasse
    DT: TDateTime;
  end;

procedure ListBoxItemDelete(ListBox: TListBox; Index: Integer);
begin
  if (Index < 0) or (Index > ListBox.Items.Count - 1) then Exit;
  ListBox.Items.Objects[Index].Free; //Items mit Objekte löschen
  ListBox.Items.Delete(Index);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  Info: TInfo;
  p: Integer;
begin
  with ListBox1 do
  begin
    Info := TInfo.Create; //Beispiel-Objekt Erstellen
    Info.DT := Now;

    p := Items.AddObject('Datum und Zeit', Info); //Zuweisen

    if p > -1 then
      ShowMessage(Format('Aktuelle Zeit im Item %d als Objekt gespeichert.', [p]));
  end;
end;
 
procedure TForm1.ListBox1Click(Sender: TObject);
var
  DT: TDateTime;
  Info: TInfo;
begin
  with ListBox1 do
  begin
    if Count = 0 then Exit;
    if ItemIndex = -1 then Exit;
 
    Info := TInfo(Items.Objects[ItemIndex]); //Auslesen
    DT := Info.DT;

    ShowMessage('Im Objekt gespeicherte Zeit: ' + TimeToStr(DT));
  end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
var
  i: Integer;
begin
  //Objekte müssen freigegeben werden
  for i := Items.Count - 1 downto 0 do
    ListBoxItemDelete(ListBox1, i);
end;
  Mit Zitat antworten Zitat