Auslesen (und auch Setzen) kannst du die Markierung überall - Seiteneffekte sollte es dabei nicht geben.
Wichtig ist nur, dass du die Variable Form1.GridSelection verwendest (siehe Kommentar im Code); diese ersetzt sozusagen die Selection-Eigenschaft des StringGrids.
GridSelection.TopLeft enthält die Koordinaten der ersten markierten Zelle von oben und GridSelection.BottomRight die der letzten markierten.
Außerdem solltest du noch zwei Zeilen am Ende von OnMouseMove ergänzen, die ich versehentlich gelöscht habe
:
Delphi-Quellcode:
// ...
else
with GridSelection do
begin
Bottom := GridSelStart.Y;
Right := GridSelStart.X;
Top := Row;
Left := Col;
end;
GridOldCoord.X := Col; // ergänzen
GridOldCoord.Y := Row; // ergänzen
StringGrid1.Refresh;
end;
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)