Hi,
ich möchte den Inhalt eines stringgrid auf Integerwerte überprüfen.
Ich hab das jetzt mal so gemacht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.Button2Click(Sender: TObject); var i,j:Integer; begin
stringgrid1.cells[m+1,n+1]:='0'; for i:=1 to (m+1) do begin for j:=1 to (n+1) do begin try strtoint(stringgrid1.cells[i,j]) except on EConvertError do begin Application.MessageBox('In der Matrix sind nur Integerwerte erlaubt! '+#13#10+'Bitte die Zellen überprüfen...','Matrix',MB_OK); end; end; end; end; stringgrid1.cells[m+1,n+1]:='';
end; |
(In der letzten Zelle steht grundsätzlich nichts drin. Deswegen die vorrübergehende Zuordnung mit '0'.)
Wie bekomme ich es aber hin, das nicht hundert MessageBoxes aufgehen, wenn z.B. nix in der Tabelle steht?
Ich möchte nur eine Meldung haben.
Wenn die Schleife eine Zelle entdeckt, die nicht geht, kann die for-Schleife dann irgendwie unterbrochen werden?
Oder geht das anders eleganter?
Voll cool wärs auch, wenn die falsche Zelle dann gleich markiert wäre.
Moderiert von
Christian S.: Code- durch Delphi-Tags ersetzt.