fos*_*ilz 4 delphi listbox listboxitem
我有一个记录,我想为添加到列表框的每个项目存储.我是否需要让记录成为一个类来完成这个?
TServerRec = record
ID: integer;
DisplayName: string;
Address: string;
Port: integer;
end;
procedure TMainForm.PopuplateServers;
var
server: TServerRec;
begin
for server in FServerList do
begin
lbServers.AddObject(server.DisplayName, server);
end;
end;
Run Code Online (Sandbox Code Playgroud)
尝试声明你这样的结构
type
PServerRec = ^TServerRec;
TServerRec = record
ID: integer;
DisplayName: string[255];
Address: string[255];
Port: integer;
end;
//now filling your list of objects
procedure TForm1.Button1Click(Sender: TObject);
const
Max=10;
var
FServerList : Array [1..Max] of PServerRec;
server : PServerRec;
i : Integer;
begin
for i := 1 to Max do
begin
new(server);
server^.DisplayName:='Server '+IntToStr(i);
FServerList[i]:=server;
end;
for server in FServerList do
begin
lbServers.Items.AddObject(server.DisplayName, TObject(server));
end;
end;
//now to retrieve the info
procedure TForm1.lbServersDblClick(Sender: TObject);
var
server : TServerRec;
begin
server:=PServerRec(lbServers.Items.Objects[lbServers.ItemIndex])^;
ShowMessage(server.DisplayName);
end;
Run Code Online (Sandbox Code Playgroud)
不要忘记调用该 dispose函数来释放分配的每个对象的内存.