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 TitleClick & DblClick bei DBGrid (https://www.delphipraxis.net/112691-titleclick-dblclick-bei-dbgrid.html)

Moony 25. Apr 2008 12:58


TitleClick & DblClick bei DBGrid
 
Hallo zusammen,

ich versuche schon seit längerem herauszufinden, wie man abfangen kann, dass wenn in einem TDBGrid ein Doppelklick in der Titelleiste ausgeführt wird, die Funktionen für einen Doppelklick nicht mehr wirksam sind.

Habe hier schon gesucht, aber keine richtige Lösung gefunden.

Habe schon folgendes probiert:
Delphi-Quellcode:
procedure TForm.DBgridDblClick(Sender: TObject);
var gc : TGridCoord;
    p : TPoint;
begin
  p := ScreenToClient(Mouse.CursorPos);
  gc := DBgrid.MouseCoord(p.X, p.Y);
  if (gc.X > 0) and (gc.Y > 0) then
    // Tu was
end;
...aber hier komme ich nie auf 0.

Danke & Gruß, Moony

mkinzler 25. Apr 2008 13:00

Re: TitleClick & DblClick bei DBGrid
 
Wie meinst du das? dass während der Abarbeiteung keine neue Events getriggert werden?

Moony 25. Apr 2008 13:03

Re: TitleClick & DblClick bei DBGrid
 
Nein. Ich habe ein DBGrid, in welches eine Datenmenge aus der Datenbank geladen ist. Wenn ich ein Doppelklick auf einen Datensatz ausführe, dann soll etwas mit den Daten gemacht werden. Mache ich aber einen Doppelklick auf die Titelleiste des DBGrids, dann darf nichts mit der Datenmenge gemacht werden.

NickelM 25. Apr 2008 13:10

Re: TitleClick & DblClick bei DBGrid
 
Hast du mal debuggt??? Und geschaut, welche MousePos der rausgibt???
Vieleicht musst du die Top und Left abzählen oder machs so

Delphi-Quellcode:
var X1, X2 : Integer
// bei MouseMove von Grid
X1 := X; //von MousePos bei Grid
Y1 := Y;

procedure TForm.DBgridDblClick(Sender: TObject);
var gc : TGridCoord;
    p : TPoint;
begin
  p := Point(x1,Y1);
  gc := DBgrid.MouseCoord(p.X, p.Y);
  if (gc.X > 0) and (gc.Y > 0) then
    // Tu was
end;
Vieleicht gehts dann

Moony 25. Apr 2008 13:23

Re: TitleClick & DblClick bei DBGrid
 
So, ich habe jetzt folgende Tests gemacht:

1.
Delphi-Quellcode:
p := ScreenToClient(Mouse.CursorPos);
-> Doppelklick auf die Titelleiste in der ersten Spalte des Grids ergibt
Delphi-Quellcode:
     gc.x = 1
     gc.y = 3
-> Doppelklick auf den 2. Datensatz in der ersten Spalte des Grids ergibt
Delphi-Quellcode:
     gc.x = 1
     gc.y = 6
2.
Delphi-Quellcode:
p := Point(myX, myY);
-> Doppelklick auf die Titelleiste in der ersten Spalte des Grids ergibt
Delphi-Quellcode:
     gc.x = 1
     gc.y = 0
-> Doppelklick auf den 2. Datensatz in der ersten Spalte des Grids ergibt
Delphi-Quellcode:
     gc.x = 1
     gc.y = 3

Moony 29. Apr 2008 13:27

Re: TitleClick & DblClick bei DBGrid
 
Hallo,

nach langem rumprobieren, was mir welche Ergebnisse liefert, bin ich zu folgendem Ergebnis gekommen:

Delphi-Quellcode:
procedure TFPaddock.PermgridDblClick(Sender: TObject);
var gc : TGridCoord;
    p : TPoint;
begin
  p := Point(myX, myY);
  gc := Permgrid.MouseCoord(p.X, p.Y);
  if gc.Y > 0 then
    // Tu was
end;
Gruß & Danke an alle Anregungen,

Moony :hello:


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