Czy, jeśli wystąpi wyjątek, to takie wyjście/wyskok z pętli jest prawidłowy? Chodzi o... Exit.
Suma := 0;
for i := ListView1.Items.Count-1 downto 0 do
if ListView1.Items.Item[i].Selected
then
begin
try
Suma := Suma + StrToFloat(ListView1.Items[i].SubItems[0]);
lblZaznacz.Caption := FloatToStr(Suma);
Application.ProcessMessages;
except
ShowMessage('Wpisana wartość nie jest liczbą. Kolumna 2 linia '+ IntToStr(i+1));
Exit;
end;
end;