![]() |
Inh. vom DBGrid in einem TLabel kopieren.
Hallo , brauche mal Eure Hilfe.
Habe auf einer Form ein DBGrid und Label. DBGrid ist mit Daten gefüllt.Wenn ich auf eine Celle vom DBGrid klicke möchte ich das der Inhalt in dem Label erscheind. Wie macht man sowas. |
AW: Inh. vom DBGrid in einem TLabel kopieren.
Am einfachstn ein DBLabel verwenden, welches man mit dem entsprechenden Feld verbindet
|
AW: Inh. vom DBGrid in einem TLabel kopieren.
Und wenn es unbedingt ein Label sein muss, dann nicht auf das DBGrid, sondern auf das zugrundeliegende Dataset zugreifen.
|
AW: Inh. vom DBGrid in einem TLabel kopieren.
Zitat:
|
AW: Inh. vom DBGrid in einem TLabel kopieren.
Zitat:
Beim Klick auf das DBGrid ermittelst du einfach nur über die Spalte das Datenbank-Feld und übergibst DataSource und Field an das DBLabel. Und schwups ist der Text im Label |
AW: Inh. vom DBGrid in einem TLabel kopieren.
was ist hier falsch
Delphi-Quellcode:
<br>
Label1.Caption := DBGrid1.Columns.Items[0].DisplayName;
ich bekomme nicht den Name wo drauf ich klicke? |
AW: Inh. vom DBGrid in einem TLabel kopieren.
Nochmal: nicht das DBGrid abfragen, sondern die Datenmenge.
Delphi-Quellcode:
Wobei das so nur eine Krücke ist, Du solltest das zugewiesene Dataset (Query oder Table) direkt abfragen.
Label1.Caption := DBGrid1.Datasource.Dataset.Fields[0].AsString;
|
AW: Inh. vom DBGrid in einem TLabel kopieren.
oder gleich so
Delphi-Quellcode:
if DBgrid1.SelectedIndex > -1 then
DBText1.DataField := DBGrid1.Columns[DBgrid1.SelectedIndex].Field.FieldName else DBText1.DataField := ''; |
AW: Inh. vom DBGrid in einem TLabel kopieren.
Ok, jetzt habe ich es kapiert. vielen Dank an Euch.
|
AW: Inh. vom DBGrid in einem TLabel kopieren.
Komisch, wenn ich es so mache
Delphi-Quellcode:
dann kommt beim nächsten Zugriff auf dem DBGrid eine Fehlermeldung.
if DBgrid1.SelectedIndex > -1 then
DBText1.DataField := DBGrid1.Columns[DBgrid1.SelectedIndex].Field.FieldName else DBText1.DataField := ''; |
AW: Inh. vom DBGrid in einem TLabel kopieren.
was für eine Meldung bekommst Du denn?
|
AW: Inh. vom DBGrid in einem TLabel kopieren.
Zitat:
Feld wurde nicht gefunden! |
AW: Inh. vom DBGrid in einem TLabel kopieren.
kann ich mir jetzt nur erklären wenn Du im Grid z.B. per Doppelklick Spalten hinzugefügt hast die kein Feld enthalten, oder wenn DBText an einer anderen Datasoure als das Grid hängt ....
|
AW: Inh. vom DBGrid in einem TLabel kopieren.
[erste Antwort gelöscht]
Du mußt nur das Event OnCellClick verwenden. Das Ergebnis der Zelle wird in ein Label geschrieben.
Delphi-Quellcode:
Sorry für die falsche Antwort.
procedure TForm6.DBGrid1CellClick(Column: TColumn);
begin lblField.Caption := DBGrid1.Columns[Column.Index].Field.Value; end; Gruß Matze |
AW: Inh. vom DBGrid in einem TLabel kopieren.
Ich habe es jetzt so versuch
Delphi-Quellcode:
Klappt auch und es werden sogar leere Felder übergeben.
Label1.Caption := Table1.Fields.Fields[Column.Index].AsString;
|
AW: Inh. vom DBGrid in einem TLabel kopieren.
Also ganz korrekt und immer funktionierend würde es so gehen:
Delphi-Quellcode:
Hierbei ist es egal, welche DataSource an dem DBGrid hängt, und in welcher Reihenfolge die Felder in dem DBGrid angezeigt werden. Es wird das Feld genommen, was tatsächlich zu der gewählten Zelle gehört ;)
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin if Assigned( Column ) and Assigned( Column.Field ) then Label1.Caption := Column.Field.AsString else Label1.Caption := ''; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 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-2025 by Thomas Breitkreuz