Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Dbgrid Titel leer (https://www.delphipraxis.net/210657-dbgrid-titel-leer.html)

EG045947 23. Mai 2022 09:29

Dbgrid Titel leer
 
Hallo Delphi Gemeinde,

Ich lese eine Access Datenbank via FDConnection, FDQuery und Datasource aus und geben die Daten an eine Dbgrid.
Die Datenbankfelder werden schön als Dbgrid Titel angezeigt und die jeweiligen Daten darunter.

Nun möchte ich bei DBGrid1TitleClick das jeweilige Datenbankfeld (Titel der Column) via Column.FieldName auslesen, jedoch sind die alle Titel leer = „“.

Ich habe zum Test eine andere Dbgrid mit manuellen Columns erstellt und die lassen sich via Column.FieldName auslesen.
Auch Column.Title.Caption ist leer!

Frage: Warum kann ich das nicht auslesen, wenn die Daten via FD-Tools kommen?

Danke!

Gruß,
Alexander

peterbelow 23. Mai 2022 10:51

AW: Dbgrid Titel leer
 
Zitat:

Zitat von EG045947 (Beitrag 1506209)
Hallo Delphi Gemeinde,

Ich lese eine Access Datenbank via FDConnection, FDQuery und Datasource aus und geben die Daten an eine Dbgrid.
Die Datenbankfelder werden schön als Dbgrid Titel angezeigt und die jeweiligen Daten darunter.

Nun möchte ich bei DBGrid1TitleClick das jeweilige Datenbankfeld (Titel der Column) via Column.FieldName auslesen, jedoch sind die alle Titel leer = „“.

Ich habe zum Test eine andere Dbgrid mit manuellen Columns erstellt und die lassen sich via Column.FieldName auslesen.
Auch Column.Title.Caption ist leer!

Frage: Warum kann ich das nicht auslesen, wenn die Daten via FD-Tools kommen?

Danke!

Gruß,
Alexander

Es ist wirklich Jahrzehnte her seit ich zuletzt mit TDBGrid gearbeitet habe, aber ich kann mich erinnern, dass sowas nur vernünftig funktioniert hat (mit Paradox und dbase seinerzeit) wenn man die Columns im Designer angelegt hat.

Rolf Frei 23. Mai 2022 12:34

AW: Dbgrid Titel leer
 
Nutze die Daten des Feldes diekt und nicht die Daten der Columns im DBGrid. Die Daten da sind nur vorhanden, wenn du die Columns manuell erstellst. Jede Col hat aber einen Verweis auf das DB-Feld, über das du die Feldbezeichnung bekommst.

Delphi-Quellcode:
DBGrid1.Columns[1].Field.FieldName; // oder DisplayName, wenn du dem Feld einen andere Bezeichnung gegeben hast.

EG045947 23. Mai 2022 12:48

AW: Dbgrid Titel leer
 
da bekomme ich einen Fehler: Argument außerhalb des Bereichs.

Denke er kommt mit den Daten von der DB irgenwie durcheinander.

Auch wenn ich die Anzahl der Spalten abfrage = 1

Rolf Frei 23. Mai 2022 12:52

AW: Dbgrid Titel leer
 
OK, habe leider die DBGrid Komponente selber schon Ewigkeiten nicht mehr genutzt. Versuche es mal so:

Delphi-Quellcode:
DBGrid.Fields[x].FieldName

PS. Lies dir doch bitte auch mal die Hilfe zum DBGrid durch. Da ist das beschrieben, dass man das per Fields machen muss und nicht über Columns. Fields[0] wäre die erste Spalte, Fields[1] die 2. usw.

EG045947 23. Mai 2022 12:55

AW: Dbgrid Titel leer
 
wenn ich das abfrage: DBGrid1.Fields[1].FieldName;
Bekomme ich auch ne Fehlermeldung: Zugriffsverletzung, etc...

Und falls dies funktionieren wird, x ist ja immer eine vorher festgelegte Zahl. Wie bekomme ich heraus in welcher Spalte ich den Titel angeklickt habe.
Sprich ist X = 1 oder 15?

Frickler 23. Mai 2022 13:09

AW: Dbgrid Titel leer
 
Zitat:

Zitat von EG045947 (Beitrag 1506241)
wenn ich das abfrage: DBGrid1.Fields[1].FieldName;
Bekomme ich auch ne Fehlermeldung: Zugriffsverletzung, etc...

Und falls dies funktionieren wird, x ist ja immer eine vorher festgelegte Zahl. Wie bekomme ich heraus in welcher Spalte ich den Titel angeklickt habe.
Sprich ist X = 1 oder 15?

Übergeben wird OnTitleClick() der Parameter Column. Column.Index ist die Spalte minus eins, d.h. die erste Spalte ist Column.Index = 0, 2. Spalte ist Column.Index = 1 usw.

EG045947 23. Mai 2022 13:36

AW: Dbgrid Titel leer
 
das ist alles korrekt, wenn die Columns manuell erstellt wurden. Sobald die von einer DB kommt, ist dies nicht mehr so.
Bei mir ist jede Spalte -1 und kein Text im Titel

Delphi.Narium 23. Mai 2022 13:41

AW: Dbgrid Titel leer
 
Zeig' bitte mal den Quelltext, sonst müssen wir hier bis auf weiteres raten, was eventuell falsch sein könnte.

Mit Quelltext sieht man (mit ein bisserl Glück) das Problem sofort.

Frickler 23. Mai 2022 13:52

AW: Dbgrid Titel leer
 
Zitat:

Zitat von EG045947 (Beitrag 1506246)
das ist alles korrekt, wenn die Columns manuell erstellt wurden. Sobald die von einer DB kommt, ist dies nicht mehr so.
Bei mir ist jede Spalte -1 und kein Text im Titel

Nicht nur manuell! Angenommen, das Grid heißt DBGrid1. Dann rufst Du nach dem Zuweisen der DataSource zum Gitter folgendes auf:
Code:
DBGrid1.Columns.State := csDefault;
Und - schwupps! - sind alle Spalten da und können wie o.a. angesprochen werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:07 Uhr.
Seite 1 von 3  1 23      

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