![]() |
DataGrid unsichtbare Info für jede Zeile
Hi @all,
ih habe hier ein DataGrid, das ich mit Daten aus einer Datenbank füttere ( ![]() Wie könnte ich so etwas am besten lösen? :cyclops: Edit: Oder soll ich vielleicht eine ListView nehmen? Editieren muss ich im DataGrid sowieso nicht... :angel2: |
Re: DataGrid unsichtbare Info für jede Zeile
Kannst du dein Problem bitte etwas ausführlicher beschreiben dann kann ich dir warscheinlich helfen
:) |
Re: DataGrid unsichtbare Info für jede Zeile
Zitat:
Ich lese aus einer Datenbank Adressdaten für ein Adressenprogramm aus. Jede Zeile in der Datenbank hat eine einmalige ID, über die ich nachher die Zeile genau ansprechen will (z.B. bei einem Doppelklick auf einen Eintrag im DataGrid). Jedoch soll diese ID nicht wie die anderen Spalten im DataGrid angezeigt werden, sondern für den Benutzer nicht sichtbar sein. Jedoch muss sie, damit ich nachher den geklickten Eintrag ansprechen kann, im Bezug auf die einzelnen Zeilen im DataGrid abgespeichert werden. Ich hoffe, dass die Erklärung besser ist. :angel2: |
Re: DataGrid unsichtbare Info für jede Zeile
Hai S2B,
klicke mal mit der rechten Maustaste auf das DBGrid. Dort kannst Du im "Spalteneditor" angeben welche Felder angezeigt werden . |
Re: DataGrid unsichtbare Info für jede Zeile
Zitat:
Edit: Quatsch mit Soße, das gibt's ja gar nicht. :wall: Es ist ein TStringGrid... :roll: Ich hab nur meine Komponente auf der Form so benannt... |
Re: DataGrid unsichtbare Info für jede Zeile
:-D
kein problem du hast ja in dem Dataset die möglichkeit deine Felder zu definieren (rechte maustaste auf die komponente und fields editor) da holst du dir mit add fields z.b deine id den namen, vornamen und sagen wir den ort im dbgrid die datasource zuweisen und in den colums würden bei unserem Beispiel 3 Colums angelegt werden dort dann die datenfelder zuweisen die du im grid haben möchtest. wenn das programm jetzt läuft ist aber das komplette recordset aktiv d.h alle vier felder wenn du z.b ein procedure den wert der id übergeben möchtest kannst du einfach auf die value oder asstring eigenschaft des datenfeldes welches als fixe komponente in die Formklasse integriert wird zugreifen. :coder: :coder: |
Re: DataGrid unsichtbare Info für jede Zeile
Hai S2B,
wenn es dir "nur" um die ID des Datensatzes geht könntest Du diese über in Typecasting in der Eigenschaft Objects speichern. Pseudocode:
Delphi-Quellcode:
Beim Auslesen musst Du diese natürlich wieder in einen Integer casten
procedure Id2StringGrid
begin StringGrid1.Objects[1,row] := TObject(DatensatzID); end;
Delphi-Quellcode:
procedure StringGrid2ID;
var DatensatzID : integer; begin DatensatzID := Integer(StringGrid1.Objects[1,row]); end; |
Re: DataGrid unsichtbare Info für jede Zeile
Danke, das funktioniert perfekt. :) Jetzt kennt sich zwar niemand mehr im Quellcode aus (wegen den vielen +1 bzw. -1 in den for-Schleifen), aber ist ja auch egal. :stupid:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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