Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#4

AW: Items aus einer Liste abfragen

  Alt 21. Feb 2012, 12:35
Ich hoffe ich habe mich annährend verständlich ausgedrückt, wie ich mir das vorstelle ...
Um Bummis Vorschlag wirst du nicht herumkommen, denn du kannst im Item-String nur eine begrenzte Information unterbringen. Ich weiß nicht wie gut du dich mit dem anhängen von Objekten an Items auskennst, wobei das eigentlich relativ simpel ist.

Ich habe zufällig an einer anderen Stelle mal ein Beispiel gepostet. Das sieht in etwa so aus:
Delphi-Quellcode:
type
  TInfo = class
    DT: TDateTime;
  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 (' + DateTimeToStr(Info.DT) + ')', 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;
  Info: TInfo;
begin
  with ListBox1 do //Objekte müssen separat freigegeben werden
    for i := 0 to Items.Count - 1 do
    begin
      Info := TInfo(Items.Objects[i]); //Freigeben
      Info.Free;
    end;
end;
Solltest du ein Profi sein, übersehe das Beispiel.

Ansonsten erkläre ich das Beispiel kurz: ganz oben wird eine einfache Klasse erstellt die wie ein Record aufgebaut ist. Bei Zuweisung Objekt erstellen und zuweisen, dann nach belieben damit arbeiten und beim Beenden des Programms (oder leeren der Liste) auch immer das Objekt frei geben.
  Mit Zitat antworten Zitat