Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Grid1CellClick erweitern um xpos, ypos (https://www.delphipraxis.net/91890-grid1cellclick-erweitern-um-xpos-ypos.html)

fly_singapore 11. Mai 2007 12:48


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

marabu 11. Mai 2007 12:55

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

fly_singapore 11. Mai 2007 13:05

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.

mkinzler 11. Mai 2007 13:06

Re: Grid1CellClick erweitern um xpos, ypos
 
Dann Hol dir doch in der Event-methode die aktuelle Position der Maus

marabu 11. Mai 2007 13:17

Re: Grid1CellClick erweitern um xpos, ypos
 
Wenn du nur ein context menu brauchst:

Delphi-Quellcode:
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;
Oder noch einfacher: Die Grid-Komponente hat eine Eigenschaft PopupMenu ...

Freundliche Grüße

fly_singapore 11. Mai 2007 13:30

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

marabu 11. Mai 2007 13:35

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 16:56 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