Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   MouseUp Shift bleibt leer (https://www.delphipraxis.net/174317-mouseup-shift-bleibt-leer.html)

Ykcim 17. Apr 2013 08:38

MouseUp Shift bleibt leer
 
Guten Morgen,

ich möchte, dass eine MouseUp Procedure nur bei einem Doppelklick ausgeführt wird. Ich habe gelesen, dass ich dann shift auslesen kann, in dem dann "ssDouble" stehen müsste.
Leider funktioniert das bei mir nicht, da Shift immer leer bleibt?

Delphi-Quellcode:
if ssDouble in Shift then begin
Kann mir jemand sagen, was cih falsch mache?

Vielen Dank
Patrick

DeddyH 17. Apr 2013 08:44

AW: MouseUp Shift bleibt leer
 
Gibt es einen bestimmten Grund, dass Du nicht gleich das OnDblClick-Event verwendest?

Ykcim 17. Apr 2013 08:50

AW: MouseUp Shift bleibt leer
 
Ja, den gibt es, aber vielleicht hast Du ja eine elegantere Lösung für mich.

Ich habe in dem StringGrid die Option RowSelect eingestellt, damit immer die ganze Zeile markiert wird. Andererseits möchte ich aber verschiedene Aktionen ausführen, je nach Spalte, auf die der User klickt( normalerweise wird ein Fenster geöffnet, aber wenn auf die Spalte Bemerkung geklickt wird, dann soll sich ein anderes Fenster öffnen...)

Wenn ich die Option RowSelect aktiviert habe, dann ist ACol immer 0 und ich habe somit keine Möglichkeit mehr, dass ich die Spalte abfragen kann, oder?

Vielen Dank
Patrick

DeddyH 17. Apr 2013 08:56

AW: MouseUp Shift bleibt leer
 
Kommt TStringGrid.MouseToCell nicht in Frage?

Ykcim 17. Apr 2013 09:00

AW: MouseUp Shift bleibt leer
 
Genau das verwende ich im MouseUp Event. Ich kann den Code gerade mal wieder nicht posten, da der Entwicklungsrechner keinen Internetanschluss hat...

Ich habe aber nicht herausgefunden, wie ich MouseToCell in dem Doppelklick Event ausführe. Ich weiß, dass ich das mal gesehen habe. Aber mir fehlen die X,Y Koordinaten aus dem MouseUp Event...

Hast Du da einen Tip für mich?

Vielen Dank
Patrick

DeddyH 17. Apr 2013 09:02

AW: MouseUp Shift bleibt leer
 
Wenn ich es noch recht in Erinnerung habe verlangt MouseToCell nach Bildschirmkoordinaten. Die sind ganz einfach mit Mouse.CursorPos zu ermitteln.

Ykcim 17. Apr 2013 09:10

AW: MouseUp Shift bleibt leer
 
PRIMA!!! Genau das war der Tip, den ich brauchte...

In dem Event DBLCLICK einfach folgendes reinpacken:

Delphi-Quellcode:
StringGrid1.MouseToCell(Mouse.CursorPos.X, Mouse.CursorPos.Y, Col, Row)


Dann ist Col die Splate und Row die Zeile und das Ganze klappt auch bei RowSelect.

Vielen Dank für die schnelle Hilfe!

Patrick

Ykcim 17. Apr 2013 17:06

AW: MouseUp Shift bleibt leer
 
Hallo,

ich habe leider doch noch ein Problem:

In einem anderen StringGrid bekomme ich das jetzt aus irgendeinem Grund nicht hin.

Delphi-Quellcode:
procedure TMain.GridOwnRFQnachfassenDblClick(Sender: TObject);
var  Col, Row: integer;
      Objekt: TPageChange;
begin
   GridOwnRFQNachfassen.MouseToCell(Mouse.CursorPos.X,Mouse.CursorPos.Y,Col,Row);
   if Col<9 then begin
   end;
Col bekommt immer den Wert -1.

Ich habe mal nachgesehen, und die Werte von Mouse.CursorPos.X und Mouse.CursorPos.Y liegen innerhalb von Grid.top-Grid.Height und Grid.Left und Grid.Width.

Hat jemand eine Idee, warum das jetzt hier nicht klappt. Bei dem anderen Grid läuft es wunderbar...

Vielen Dank
Patrick

Bummi 17. Apr 2013 17:19

AW: MouseUp Shift bleibt leer
 
Die Mousekoordinaten beziehen sich auf den ganzen Bildschirm, Du musst mit ScreenToClient umrechnen ...

Delphi-Quellcode:
procedure TForm3.StringGrid1DblClick(Sender: TObject);
var Col, Row: integer;
  p:TPoint;
begin
   p := TControl(Sender).ScreenToClient(Point(Mouse.CursorPos.X,Mouse.CursorPos.Y));
   StringGrid1.MouseToCell(p.X,p.Y,Col,Row);
   if Col<9 then begin
   end;
end;

Ykcim 18. Apr 2013 08:14

AW: MouseUp Shift bleibt leer
 
Guten Morgen.

Vielen Dank! So funktioniert es jetzt - aber so richtig verstanden habe ich das nicht...

Gruß
Patrick


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:24 Uhr.
Seite 1 von 2  1 2      

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