S:How can i add an integer to the object portion of a stringlist item, using AddObject?
A:How can a retrieve the integer back from a object property of stringlist item?
A: Dökme için sadece TObject
List.AddObject('A string',TObject(1));
S tamsayı değeri dökümHow do i free all objects and list when done?
A: Nesne Değeri
AValue := Integer(List.Objects[i]);
Q tamsayı Belleği atama değildir çünkü nesne listesini serbest gerekmez. Bu nedenle, yalnızca TStringList
'un Free
prosedürünü çağırın.
, sadece bir cevap yazıyordu {$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.
Sen beni alt bu örnek uygulaması deneyin, ama bunun yerine seninkini upvote edeceğiz. OP'ye son bir not olarak, TStringList'in dahili işaretçi listesini serbest bırakması ve herhangi bir nesne oluşturmadığınızdan, yalnızca listede bulunan tam sayılar olduğundan, liste dışında herhangi bir nesneyi açıkça serbest bırakmanız gerekmez. RRUZ'un gösterdiği şey budur, sadece TSTringList'i serbest bırakır. –
@RRUZ - +1 Vay canına! Bence sadece anlamaya çalıştığım büyük bir sorunu çözdün. Veritabanı arama değerleri için ID/Value çiftlerini kullanmayı seviyorum. Yani, eğer yukarıdakileri doğru olarak anlarsam, bir açılır listeden List.Strings [i] değerini (değer kısmı) görüntüleyebilir ve veritabanındaki ForeignKey Kimliği olarak ilgili Tamsayıyı (List.Objects [i]) kullanabilirim. –
@IElite, Hassas ve dinamik aralığın çok önemli olmadığı (Delphi 'tekli türü 4 bayttır ve bir işaretçiye yazım olabilir) kayan nokta değerlerinin bir listesini saklamak için benzer bir numara kullandım. Eğer dizeleri yoksa ve tamsayı/floatlar depolamak istediğinizde TList kullanabilirsiniz. – rossmcm