Ciao,
SelectedRangeCount effettivamente c'è, e mi dice quante righe sono state selezionate.
Modifica delle 14:10: Mi sembra però di aver capito che SelectedRangeCount, quando si selezionano più righe contigue, restituisce sempre 1, quindi nel mio caso non è affidabile. Anche per questa, mi sono fatto una mia funzione, con cui conto le righe selezionate in base al ragionamento fatto qui sotto
Non sono riuscito però a trovare un metodo per fare un ciclo sulle sole righe selezionate.
Per ora sono riuscito ad aggirare il problema così:
procedure TForm1.Button1Click(Sender: TObject);
var IdxRow:Integer;
begin
Memo1.Lines.Clear;
Memo1.Lines.Add('Totale righe selezionate: ' + IntToStr(StringGrid1.SelectedRangeCount));
Memo1.Lines.Add(' Elenco righe selezionate:');
for IdxRow:=0 to StringGrid1.RowCount - 1 do begin
if StringGrid1.IsCellSelected[0, IdxRow] then begin
Memo1.Lines.Add(' ' + IntToStr(IdxRow));
end;
end;
end;
Quindi, in poche parole, faccio passare tutte le righe e, se la prima casella della riga risulta selezionata, allora lo è anche quella riga.
Ciao, Mario