Autor Beitrag
Dreas
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Do 18.11.04 21:48 
Hi,

ich möchte den Inhalt eines stringgrid auf Integerwerte überprüfen.
Ich hab das jetzt mal so gemacht:

ausblenden 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; //Ende procedure

(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 user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.
GSE
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 740

Win 2k, Win XP Pro
D5 Prof, D6 Ent, D2k5 PE
BeitragVerfasst: Do 18.11.04 21:59 
hi,

schau dir mal val und break an

mfg
GSE

_________________
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs
and the universe trying to produce bigger and better idiots. So far, the universe is winning. (Richard Cook)
IngoD7
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: Do 18.11.04 22:28 
Schau auch mal die Funktion TryStrToInt. Auch damit ersparst du dir die Exception-Geschichte.

Und schau mal die Hilfe nach TStringGrid und dessen Eigenschaften durch. Da stößt du dann auf Row und Col. Damit kannst du eine Zelle "markieren".

Letzteres hättest du durch suchen in der Hilfe (und ggf. ausprobieren) selber relativ leicht finden können. :wink: