11
デルファイ7の使用:TStringListのAddObjectを整数で使用していますか?
- がどのように私はSTRINGLIST項目の対象部分に整数を追加することができますが、
AddObject
を使用していますか? - オブジェクトから整数を取得するにはどうすればいいですか? stringlist itemのプロパティ?
- すべてのオブジェクトを解放し、完了したら をリストするにはどうすればよいですか?
デルファイ7の使用:TStringListのAddObjectを整数で使用していますか?
AddObject
を使用していますか?Q:How can i add an integer to the object portion of a stringlist item, using AddObject?
A:ちょうどTObject
List.AddObject('A string',TObject(1));
Qに整数値をキャスト:How can a retrieve the integer back from a object property of stringlist item?
A:キャストへオブジェクト値を整数
AValue := Integer(List.Objects[i]);
Q:How do i free all objects and list when done?
A:あなたはメモリを割り当てていないので、あなたは、オブジェクトのリストを解放する必要はありません。 TStringList
の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.
を試してみて、私は答えを書いていたが、私が代わりにあなたをupvoteます。 OPへの最後のメモとして、リスト以外のオブジェクトを明示的に解放する必要はありません.TStringListはポインタの内部リストを解放し、オブジェクトを作成せず、そのリストに格納されている整数のみを作成します。これはRRUZが示しているもので、TSTringListを解放するだけです。 –
@RRUZ - +1うわー!私はあなたが私にとって大事な問題を解決したと思っています。私は、データベース参照値にID /値ペアを使用するのが好きです。だから私は上記を正しく理解すれば、ドロップダウンにList.Strings [i](値の部分)を表示し、関連するInteger(List.Objects [i])をデータベースのForeignKey Idとして使用することができます。 –
@IElite、私は精度とダイナミックレンジが重要ではない浮動小数点値のリストを格納するのに同様のトリックを使用しました(Delphi 'single'型は4バイトであり、ポインタへの型キャスト可能です)。文字列がなく、整数/浮動小数点数をすべて格納したい場合は、TListを使用することもできます。 – rossmcm