Hallo alle,
ich verwende die aktuellste Version von "lazarus". In einem TStringGrid habe ich die Einstellung "Multiselect" eingestellt; funktioniert wo weit auch. Wenn ich aber z.B. die 1,3 und 5 Zeile markiere (mit Ctrl) und ich markiere z.B. die Zeile 3 ein 2-tes mal, sollte doch die Markierung wieder verschwinden oder nicht? Und genau das tut es nicht. Habe ich vielleicht vergessen, in den Einstellungen etwas einzustellen?
Danke
udo
TStringGrid - Selection
Re: TStringGrid - Selection
Cool-Tuc hat geschrieben:[...] sollte doch die Markierung wieder verschwinden oder nicht?
Das LCL StringGrid tut das offenbar nicht, mit jedem Click wird die Auswahl immer nur erweitert (AddSelectedRange), nie reduziert, höchstens komplett gelöscht (ClearSelections):
Code: Alles auswählen
procedure TCustomGrid.MouseDown(Button: TMouseButton; Shift: TShiftState; X,
Y: Integer);
[...]
if (goRangeSelect in Options) and (FRangeSelectMode = rsmMulti)
then begin
if (MULTISEL_MODIFIER in Shift) then
AddSelectedRange
else begin
ClearSelections;
Invalidate;
end;
end;
[...]
procedure TCustomGrid.AddSelectedRange;
var
n: Integer;
begin
if (goRangeSelect in Options) and (FRangeSelectMode = rsmMulti) then begin
n := Length(FSelections);
SetLength(FSelections, n+1);
FSelections[n] := FRange;
end;
end;