![]() |
Mausposition im DBGrid
Hallo Allerseits,
nachdem ich mich wund gesucht habe, sehe ich meine letzte Möglichkeit hier im Forum. Es geht darum, in deinen DBGrid die aktuelle Mausposition oder zumindenst die Position der aktuellen Zelle auszulesen. Ich habe kein Ereignis Dergestalt wie etwa <onMousedown> oder <onMouseup> gefunden. In einen normalen Stringgrid finde ich solche Ereignisse. Das Stringgrid würde mir auch eine Menge andere Manipulationsmöglichkeiten geben, allerdings befürchte ich beim einlesen jeder Zelle einen Performance-verlust, da ich aus einer Tabelle etwa 280000 Datensätze auslesen muss. Könnte mir jemand sagen, wie ich Mauspositionen unter DGGrid auslesen kann.. Ach ja, ich arbeite noch mit Delphi 3.. Vielen Dank !!!! |
Re: Mausposition im DBGrid
Hallo fly_singapore,
mit dem folgenden Code kannst Du die Position der aktuell ausgewählten Zelle in einem "DB-Grid" herausfinden (kann das leider nicht unter "Delphi 3" testen, ich hoffe aber, dass es auch da funktioniert):
Delphi-Quellcode:
Wie Du siehst, musst Du Dich hier auf das Ereignis "OnCellClick" "stürzen".
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var MousePos : TPoint; Coord : TGridCoord; begin MousePos := DBGrid1.ScreenToClient(Mouse.CursorPos); Coord := DBGrid1.MouseCoord(MousePos.X, MousePos.Y); ShowMessage(IntToStr(Coord.X) + ', ' + IntToStr(Coord.Y)); end; Viele Grüße, Bolt Thrower |
Re: Mausposition im DBGrid
Hallo Bolt Thrower,
Leider hats nicht funktioniert. :pale: Delphi erkennt den Bezeichner <Mouse> nicht. Vielleicht muss ich irgendeine Unit noch einbinden. Oder Delphi 3 hat noch nicht diese Funktionalität. Ich hoffe aber, dass ich bald eine neuere Delphi-Version bekomme. Trotzdem vielen Dank !!! |
Re: Mausposition im DBGrid
Hab' gerade gelesen, dass TMouse bis einschließlich "Delphi 3" nicht zur Verfügung steht.
Alternativ könntest Du allerdings auf folgende Weise versuchen, TMouse zu umgehen:
Delphi-Quellcode:
Viele Grüße,
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var P : TPoint; MousePos : TPoint; Coord : TGridCoord; begin GetCursorPos(P); MousePos := DBGrid1.ScreenToClient(P); Coord := DBGrid1.MouseCoord(MousePos.X, MousePos.Y); ShowMessage(IntToStr(Coord.X) + ', ' + IntToStr(Coord.Y)); end; Bolt Thrower |
Re: Mausposition im DBGrid
Hallo Bolt Thrower
Im Prinzip klappt es schon gut. Ich brauche aber dafür die absoluten Pixelkoordinaten. :? Vielleicht überlege ich mir, wie ich die gerade ausgelesen Werte in Koordinatenwerte umschlüsseln kann. Vielen Dank für den Tip |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:46 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