Autor Beitrag
lilalaunebaer
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 16.11.02 16:06 
Hallo !
Ich werde nochmal wahnsinnig :twisted:

Ich habe ne Tabelle, bei der ich nach .Append per FieldByName schon eine Zahl (Integer-Schlüssel) in ein Feld eintrage. Nun habe ich im danach geöffneten Formular den Rest der Felder zum Eintragen, möchte aber, das der schon eingetragene Wert von der Lookup-Combobox "erkannt" wird und diese schon den entsprechenden Namen zur eingetragenen Nummer angibt.
Listsource ist "DSPersonen" (DataSoucePersonen), ListField ist "Name" KeyField ist "Nr", beides Felder aus der Tabelle Personen, DataSouce und DataField ist NICHT zugewiesen, weil ich keine Felder verändern muss; könnte dort der Fehler liegen ? Eine DBComboBox will ich nicht benutzen, weil sich die Anzahl der Personen ändern kann und ich nicht immer die Items vorher füllen will.

Hoffe es gibt eine einfache Lsg.
thx !
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Mo 18.11.02 08:25 
Hi
das funktioniert schon. Du musst nur der Eigenschaft KeyValue deiner Combo die aktuelle Nummer zuweisen. Denn wenn du kein Datenfeld an der ComboBox dran hast, kann auch logischerweise kein Eintrag dargestellt werden.

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
lilalaunebaer
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 18.11.02 15:54 
Titel: Ungültige Typumwandlung
Hallo !

Hatte ich noch gar nicht gewusst, die Eigenschaft KeyValue wird im Objektinspector gar nicht aufgelistet und ich bin immer zu faul in der Hilfe nach Eigenschaften zu suchen .. :wink:

Soweit so gut, aber wenn ich folgendes Schreibe, bricht er immer mit der Fehlermeldung "Ungültige Typumwandlung" ab


ausblenden Quelltext
1:
DBCBTest.KeyValue := DM.TPersonen.FieldByName('Nr').AsVariant;					


Die Verknüpfung ist noch richtig, und auch AsInteger oder AsString geht nicht. Wenn ich aber das Programm nicht aus Delphi heraus starte, funktioniert alles wunderbar.
Ist der Umwandlungsfehler beim Lesen des Feldes ( Typ Integer ) in die AsVariant der Fehler, oder das "umwandeln" von AsVariant in KeyValue, was ja lt. Hilfe schon Variant ist.

Gibt es da sowas wie TComponent(Sender) nur für Variablen ( Integer(x) oder (x as Integer) ????


thx !
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Mo 18.11.02 16:03 
Hi
so sollte es auf jeden Fall funktionieren:
ausblenden Quelltext
1:
DBCBTest.KeyValue := DM.TPersonen.FieldByName('Nr').Value					


Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...