AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MouseUp Shift bleibt leer

Ein Thema von Ykcim · begonnen am 17. Apr 2013 · letzter Beitrag vom 18. Apr 2013
Antwort Antwort
Seite 1 von 2  1 2      
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
826 Beiträge
 
Delphi 10.4 Sydney
 
#1

MouseUp Shift bleibt leer

  Alt 17. Apr 2013, 09:38
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?

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

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: MouseUp Shift bleibt leer

  Alt 17. Apr 2013, 09:44
Gibt es einen bestimmten Grund, dass Du nicht gleich das OnDblClick-Event verwendest?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
826 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: MouseUp Shift bleibt leer

  Alt 17. Apr 2013, 09:50
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
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

AW: MouseUp Shift bleibt leer

  Alt 17. Apr 2013, 09:56
Kommt TStringGrid.MouseToCell nicht in Frage?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
826 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: MouseUp Shift bleibt leer

  Alt 17. Apr 2013, 10:00
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
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

AW: MouseUp Shift bleibt leer

  Alt 17. Apr 2013, 10:02
Wenn ich es noch recht in Erinnerung habe verlangt MouseToCell nach Bildschirmkoordinaten. Die sind ganz einfach mit Mouse.CursorPos zu ermitteln.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
826 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: MouseUp Shift bleibt leer

  Alt 17. Apr 2013, 10:10
PRIMA!!! Genau das war der Tip, den ich brauchte...

In dem Event DBLCLICK einfach folgendes reinpacken:

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
Patrick
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
826 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: MouseUp Shift bleibt leer

  Alt 17. Apr 2013, 18:06
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
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#9

AW: MouseUp Shift bleibt leer

  Alt 17. Apr 2013, 18:19
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;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
826 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: MouseUp Shift bleibt leer

  Alt 18. Apr 2013, 09:14
Guten Morgen.

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

Gruß
Patrick
Patrick
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:39 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