Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid Zeile setzen (https://www.delphipraxis.net/119866-dbgrid-zeile-setzen.html)

Jonas 2. Sep 2008 13:16

Datenbank: Access • Zugriff über: BDE

DBGrid Zeile setzen
 
Huhu. Ich wollte mal fragen wie ich eine bestimmte Zeile im DBGrid markerien kann und dann den entsprechenden DBGrid.CellClick() ausführen kann?

Ich habe schon mehrere Sachen versucht, ohne Erfolg:

Delphi-Quellcode:
Form1.DBGrid1.DataSource.DataSet.Last;
Form1.DBGrid1.DataSource.DataSet.MoveBy(Form1.DBGrid1.DataSource.DataSet.RecNo);
Form1.DBGrid1CellClick(Form1.DBGrid1.Columns[Form1.DBGrid1.DataSource.DataSet.RecNo]);
Form1.DBGrid1.DataSource.DataSet.UpdateCursorPos;
Zum einen möchte ich [bei einem neuen Datensatz] die letzte / neue Zeile markieren und deren CellClick ausführen, zum anderen den Datensatz den ich bearbeite.

AFAIK funktioniert das mit dem "bestimmten" Datensatz setzen über DataSet.Locate

Hat jemand ne Idee?

mkinzler 2. Sep 2008 13:23

Re: DBGrid Zeile setzen
 
Die markierte Zeile im Grid ist der aktuelle DS im DataSet.

Jonas 2. Sep 2008 13:38

Re: DBGrid Zeile setzen
 
Joa das weiss ich. Aber wenn es so ist, wieso ist liegt der Cursor nicht auf dieser Zeile?
Delphi-Quellcode:
Form1.DBGrid1.DataSource.DataSet.Last;
Form1.DBGrid1.DataSource.DataSet.MoveBy(Form1.DBGrid1.DataSource.DataSet.RecNo);
Damit setze ich doch den DS auf die letzte Zeile -> müsste die letzte Zeile im DBGrid markiert werden, oder nicht?

Und viel mehr wie rufe ich den "passenden" DBGrid1.CellClick(); auf ?! oô

Edit:
Die Sache ist auch RecNo gibt mir immer wieder nur "-1" aus.

Mimm 2. Sep 2008 15:17

Re: DBGrid Zeile setzen
 
So sollte es funktionieren:

Delphi-Quellcode:
DBGrid1.DataSource.DataSet.Last;
DBGrid1Cellclick(nil);
und wenn dann RecordCount nicht RecNo.

Warum RecNo = -1 ist steht auch in der Hilfe.

Jonas 2. Sep 2008 15:28

Re: DBGrid Zeile setzen
 
Tut es leider nicht.

Habe es auch schon mit RecordCount getestet funktionierte auch nicht.

Naja nun wird zwar der "letzte" Wert aus dem GRID selectiert, aber der letzte Wert aus dem Grid entspricht nicht dem letzten Eintrag. [Grid ist durcheinander]

DeddyH 2. Sep 2008 15:31

Re: DBGrid Zeile setzen
 
Zitat:

Grid ist durcheinander
Unsortiert, oder wie?

Mimm 2. Sep 2008 15:37

Re: DBGrid Zeile setzen
 
Achso. Dann vergiss das mit RecordCount, aber dann spricht doch nichts gegen Locate.

Delphi-Quellcode:
DBGrid1.DataSource.DataSet.Locate('ID', ID, []);
Anstelle von Id müsstest du deine Kritieren definieren die den letzten Datensatz halt ausmachen.

Jonas 4. Sep 2008 11:22

Re: DBGrid Zeile setzen
 
Danke, mit Locate funktioniert es wunderbar. :)

Ykcim 27. Mär 2017 16:33

AW: DBGrid Zeile setzen
 
Ich mache doch einen Thead auf, weil die Datenbank eine andere ist...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:27 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