Delphi TStringGrid multi auswählen, bestimmen der ausgewählten Zeilen
Gibt es trotzdem, um zu bestimmen, welche Zeilen ausgewählt sind, in einer multi-select - TStringGrid
oder eine TCustomGrid
für diese Angelegenheit. Eine Eigenschaft wäre ideal.
Ich weiß, dass es die gdSelected
Eigenschaft, die festgelegt wird, in der DrawCell
Ereignis,
procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState);
Kann ich überprüfen AState
für gdSelected
und halten diese in einem array irgendwo, aber das scheint kludgey.
InformationsquelleAutor sse | 2011-05-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Sie reden über einen range-select-string-grid, das heißt, dass ein string grid mit
goRangeSelect
imOptions
. Dann können Sie dieSelection
Eigenschaft. Dies ist (im wesentlichen) eineTRect
in die Sie finden können, die die Obere linke und untere Rechte Zelle in der Auswahl.Nein, bin ich davon ausgegangen, dass es keine "extended wählen" (wie bei Strg-Klick auf einzelne Zellen). Es scheint mir jedoch, dass die
TStringGrid
unterstützt keine erweiterten wählen. (Wenn es nicht-wie in der Welt tun Sie es zu aktivieren?!)AFAICT, @Andreas, ist richtig. Die standard -
TStringGrid
keine Unterstützung für nicht-zusammenhängende Auswahlen.TDBGrid
jedoch, indem Sie eine Liste von Lesezeichen der ausgewählten Zeilen (TDBGrid.SelectedRows
- Eigenschaft).Ah, ich sehe, Sie sind beide Recht, danke, TStringGrid.Auswahl.unten und TStringGrid.Auswahl.top Arbeit perfekt für diese. Nochmals vielen Dank.
InformationsquelleAutor Andreas Rejbrand
Oooh, ich verwende
StringGrid.Selection.BottomRight.Y
zu bestimmen Zeilen undStringGrid.Selection.BottomRight.X
für Spalten.InformationsquelleAutor Yuriy
Verwendung von string-grid-selection-Eigenschaft
StringGrid.Selection.top
wird dir die ausgewählte Zeile,StringGrid.Selection.bottom
geben Sie am Ende ausgewählten Zeile, wenn die Auswahl beendet.Beispiel:
Wenn Sie von Zeile 3 bis Zeile 6 in einem string grid dann
StringGrid.Selection.top
geben Sie 3 als Ausgang WertStringGrid.Selection.bottom
geben Sie 6 als output-Wert, und die restlichen Werte können Sie durch die Iteration von oben nach unten.InformationsquelleAutor celroy