Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Combobox aus verschiedenen Quellen füllen? (https://www.delphipraxis.net/132887-combobox-aus-verschiedenen-quellen-fuellen.html)

khh 21. Apr 2009 12:36


Combobox aus verschiedenen Quellen füllen?
 
hallo zusammen, ich fülle eine Combobox folgendermassen:
Delphi-Quellcode:
       self.kdCombobox1.Items.AddObject(Tlisteninhalt(Fkundenlist.items[i]).Bezeichnung, Tlisteninhalt(Fkundenlist.items[i]));
und lese sie so aus:
Delphi-Quellcode:


  fauftragkd_id:= Tkunde(self.kdCombobox1.Items.Objects[self.kdCombobox1.ItemIndex]).KUNDEN_ID ;
wie kann ich einen zusätzlichen Eintrag "ALLE" hinzufügen und auslesen, damit es dem Anwender möglich ist eben _ALLE_ KundenDS auszuwählen, ohne in der Kundentabelle einen solchen Eintrag zu hinterlegen?

Danke euch

Gruss Kh

Bernhard Geyer 21. Apr 2009 12:38

Re: Combobox aus verschiedenen Quellen füllen?
 
Füllen ergänzen um:

Delphi-Quellcode:
self.kdCombobox1.Items.AddObject('Alle', nil);
Auslesen:

Delphi-Quellcode:
Obj := self.kdCombobox1.Items.Objects[self.kdCombobox1.ItemIndex]
if Assigned(Obj) then
  fauftragkd_id:= (obj as Tkunde).KUNDEN_ID;
else
  // Fall "Alle"

khh 21. Apr 2009 12:39

Re: Combobox aus verschiedenen Quellen füllen?
 
danke dir, das ging ja rasend schnell :-)



Gruss Kh

khh 21. Apr 2009 13:16

Re: Combobox aus verschiedenen Quellen füllen?
 
klappt leider noch nicht ganz:-(
bei
Delphi-Quellcode:
  Obj := self.kdCombobox1.Items.Objects[self.kdCombobox1.ItemIndex] ;
  if Assigned(Obj) then
  fauftragkd_id:= (obj as Tkunde).KUNDEN_ID
bekomme ich error 219 ungültige Typumwandlung

Obj habe ich als Tobject definiert.
was mache ich noch falsch?


Gruss KH

Hansa 21. Apr 2009 13:34

Re: Combobox aus verschiedenen Quellen füllen?
 
Zitat:

Zitat von khh
Obj habe ich als Tobject definiert.

und was ist das ?

Delphi-Quellcode:
  fauftragkd_id:= (obj as Tkunde).KUNDEN_ID
Was jetzt, TKunde oder TObject ? Oder von irgendwas abgeleitet ? :gruebel:

Bernhard Geyer 21. Apr 2009 13:39

Re: Combobox aus verschiedenen Quellen füllen?
 
Zitat:

Zitat von khh
bekomme ich error 219 ungültige Typumwandlung

Du mußt den gleichen Typ nehmen den du reinlegst:

Delphi-Quellcode:
Tlisteninhalt(Fkundenlist.items[i])
nimmst du zum "reinlegen" und verwendest da wieder einen harten Cast. Dann müsstest du mit
Delphi-Quellcode:
fauftragkd_id:= (obj as Tlisteninhalt).KUNDEN_ID
es abfragen können.

Die frage ist ob Fkundenlist.items[i] vom Typ Tlisteninhalt ist oder du nur per Harten Cast komische verrenkungen machst :gruebel:

khh 21. Apr 2009 13:41

Re: Combobox aus verschiedenen Quellen füllen?
 
Zitat:

Zitat von Hansa
Zitat:

Zitat von khh
Obj habe ich als Tobject definiert.

und was ist das ?

Delphi-Quellcode:
  fauftragkd_id:= (obj as Tkunde).KUNDEN_ID
Was jetzt, TKunde oder TObject ? Oder von irgendwas abgeleitet ? :gruebel:

daas ist die Frage :-(

wenn ich obj als Tkunde definiere bekomme ich hier:
Delphi-Quellcode:
  Obj := self.kdCombobox1.Items.Objects[self.kdCombobox1.ItemIndex] ;
Error: Incompatible types: got "TObject" expected "TKunde"

ich habs jetzt so gemacht, dass ich
Delphi-Quellcode:
     Obj := self.kdCombobox1.Items.Objects[self.kdCombobox1.ItemIndex] ;
     if Assigned(Obj) then
        // fauftragkd_id:= (obj as Tkunde).KUNDEN_ID
        fauftragkd_id:= Tkunde(self.kdCombobox1.Items.Objects[self.kdCombobox1.ItemIndex]).KUNDEN_ID
       
     else
     begin
die Typumwandlung durch die bisherige zuweisung ersetzt habe.

So funktionierts denn auch :-)

Aber was da jetzt nicht gepasst hat, habe ich noch nicht kapiert :-(

Gruss Kh

DeddyH 21. Apr 2009 13:45

Re: Combobox aus verschiedenen Quellen füllen?
 
Das müsste doch auch so gehen (obj ist als TKunde deklariert):
Delphi-Quellcode:
Obj := self.kdCombobox1.Items.Objects[self.kdCombobox1.ItemIndex] as TKunde;
     if Assigned(Obj) then
        fauftragkd_id:= obj.KUNDEN_ID
       
     else
     begin

khh 21. Apr 2009 13:47

Re: Combobox aus verschiedenen Quellen füllen?
 
Zitat:

Zitat von DeddyH
Das müsste doch auch so gehen (obj ist als TKunde deklariert):
Delphi-Quellcode:
Obj := self.kdCombobox1.Items.Objects[self.kdCombobox1.ItemIndex] as TKunde;
     if Assigned(Obj) then
        fauftragkd_id:= obj.KUNDEN_ID
       
     else
     begin

müsste ich ausprobieren, aber obj als TKunde krieg ich hier:
Delphi-Quellcode:
Obj := self.kdCombobox1.Items.Objects[self.kdCombobox1.ItemIndex] ;
Error: Incompatible types: got "TObject" expected "TKunde"

:-(

DeddyH 21. Apr 2009 13:49

Re: Combobox aus verschiedenen Quellen füllen?
 
Deshalb ja auch mein Softcast (as TKunde).


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz