TStringGrid - Selection

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.

TStringGrid - Selection

Beitragvon Cool-Tuc » 6. Jul 2019, 23:33 TStringGrid - Selection

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
Cool-Tuc
 
Beiträge: 95
Registriert: 6. Apr 2011, 17:10

Beitragvon wp_xyz » 7. Jul 2019, 11:56 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;
wp_xyz
 
Beiträge: 2924
Registriert: 8. Apr 2011, 09:01

• Themenende •

Zurück zu Programmierung



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried