Entwickler-Ecke
Datenbanken - dbgrid Zelle auslesen
Adrasteia - Mi 29.10.08 13:33
Titel: dbgrid Zelle auslesen
hi ihr´s,
eine anfängerin hätte gerne hilfe
bin schon eine weile am schauen und ausprobieren
dachte ich kann mein auslesen > ich klicke zelle an und der inhalt wird mir im label1 gezeigt <
wie im in einem treeview machen dort funktioniert es einwandfrei
habe es hier beim dbgrid probiert aber...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TMainform.DBGrid1CellClick(Column: TColumn); var cell : TDBGrid; begin
cell := DBGrid1.SelectedField; if assigned(cell) then Label1.Caption := Cell.text; end; |
meine fehlermeldung:
[DCC Fehler] Messe.pas(87): E2010 Inkompatible Typen: 'TDBGrid' und 'TField' <<<< habe auch dbgrids und was da alles stand ausprobiert, aber die meldung bleibt ??
[DCC Fehler] Messe.pas(89): E2362 Auf protected-Symbol TControl.Text kann nicht zugegriffen werden
[DCC Fehler] Messe.pas(29): E2065 Ungenügende Forward- oder External-Deklaration: 'TMainform.DBGrid1DrawDataCell'
[DCC Fehler] Messex.dpr(10): F2063 Verwendete Unit 'Messe.pas' kann nicht compiliert werden
und dann hatte ich dies ...
Delphi-Quelltext
1: 2: 3: 4:
| type TSelectCellEvent = procedure (Sender: TObject; ACol, ARow: Longint; var CanSelect: Boolean ) of object; property OnSelectCell: TSelectCellEvent; |
probiert,
aber spätestens bei acol und arow behauptet er unbekannt?! ich weiß nicht mehr weiter, warum was wie????
ich wäre für hilfe dankbar
achso delphi 2007 und keine vernünftige hilfe (also mich bitte nicht darauf hinweisen, ich würde, wenn ich könnte!!!) dabei, sondern microsoft Document Explorer der mir bis jetzt noch nie wirklich weitergeholfen hat?? :? :cry:
Delete - Mi 29.10.08 14:28
Ein DBGrid dient nur der Darstellung von Daten einer Datenmenge, d.h. man kommt da nicht mehr über die Zellen heran, sondern nur über diese Datenmenge. Das ist etwas, was man dabei im Hinterkopf haben muss. Der aktuelle selektierte Datensatz ist demnach DBGrid.DataSource.Dataset. Versuch es mal damit.
jasocul - Mi 29.10.08 14:37
Auch wenn DeddyD völlig Recht hat, so kann man trotzdem über das DBGrid zugreifen. Aber es ist der falsche Ansatz.
Deine Variable Cell ist vom Typ TDBGrid. Du willst aber den Inhalt einer Zelle darin speichern. Damit es eine einfache Erklärung bleibt, setze ich mal voraus, dass es ein String ist, den du ans Label übergeben willst.
Dann ergibt sich:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TMainform.DBGrid1CellClick(Column: TColumn); var cell : String; begin cell := DBGrid1.SelectedField.AsString; if cell <> '' then Label1.Caption := Cell; end; |
Da ich das nicht testen kann, gibts keine Gewähr. Abgesehen davon, dass man nicht auf diese Weise mit einem TDBGrid umgeht.
Adrasteia - Mi 29.10.08 14:49
ganz lieben dank an euch beide für die schnelle hilfe
ich werde mich noch mal an deddyh´s antwort setzen, muss ich ja irgendwie hinbekommen
aber die von jasocul funktioniert auf jedenfall ;)
danke
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!