Listbox1.Items.Add() mit Daten füllen?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
useo6
Beiträge: 4
Registriert: Mo 20. Okt 2008, 16:08

Listbox1.Items.Add() mit Daten füllen?

Beitrag von useo6 »

Moin,

ich weiß... für viele, die schon länger mit Lazarus arbeiten ist diese Frage lächerlich, aber ich weiß nicht, wie man bei einem Listbox eine Datentabelle erstellt. Also ich habe beispielsweise in der Liste einen Punkt, der "Punkt 1" heißt... wenn ich diesen nun auswähle, möchte ich den hinterlegten Text bzw. die hinterlegten Daten angezeigt bekommen.

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Add('Punkt 1');
end;
Hier wird aber nur ein Punkt erstellt, der "Punkt 1" heißt.

Schonmal danke im voraus :).

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: Listbox1.Items.Add() mit Daten füllen?

Beitrag von theo »

Mit Listbox1.Items.AddObject('Punkt 1', MyObj) kannst du zum String ein Objekt speichern.
Abrufen mit Listbox1.Items.Objects

Oder gleich mit Datenbank arbeiten.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Listbox1.Items.Add() mit Daten füllen?

Beitrag von pluto »

ein kleines Beispiel

Code: Alles auswählen

type
    tmyObj = class
     Name1, Name2:String
    end;
procedure AddItem(const aName1, aName2:String; aLb:TListBOx);
var
  aObj:TMyObj;
begin
  aObj:=TMyObj.Create;  
  aObj.Name1:=aName1;
  aObj.name2:=aname2;
  aLB.items.addObject(aname1, aObj
end;
So sollte das gehen. Es gibt einige Möglichkeiten sowas zu machen, eine andere währe einfach die ListView zu nutzten. Oder eine TreeView z.b. die VST ist sehr gut dafür geeignet. Eine andere Frage ist auch noch wie bekommst du die Werte ?
Aus einer Ini Datei ? oder eine XML ? oder aus einer "richtigen" Daten Bank ?
MFG
Michael Springwald

useo6
Beiträge: 4
Registriert: Mo 20. Okt 2008, 16:08

Re: Listbox1.Items.Add() mit Daten füllen?

Beitrag von useo6 »

Danke für eure Lösungsvorschläge :).

@pluto: Die Daten kann man über ein Eingabefeld (TLabelEdit) eingeben.

Antworten