2011-11-19 16 views
8

मेरा प्रश्न डेल्फी 7. के बारे में है कि मैं अपने कोड में बिंदु चर फ्लोटिंग के रूप में उपयोग करने के लिए वर्तमान में चयनित ComboBox1 मूल्य प्राप्त करने की आवश्यकता के लिए इसका इस्तेमाल:वर्तमान में चयनित Combobox मूल्य प्राप्त करें और चर

t:=t+ComboBox1. // Not sure what to write here... 

धन्यवाद!

उत्तर

10

सुनिश्चित नहीं हैं कि अगर TryStrToFloat डेल्फी 7 में पहले से ही है, लेकिन अगर हाँ मैं इसे इस तरह से करना होगा।

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 D7 – Simon

+1

में मौजूद है और वही था जो मुझे चाहिए था! – enflam3

+1

एचएम, 'TryStrToFloat() 'के बारे में नहीं पता था, हालांकि मैंने हमेशा' StrToFloatDef()' का उपयोग किया जो एक ही इकाई (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

या बेहतर [TryStrToFloat] (http://docwiki.embarcadero.com/VCL/en/SysUtils.TryStrToFloat) और आप '' बजाय ComboBox1.Items की ComboBox1.Text' [ComboBox1.ItemIndex] का उपयोग कर सकते) ' – TLama

+0

कोड में एक अतिरिक्त") "है। इसे हटाने के बाद, यह ठीक काम करता था। धन्यवाद! – enflam3

+0

व्यक्तिगत रूप से मुझे यह कोड पसंद नहीं है क्योंकि यह ComboBox1.ItemIndex प्रॉपर्टी के दो संदर्भों का उपयोग करता है। मुझे यकीन नहीं है कि इस संपत्ति के लिए पढ़ने की विधि क्या है, शायद यह सिर्फ एक फ़ील्ड पढ़ती है इसलिए कोई प्रदर्शन दंड नहीं है, लेकिन यह गलत लगता है। – dummzeuch

संबंधित मुद्दे