AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dbgrid Titel leer

Ein Thema von EG045947 · begonnen am 23. Mai 2022 · letzter Beitrag vom 28. Mai 2022
Antwort Antwort
Seite 1 von 3  1 23      
EG045947

Registriert seit: 23. Mai 2022
13 Beiträge
 
#1

Dbgrid Titel leer

  Alt 23. Mai 2022, 10:29
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
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
704 Beiträge
 
Delphi 12 Athens
 
#2

AW: Dbgrid Titel leer

  Alt 23. Mai 2022, 11:51
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.
Peter Below
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
650 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Dbgrid Titel leer

  Alt 23. Mai 2022, 13:34
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.

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

Geändert von Rolf Frei (23. Mai 2022 um 13:36 Uhr)
  Mit Zitat antworten Zitat
EG045947

Registriert seit: 23. Mai 2022
13 Beiträge
 
#4

AW: Dbgrid Titel leer

  Alt 23. Mai 2022, 13:48
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

Geändert von EG045947 (23. Mai 2022 um 13:51 Uhr)
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
650 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Dbgrid Titel leer

  Alt 23. Mai 2022, 13:52
OK, habe leider die DBGrid Komponente selber schon Ewigkeiten nicht mehr genutzt. Versuche es mal so:

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.

Geändert von Rolf Frei (23. Mai 2022 um 13:56 Uhr)
  Mit Zitat antworten Zitat
EG045947

Registriert seit: 23. Mai 2022
13 Beiträge
 
#6

AW: Dbgrid Titel leer

  Alt 23. Mai 2022, 13:55
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?
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
599 Beiträge
 
Delphi XE6 Enterprise
 
#7

AW: Dbgrid Titel leer

  Alt 23. Mai 2022, 14:09
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.
  Mit Zitat antworten Zitat
EG045947

Registriert seit: 23. Mai 2022
13 Beiträge
 
#8

AW: Dbgrid Titel leer

  Alt 23. Mai 2022, 14:36
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
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#9

AW: Dbgrid Titel leer

  Alt 23. Mai 2022, 14:41
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.
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
599 Beiträge
 
Delphi XE6 Enterprise
 
#10

AW: Dbgrid Titel leer

  Alt 23. Mai 2022, 14:52
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:45 Uhr.
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