2011-11-19 32 views

risposta

10

Non so se la TryStrToFloat è già in Delphi 7, ma se sì, lo farei in questo modo.

procedure TForm1.ComboBox1Change(Sender: TObject); 
var 
    Value: Double; 
begin 
    if TryStrToFloat(ComboBox1.Text, Value) then 
    T := T + Value 
    else 
    ShowMessage('You''ve entered wrong value ...'); 
end; 
+0

+1, TryStrToFloat esiste in D7 – Simon

+1

Ha funzionato ed era esattamente ciò di cui avevo bisogno! – enflam3

+1

Hm, non sapeva di 'TryStrToFloat()', anche se ho sempre usato 'StrToFloatDef()' che si trova nella stessa unità (SysUtils). +1 – talereader

4
// ItemIndex is the index of the selected item 
// If no item is selected, the value of ItemIndex is -1 
if (ComboBox1.ItemIndex >= 0) then 
begin 
    t := t + StrToFloat(ComboBox1.Items[ComboBox1.ItemIndex]); 
end; 
+1

O meglio [TryStrToFloat] (http://docwiki.embarcadero.com/VCL/en/SysUtils.TryStrToFloat) e si può usare 'ComboBox1.Text' invece di' ComboBox1.Items [ComboBox1.ItemIndex]) ' – TLama

+0

C'è un extra") "nel codice. Dopo averlo rimosso, ha funzionato bene. Grazie! – enflam3

+0

Personalmente non mi piace questo codice perché utilizza due riferimenti alla proprietà ComboBox1.ItemIndex. Non sono sicuro di quale sia il metodo di lettura per questa proprietà, forse legge solo un campo, quindi non c'è una penalità performane, ma semplicemente sembra sbagliato. – dummzeuch

Problemi correlati