EDV ha scritto:
Ho bisogno di sapere, in caso di selezione multipla, le righe selezionate per cancellarne il contenuto.
Il controllo
TStringGrid dispone della proprietà
Selection di tipo
TGridRect che ti fornisce le coordinate dell'angolo superiore sinistro e inferiore destro del rettangolo formato dal range delle celle selezionate.
Agendo sulla proprietà
Options hai la facoltà di definire le opzioni di selezione attuabili sulla griglia; ad esempio, puoi abilitare (e disabilitare) la selezione di un range (
goRangeSelect) o di una intera riga (
goRowSelect). La scelta di diverse opzioni influisce sull'estensione del range a fronte di una selezione della griglia, ma i valori restituiti da
Selection saranno sempre coerenti.
Prova ad esempio a visualizzare su un pulsante al clic le coordinate attuali della selezione con questo codice:
procedure TForm1.Button1Click(Sender: TObject);
var
LSelection: TGridRect;
begin
LSelection := StringGrid1.Selection;
Button1.Caption := Format('Left=%d, Top=%d, Right=%d, Bottom=%d',
[LSelection.Left, LSelection.Top, LSelection.Right, LSelection.Bottom]);
end;
Modificando il range di selezione sulla
TStringGrid e premendo il
TButton avrai subito un esempio chiaro di come variano le coordinate e quindi come riconoscere quali sono le righe selezionate.
Per approfondimenti, fai riferimento anche alla .
Ciao!