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').asStringthen 
begin
        
// salvare nel db
        
Lblnumero.Caption:=conta;         
end;       
end;     
except      
 showmessage
('Inserire un numero intero valido');     
end
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.

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.