Delphi-PRAXiS

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/)
-   -   Wie funktioniert TBLookupCombo (https://www.delphipraxis.net/159432-wie-funktioniert-tblookupcombo.html)

Jumpy 28. Mär 2011 09:17

Wie funktioniert TBLookupCombo
 
Hallo,

irgendwie bin ich gerade vernagelt und bekomme die genannte Komponente nicht zum laufen:
Nur Übungsbeispiel:

(Delphi10, OracleDB, ODBC-Zugriff)

Tabelle 1 (Anredeformen):
ID | Anrede
1 | Herr
2 | Frau
3 | Firma

Tabelle 2 (Adressen):
AnredeID | Vorname | Nachname
1 | Peter | Maier

Die Tabellen sind Datenbankseitig nicht verknüpft (keine Constrains oder ähnl.)

Jetzt sollen die Adressen in einer Eingabemaske erfasst werden.
Auf dem Form sind TADOTable und TDataSource.
Vorname & Nachname sind TDBEdit mit DataSource die TDataSource-Komponente und DataField das entsprechende Field.

Nun möche ich für die Anrede eine ComboBox, die die Auswahl der möglichen Werte aus Tabelle 1 holt.
Habe TBLookupCombo genommen und DataSource und -Field wie bei den Edits angegeben.

Ist die LookupSource nicht angegeben, wird nichts angezeigt, ob wohl ja DataSource angegeben ist.

Die LookupSource aber krieg ich nicht angegeben. Geb ich eine TTable an meckert der Compiler, dass es eine DataSource sein muss. Geb ich eine Datasource an, gibt es einen Laufzeitfehler, das das Opbjekt mit einer TTable-Komponente verbunden sein muss.

Wie bekomme ich das ans Laufen?

Jumpy 28. Mär 2011 14:54

AW: Wie funktioniert TBLookupCombo
 
Hab erstmal aufgegeben und einen Workarround mit einem TDBEdit und einer normalen TComboBox gebastelt. Ist zwar nicht schön, funktioniert aber erstmal. Nichts desto trotz, wenn jemand weiß, wie man die TDBLookupCombo benutzt, würd ich das gerne immer noch wissen. Aus der OH und dem was der große Bruder Google zu dem Thema zusagen hatte, bin ich nicht schlau geworden.

Vielleicht kenn aber jemand auch eine andere Komponente, mit der man das Verhalten eines Kombinationsfeldes wie bei MS-Access nachbauen kann.

Sir Rufo 28. Mär 2011 14:58

AW: Wie funktioniert TBLookupCombo
 
Eine DataSet-Verbindung zur Tabelle der Anredeformen erstellen
(TAdoTable, TAdoQuery oder wie auch immer)

TDataSource erstellen und mit dem DataSet verbinden

Diese DataSource dann als ListSource angeben

Jumpy 28. Mär 2011 16:13

AW: Wie funktioniert TBLookupCombo
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das hat ich auch so angenommen. Aber beim Zuweisen der DataSource an die LOOKUPSOURCE-Eigenschaft der ComboBox kommt die Fehlermeldung mit TTable, siehe Bild.

Edit: Eine Info die mir noch einfällt. Die ADO-Connection als auch die Tabellennamen werden den TADOTable-Komponenten dynamisch zugewiesen. Vllt. liegt da das Problem.

mkinzler 28. Mär 2011 17:09

AW: Wie funktioniert TBLookupCombo
 
Dann würde ich auch die LookupSource dynamisch zuweisen

dataspider 28. Mär 2011 17:39

AW: Wie funktioniert TBLookupCombo
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

gibt es einen Grund, statt TDBLookupComboBox die alten Kompatibilitätskomponenten von Windows 31 (TDBLookupCombo) zu verwenden?
Die können wahrscheinlich nur mit TTable.

Frank

Jumpy 29. Mär 2011 08:47

AW: Wie funktioniert TBLookupCombo
 
Zitat:

Zitat von mkinzler (Beitrag 1091577)
Dann würde ich auch die LookupSource dynamisch zuweisen

Hat leider auch nicht funktioniert. Aber egal, da:


Zitat:

Zitat von dataspider (Beitrag 1091583)
Hi,
gibt es einen Grund, statt TDBLookupComboBox die alten Kompatibilitätskomponenten von Windows 31 (TDBLookupCombo) zu verwenden?
Die können wahrscheinlich nur mit TTable.
Frank

Der Grund war Unwissenheit gepaart mit Dummheit. Mein Ausbilder hat gesagt "Benutz die DB-Combo, wo man in einer Wertetabelle nachschlagen kann" oder so ähnlich, also hab ich im Suchfenster der tool-Palette brav "TDBCom" eingetippt und bin die Erscheinende Liste (siehe deinen Screen-Shot) von oben nach unten durchgegangen und hab das erste genommen, was sich richtig anhörte TDBLookupCombo halt (Das war die Unwissenheit). Das das zu Win 3.1 gehörte und das drei Zeilen tiefer TDBLookupComboBox stand, hab ich nicht (mehr) gehsehen (das war die Dummheit).

Mit TDBLookupComboBox klappst dann aber Wunderbar.


P.S.: Und der Tipp von Sir Rufo klappt mit der Komponente natürlich dann auch. Ich sag nur: Kaum macht mans richtig...

Danke euch allen!:thumb:

haentschman 29. Mär 2011 21:51

AW: Wie funktioniert TBLookupCombo
 
Hallo Jumpy...
in deinem Profil steht Delphi 6 Enterprise. Deine Screenshots zeigen aber ein aktuelleres Delphi. Aktualisiere doch bitte dein Profil, damit die Helfer nicht von falschen Voraussetzungen ausgehen... 8-)

Jumpy 30. Mär 2011 10:11

AW: Wie funktioniert TBLookupCombo
 
Ich arbeite als kleiner Azubi (nur) an Delphi 6 (daher der Hinweis im Profil), durfte Ausnahmsweise mal an eine D10 Maschine. Hatte daher im Eröffnungsthread auf D10 hingewiesen. Sollte das in Zukunft öfter vorkommen, dass ich an D10 ran darf, werd ich natütlich mein Profil anpassen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:04 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 by Thomas Breitkreuz