Autor Beitrag
Black Lightning
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 69



BeitragVerfasst: Fr 02.08.02 00:25 
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

_________________
--erst programmieren, dann denken, dann debuggen--
TheUnknown
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 334



BeitragVerfasst: Fr 02.08.02 07:51 
Hi BlackLightning,

versuch es mal mit


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


ausserdem geht noch

ausblenden Quelltext
1:
 if StringGrid.Items[3].Selected then ...					
Black Lightning Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 69



BeitragVerfasst: Fr 02.08.02 19:03 
hi,
also bei mir (Delphi 6 Personal) geht keine der beiden Möglichkeiten.

gruß
Black Lightning

_________________
--erst programmieren, dann denken, dann debuggen--
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Black Lightning Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 69



BeitragVerfasst: 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
ausblenden Quelltext
1:
StringGrid.Selection.Bottom - StringGrid.Selection.Top +1					


so sollte es gehn.

mfg
Black Lightning

_________________
--erst programmieren, dann denken, dann debuggen--
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".