Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi nimmt meine zahlen nicht im stringgrid trotz strtoint (https://www.delphipraxis.net/126741-nimmt-meine-zahlen-nicht-im-stringgrid-trotz-strtoint.html)

Helmi 1. Jan 2009 17:13

Re: nimmt meine zahlen nicht im stringgrid trotz strtoint
 
Es müsste dann so heissen:

Delphi-Quellcode:
var a,b,c,d:integer;
procedure TForm2.Button1Click(Sender: TObject);
begin
try
    a := StrToInt(StringGrid1.Cells[0, 0]) ;
    b := StrToInt(StringGrid1.Cells[1, 0]) ;
    c := StrToInt(StringGrid1.Cells[2, 0]) ;
    d := StrToInt(StringGrid1.Cells[3, 0]) ;
except on EConvertError do
      showmessage ('Ungültige Eingabe');
      end;
oder um das Except wegzubekommen:
Delphi-Quellcode:
var a,b,c,d:integer;
procedure TForm2.Button1Click(Sender: TObject);
begin
  a := StrToIntDef(StringGrid1.Cells[0, 0], -1) ;
  b := StrToIntDef(StringGrid1.Cells[1, 0], -1) ;
  c := StrToIntDef(StringGrid1.Cells[2, 0], -1) ;
  d := StrToIntDef(StringGrid1.Cells[3, 0], -1) ;

  If (a = -1) or (b = -1) or (c = -1) or (d = -1) then
    ShowMessage ('Ungültige Eingabe');
end;
So wird bei einem Fehler (keine Zahl eingegeben in der StringGrid-Zelle) -1 als Defaultwert zurückgegeben.
Wenn ein Feld -1 beinhaltet, dann kommt die Meldung.
(Da geht natürlich nur, wenn die erlaubte Eingabe > -1 ist, also ab 0 positiv werdend...

Molzer 1. Jan 2009 17:15

Re: nimmt meine zahlen nicht im stringgrid trotz strtoint
 
yep!

Danke Dir!

Helmi 1. Jan 2009 17:16

Re: nimmt meine zahlen nicht im stringgrid trotz strtoint
 
Zitat:

Zitat von Helmi
Es müsste dann so heissen:

Delphi-Quellcode:
var a,b,c,d:integer;
procedure TForm2.Button1Click(Sender: TObject);
begin
try
    a := StrToInt(StringGrid1.Cells[0, 0]) ;
    b := StrToInt(StringGrid1.Cells[1, 0]) ;
    c := StrToInt(StringGrid1.Cells[2, 0]) ;
    d := StrToInt(StringGrid1.Cells[3, 0]) ;
except on EConvertError do
      showmessage ('Ungültige Eingabe');
      end;
oder um das Except wegzubekommen:
Delphi-Quellcode:
var a,b,c,d:integer;
procedure TForm2.Button1Click(Sender: TObject);
begin
  a := StrToIntDef(StringGrid1.Cells[0, 0], -1) ;
  b := StrToIntDef(StringGrid1.Cells[1, 0], -1) ;
  c := StrToIntDef(StringGrid1.Cells[2, 0], -1) ;
  d := StrToIntDef(StringGrid1.Cells[3, 0], -1) ;

  If (a = -1) or (b = -1) or (c = -1) or (d = -1) then
    ShowMessage ('Ungültige Eingabe');
end;
So wird bei einem Fehler (keine Zahl eingegeben in der StringGrid-Zelle) -1 als Defaultwert zurückgegeben.
Wenn ein Feld -1 beinhaltet, dann kommt die Meldung.
(Da geht natürlich nur, wenn die erlaubte Eingabe > -1 ist, also ab 0 positiv werdend...

Oder:
Delphi-Quellcode:
var a,b,c,d:integer;
procedure TForm2.Button1Click(Sender: TObject);
begin
  If not TryStrToInt(StringGrid1.Cells[0, 0], a) or
     not TryStrToInt(StringGrid1.Cells[1, 0], b) or
     not TryStrToInt(StringGrid1.Cells[2, 0], c) or
     not TryStrToInt(StringGrid1.Cells[3, 0], d) then
    ShowMessage ('Ungültige Eingabe');
end;
(So wärst unabhängig von der Eingabe - aber auf die Eingabe von Nicht-Zahlen wird trotzdem geprüft...)

taaktaak 1. Jan 2009 17:19

Re: nimmt meine zahlen nicht im stringgrid trotz strtoint
 
da wir jetzt beim Optimieren angekommen sind:
Eine Schleife (und ein Integer-Array) wären in diesem Fall wohl schon überlegenswert...

Hawkeye219 1. Jan 2009 18:38

Re: nimmt meine zahlen nicht im stringgrid trotz strtoint
 
@Helmi: TryStrToInt liefert im Erfolgsfall den Wert True!

Gruß Hawkeye

Helmi 1. Jan 2009 18:44

Re: nimmt meine zahlen nicht im stringgrid trotz strtoint
 
Zitat:

Zitat von Hawkeye219
@Helmi: TryStrToInt liefert im Erfolgsfall den Wert True!

Gruß Hawkeye

Danke - habs repariert


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz