Ciao, credo che ti dia l'errore siccome hai dimenticato di gestire il tipo di eccezione. Nel tuo caso ti deve mandare il messaggio di errore (cioè invocare lo ShowMessage) se appunto si cerca di convertire una stringa che non contiene numeri, qundi vi è un errore di conversione.Originariamente inviato da sally3000
ho provato con il try .... ma forse sbaglio qualcosa perchè mi esce comunque il messaggio di errore
Codice PHP:
conta:=inputbox('Contatore','Modifica il contatore:','0');
try
test:=strtoint(conta);
if (conta<>Mod_dati.FIBQuery.FieldByName('NMCALL').asString) then
begin
// salvare nel db
Lblnumero.Caption:=conta;
end;
end;
except
showmessage('Inserire un numero intero valido');
end;
try
X :=strtoInt(label1.caption);
except
on EConvertError do showmessage('Errore');
end;
in questo piccolo esempio cerco di inserire in una variabile intera X il contenuto di una label, nel caso in cui la stringa in questione contenga qualche carattere si solleva un eccezione e in quel caso (cioè di un EConvertError) invoco ShowMessage, ma potevo fare quel che volevo :-).
Ricorda comunque che in fase di esecuzione, il Delphi ti avvertirà sempre con una sua finestra di errore, dicendoti che si è sollevata quell'eccezione, tu premi F9 e continua con l' esecuzione, vedrai che poi apparirà il tuo messaggio di errore e il tuo programma continuerà normalmente. Questo è un comportamento normale di Delphi che può essere aggirato smanettando con quelche settaggio, una volta lo feci, ma ora francamente non mi ricordo quale sia.
Spero di averti aiutato.
![]()