Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - String Grid - ermitteln ob eine row selektiert ist


Black Lightning - Fr 02.08.02 00:25
Titel: String Grid - ermitteln ob eine row selektiert ist
Hallo,
ich hab das StringGrid das ich in meinem Prog benutze so in den Optionen eingestellt, das immer gleich die ganze zeile selektiert wird.
Ich kann aber auch mehrere Zeilen markieren......wie finde ich nun per code raus ob beispielsweise row 4 selektiert ist?
Ich hab die ganzen eigenschaften durchgesehn, aber nichts entsprechendes Gefunden.

gruß
Black Lightning


TheUnknown - Fr 02.08.02 07:51

Hi BlackLightning,

versuch es mal mit



Quelltext
1:
 if StringGrind.SelCount > 0 then ...                    


ausserdem geht noch


Quelltext
1:
 if StringGrid.Items[3].Selected then ...                    


Black Lightning - Fr 02.08.02 19:03

hi,
also bei mir (Delphi 6 Personal) geht keine der beiden Möglichkeiten.

gruß
Black Lightning


Christian S. - Fr 02.08.02 19:47

Hi!

Ich habe evtl. eine Lösung, die ich jedoch nicht komplett ausgearbeitet habe: du kannst über das MouseDown und MouseUp-Ereignis abfragen, wie groß der markierte Bereich ist (Startposition und Endposition in Pixeln). Mit der Funktion StringGrid.MouseToCell kannst Du dann die entsprechenden Zellen (--> Reihen) ermitteln.

Nachteil: du musst noch irgendwie das Problem lösen, wenn der Benutzer nicht durch das Ziehen der Maus, sondern durch Drücken der Shifttaste zwischen zwei Mausklicks (2x MouseDown + 2x MouseUp) die Reihen markiert.

Vielleicht habe ich morgen Zeit, das ganze mal in Programmcode zu packen. Solltest Du es vorher lösen, bitte Bescheid sagen, dann spare ich mir das.

MfG,
Peter


Black Lightning - Fr 02.08.02 23:08

ich hab jetzt mal ein bisschen was ausprobiert und ich glaub am einfachsten ist es den Index des obersten selektierten rows über StringGrid.selection.top
zu ermitteln und die Anzahl der selektierten rows ist

Quelltext
1:
StringGrid.Selection.Bottom - StringGrid.Selection.Top +1                    


so sollte es gehn.

mfg
Black Lightning


Christian S. - Sa 03.08.02 12:28

Stimmt!

Habe ich wohl ein bisschen mit Spatzen auf Kanonen geworfen ... oder so. :lol:

Die Eigenschaft "Selection" kannte ich noch nicht, ist auf jeden Fall die bessere Alternative.

MfG,
Peter