![]() |
TObjectlist Problem mit index
Hallo zusammen,
ich habe eine Tanredenlist vom Type TObjectlist. bei der Anredenliste handelt es sich um eine kleine Liste, ich möchte das Prinzip aber auch für andere, grössere Listen und Objekte nutzen. In einer Schleife im constructor der Liste lese ich die Objekte ein: Fanreden := Tanreden.create(NIL); self.add(Fanreden); Fanreden beinhaltet id, bezeichnung , usw. wenn ich ( zum test)in der schleife auf die Objekte zugreife funktioniert das wunderbar: ShowMessage(Tanreden(self.items[i]).Bezeichnung); jetzt möchte ich eine Instanz der Tanredenliste an eine Combobox übergeben: also erzeuge ich :
Delphi-Quellcode:
Leider bekomme ich so nur die Bbezeichnung des letzten Satzes in die Combobox, und das 'count-mal'
Fanredenlist := Tanredenlist.create(NIL);
for i:=0 to Fanredenlist.count-1 do begin myForm.AnredeCombobox.Items.AddObject(Tanreden(Fanredenlist.items[i]).Bezeichnung, Tanreden(Fanredenlist.items[i])); end; was mache ich falsch ? danke Gruss KH |
Re: TObjectlist Problem mit index
Wenn TAnredenlist wirklich vom Typ TObjectlist ist, hat der Constructor einen Boolean-Parameter namens OwnsObjects und keinen TObject-Parameter. Vielleicht zeigst Du uns mal den ganzen Constructor, dann kann man evtl. eher etwas erkennen.
|
Re: TObjectlist Problem mit index
Delphi-Quellcode:
EDIT:constructor Tanredenlist.Create(AOwner:TPersistent); var anzds , i: integer; begin inherited Create; // Fanreden ist vom Typ Tanreden = class(TPersistent) Fanreden := Tanreden.create(NIL); // in Fanreden.anzds stehen die anzahl der ds in der DB anzds := Fanreden.anzds; for i:= 0 to anzds -1 do begin Fanreden.anreden_id := i +1 ; // liest die ds aus der db und übergibt sie dem Object Fanreden Fanreden.DSlesen ; self.add(Fanreden); // ShowMessage(Tanreden(self.items[i]).Bezeichnung); end; end; Type Tanredenlist = class(TObjectList) |
Re: TObjectlist Problem mit index
Du erzeugst ja auch nur ein einziges Objekt FAnreden und überschreibst das immer wieder.
|
Re: TObjectlist Problem mit index
Zitat:
ich dachte ich kann über einen index daruf zugreifen :wall: das heisst ich muss in der schleife mehrere objecte erzeugen? wie ist danndie syntax? |
Re: TObjectlist Problem mit index
Hier einmal ein Auszug aus meinem aktuellen Projekt (ich hoffe, da ist mir jemand jetzt nicht böse ;)):
Delphi-Quellcode:
with TFBLParamDsql.Create(nil) do
try //... SQL.Text := Format(sSQL,[FTablename]); ExecSQL; while not eof do begin ASalutation := TSalutation.CreateNew(FDatabase); ASalutation.FID := FieldByNameAsInteger('ID'); ASalutation.FTitle := FieldByNameAsString('Bezeichnung'); self.Add(ASalutation); Next; end; Close; finally Transaction.Commit; Free; end; |
Re: TObjectlist Problem mit index
ich danke dir
Gruss Kh |
Re: TObjectlist Problem mit index
trotzdem nochmal ne frage:
so: self.Add(ASalutation); oder eben so: self.add(Fanreden); haben dann ja alle objekte den gleichen namen. wie sieht dann die syntax aus, wenn ich die Objekte in der Instanz an die Combobox übergeben möchte ? EDIT: ok die systax wie ich sie in der Instanz habe passt. |
Re: TObjectlist Problem mit index
dann muss ich ja auch irgendwie wieder an die id des in der Box ausgewählten Eintrags kommen.
geht das irgendwie einfacher? |
Re: TObjectlist Problem mit index
Du hast jetzt alle Objekte in der ComboBox, oder? An das entsprechende Objekt kommst Du doch dann über den ItemIndex der ComboBox.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz