प्रश्न:How can i add an integer to the object portion of a stringlist item, using AddObject?
एक:How can a retrieve the integer back from a object property of stringlist item?
एक:: कास्ट करने के लिए बस TObject
List.AddObject('A string',TObject(1));
क्यू को पूर्णांक मान डाली वस्तु मूल्य पूर्णांक
AValue := Integer(List.Objects[i]);
प्रश्न:How do i free all objects and list when done?
एक: क्योंकि आप स्मृति बताए नहीं कर रहे हैं आप, वस्तु सूची मुक्त जरूरत नहीं है। इसलिए की Free
प्रक्रिया को कॉल करें।
, मैं सिर्फ एक जवाब लिख रहा था यह नमूना अनुप्रयोग
{$APPTYPE CONSOLE}
uses
Classes,
SysUtils;
Var
List : TStringList;
i : Integer;
begin
try
List:=TStringList.Create;
try
//assign the string and some integer values
List.AddObject('A string',TObject(1));
List.AddObject('Another string',TObject(100));
List.AddObject('And another string',TObject(300));
//Get the integer values back
for i:=0 to List.Count - 1 do
Writeln(Integer(List.Objects[i]));
finally
//Free the list
List.free;
end;
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
Readln;
end.
तुम मुझे यह करने के लिए हरा की कोशिश करो, लेकिन मैं तुम्हारा बजाय वोट दें देंगे। ओपी को अंतिम नोट के रूप में, आपको सूची को छोड़कर किसी ऑब्जेक्ट को स्पष्ट रूप से मुक्त करने की आवश्यकता नहीं है, क्योंकि टीस्ट्रिंगलिस्ट अपनी पॉइंटर्स की आंतरिक सूची को मुक्त करता है और आपने कोई ऑब्जेक्ट नहीं बनाया है, केवल उस सूची में संग्रहीत पूर्णांक हैं। आरआरयूजेड ने यह दिखाया है, केवल टीएसटींगलिस्ट को मुक्त कर रहा है। –
@RRUZ - +1 वाह! मुझे लगता है कि आपने अभी मेरे लिए एक बड़ा मुद्दा हल किया है कि मैं समझने की कोशिश कर रहा हूं। मैं डेटाबेस लुकअप मानों के लिए आईडी/वैल्यू जोड़े का उपयोग करना चाहता हूं। इसलिए यदि मैं उपर्युक्त रूप से समझता हूं तो मैं ड्रॉप डाउन में सूची.Strings [i] (मान भाग) प्रदर्शित कर सकता हूं और डेटाबेस में विदेशीकी आईडी के रूप में संबंधित इंटीजर (List.Objects [i]) का उपयोग कर सकता हूं। –
@IElite, मैंने फ़्लोटिंग पॉइंट मानों की एक सूची को स्टोर करने के लिए एक समान चाल का उपयोग किया है जहां परिशुद्धता और गतिशील रेंज महत्वपूर्ण नहीं है (डेल्फी 'एकल' प्रकार 4 बाइट्स है और पॉइंटर को टाइपकास्ट किया जा सकता है)। यदि कोई तार नहीं है और पूर्णांक/फ्लोट्स आप स्टोर करना चाहते हैं तो आप एक टीएलिस्ट का भी उपयोग कर सकते हैं। – rossmcm