![]() |
Grid1CellClick erweitern um xpos, ypos
Hallo Allerseits,
Im Control TDBgrid gibt es das Ereignis 'Grid1CellClick'. Ausser dem Column als Argument wird nichts mit geliefert, Jetzt möchte ich aber innerhalb der Ereignisbehandlung die X + Y Position der Maus auslesen. Im Control Stringgrid gibt es das Ereignis OnMouseDown welches genau diese Parameter als Argument mitliefert, eine Entsprechung im TDBGrid finde ich nicht. Allerdings muss ich sagen, dass ich z.Z. noch mit Delphi 3 arbeite, ich aber auf eine aktuelle Delphi-Version warte, die eventuell diese Erweiterungen behinhaltet. Ich habe mir dann überlegt ob man nicht über die objektorientiere Programmierung so was lösen könnte, indem man einfach TBGrid vererbt und die Ereignisse, so erweitert, dass auch die Mauspositionparameter auswertbar sind. Leider bin ich nicht so fit in der objektorienierte Programmierung. Deshalb meine Frage an Euch. Könnt ihr mir einen Lösungsansatz nennen bzw. ein tutorial empfehlen, was solche Fragen beantwortet... Vielen Dank |
Re: Grid1CellClick erweitern um xpos, ypos
Hallo,
kannst du bitte noch etwas mehr zu der eigentlichen Anforderung schreiben? Wozu brauchst du bei einem DBGrid die Mausposition? Reicht nicht die Identifizierung des Datenfeldes völlig aus? Freundliche Grüße |
Re: Grid1CellClick erweitern um xpos, ypos
Hallo Marabu,
ich möchte ein Kontextmenü erstellen, was sich neben den Mauscursor öffnet, sobald ich beispielsweise auf eine Zelle doppelklicke. Dabei soll soll auch die Column weiterhin auswertbar sein, die ich ja auch weiterhin brauche. |
Re: Grid1CellClick erweitern um xpos, ypos
Dann Hol dir doch in der Event-methode die aktuelle Position der Maus
|
Re: Grid1CellClick erweitern um xpos, ypos
Wenn du nur ein context menu brauchst:
Delphi-Quellcode:
Oder noch einfacher: Die Grid-Komponente hat eine Eigenschaft PopupMenu ...
procedure TForm1.DBGridMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); var pt: TPoint; begin if Button = mbRight then begin pt := DBGrid.ClientToScreen(Point(X, Y)); PopupMenu.Popup(pt.X, pt.Y); end; end; Freundliche Grüße |
Re: Grid1CellClick erweitern um xpos, ypos
etwa so?
[delphi] procedure TForm1.DBGrid2CellClick(Sender: TObject; x, y: integer); begin ... ... end; ich habe auch oben im Type-Bereich entsprechende Eintragung vorgenommen.. funktioniert nicht |
Re: Grid1CellClick erweitern um xpos, ypos
Da du nicht widersprochen hast, gehe ich davon aus, dass du dein Grid mit einem Kontextmenü ausstatten möchtest. Ziehe einfach ein PopupMenu auf die Form und ordne das Menu dem Grid im Object Inspector zu. Vergiss die Events des Grids. Oder hast du noch etwas verschwiegen?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:43 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