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/)
-   -   Bug in TStringGrid? (https://www.delphipraxis.net/174023-bug-tstringgrid.html)

DelphiChaot 28. Mär 2013 16:43

Bug in TStringGrid?
 
Hallo,

Ein TStringGrid ist in der Größe vom Benutzer veränderbar. Es kann dann also auch so groß gemacht werden, daß die letzte Zeile nicht komplett sichtbar ist.
Wenn nun der Nutzer die letzte (nur teilweise sichtbare) Zeile mit der Maus anklickt, fängt das Fenster an zu scrollen, und wenn die Maus losgelassen wird, ist die letzte Zeile der Tabelle markiert.

Beispiel: Es ist an den Anfang der Tabelle gescrollt und es sind knapp 3 Zeilen sichtbar. Die Tabelle enthält 10 Zeilen.
Wird nun auf den 3 Eintrag geklickt (der ausgewählt werden soll) beginnt das Fenster zu scrollen, und wenn man die Maustaste loslässt, ist statt des 3. der 10. Eintrag markiert.

Hat jemand eine Idee, wie man das Verhalten so ändern kann, daß die gewünschte Zeile problemlos mit der Maus markiert werden kann, auch wenn sie nicht voll sichtbar ist?

Sir Rufo 28. Mär 2013 16:58

AW: Bug in TStringGrid?
 
Wäre schön wenn du deine Delphi Version angeben würdest

Bummi 28. Mär 2013 17:27

AW: Bug in TStringGrid?
 
@Sir Rufo das geht auch mit XE und XE3 wenn goEditing abgeschaltet ist.
Ein nettes Problem, leider komme ich gerade nicht dazu :-(

DelphiChaot 28. Mär 2013 17:38

AW: Bug in TStringGrid?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1209269)
Wäre schön wenn du deine Delphi Version angeben würdest

Sorry, da hast du Recht: Ich habe XE
Außerdem ist goRowSelect aktiviert (das hat aber keinen Einfluss)

DelphiChaot 29. Mär 2013 09:10

AW: Bug in TStringGrid - die Lösung
 
Meine Lösung sieht nun wie folgt aus, der Code kommt in die OnMouseDown-Behandlung:

Code:
  with Sender as TStringGrid do
  if y > DefaultRowHeight * (VisibleRowCount + FixedRows) then
  SendMessage(Handle, WM_LBUTTONUP, x, y);


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