[delphi] integer checken

Pagina: 1
Acties:

Verwijderd

/me ontbrak *

Skinkie ga je gang :).

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Misschien heb je hier wat aan, ik weet dus niet wat je precies bedoeld:
code:
1
2
3
4
5
try
  x := StrToInt(y);
except
  on E: EConvertError do ShowMessage('Convert error!');
end;

Hier is x dus een integer waar de waarde inkomt, mits deze een integer is. y is een string waar dus een getal inzit.

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

Topicstarter
is m'n berichtje weg... joh

ik gebruik dezelfde source als de bovenstaander... alleen ik zit in een for lus te kloten en als er een eroor komt vangt delphi um dus niet af. met als resultaat dat mijn grid waar alleen integers in mogen.

Ik controleer dus een stringgrid of in de cells alleen integer values staan.

Steun Elkaar, Kopieer Nederlands Waar!


  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Laat es wat source zien.

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function Checkgetal(Invoer: String): Boolean;
var
      temp:integer;
begin
      result:=false;
      try
            temp:=StrToInt(Invoer);
      except
            on E: EConvertError do result:=true;
      end;
end;


procedure TFormMain.GridCheck(Bestand: String);
var
      I, I1: Integer;
      Temp: String;
begin
      for I:=1 to StringGridCijfersToevoegen.ColCount-1 do
      begin
            if StringGridCijfersToevoegen.Cells[I,1]<>'Vinktoets' then
            begin
                for I1:=2 to StringGridCijfersToevoegen.RowCount-1 do
                begin
                      Temp:=StringGridCijfersToevoegen.Cells[I,I1];
                      StringGridCijfersToevoegen.Cells[I,I1]:='00';
                      if not CheckGetal(Temp) then StringGridCijfersToevoegen.Cells[I,I1]:=Temp;
                end;
            end;
      end;
      GridOpslaan(Bestand);
end;

Steun Elkaar, Kopieer Nederlands Waar!


Verwijderd

Design-time laat delphi nog de EConvert errors zien, tenzij je het anders instelt.

Verwijderd

Wat is nou precies je probleem. Ik mis denk ik een stuk van de topic.

  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

Topicstarter
Me probleem was dat ik vergeten was dat in de IDE delphi nog wel aangeeft dat er problemen zijn bij de conversie. Ik had daarna het progie standalone gerunned... gaf de zelfde fouten. Toen heb ik wat code veranderd... en nu doet ie het!

Probleem was dat ik uit een stringgrid wilde checken of er alleen integers in zaten, op behalve rows waar vinktoets boven stond. Ik had code alleen dat gaf dus steeds errors.
Die overigens wel terecht waren... want strings kunnen geen ints worden ;)

BEDANKT DiFool, mij ff vergeten... maarja ik weet dan toch niet wat er met de oude code mis was... want toen gaf ie die errors ook Standalone.

Steun Elkaar, Kopieer Nederlands Waar!


  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Op dinsdag 09 oktober 2001 23:03 schreef jamey32us het volgende:
Wat is nou precies je probleem. Ik mis denk ik een stuk van de topic.
Komt omdat ie brak was en ik gewoon ging raden naar het antwoord. :)

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 08-09 08:43

Bergen

Spellingscontroleur

Hmm niemand schijnt dit te weten: Je hoeft het resultaat niet in een variabele op te slaan! Het volgende mag ook best:
code:
1
2
3
4
5
try
   StrToInt ('3.5'); // 't is een functie, so what?
except
   ShowMessage ('Jah maar wacht es effe, dat mag niet!');
end;

Verwijderd

Een Try ??? Dat is echt super lelijk, beter kan je de Val functie (uit mijn hoofd) gebruiken. (misschien niet Val() maar er is wel een functie binnen delphi om dit mooi op te lossen)
Pagina: 1