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
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):Cool-Tuc hat geschrieben:[...] sollte doch die Markierung wieder verschwinden oder nicht?
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;