请教一个指针问题(200分)

  • 主题发起人 主题发起人 Grape
  • 开始时间 开始时间
G

Grape

Unregistered / Unconfirmed
GUEST, unregistred user!
如何将一个指针放到stringlist.objects里去

比如:
type
ARecord = record
a,b : string;
end;
PARecord : ^ARecord;
AStrlist : TStringList;
请教如何在AStrlist.AddObject里把PARecord加进去?用 TObject(PARecord)吗?
还有如何从AStrlist.objects[]里取出这个PARecord呢?
 
用TObject(PARecord)加进去,用Objects[]取出来做类型转换。
PARecord(AStrlist.Objects[])^.a
 
乱写了一气,你自己看吧.

type
paab=^Taab;
Taab=record
a,b:string
end;


procedure TForm1a.Button2Click(Sender: TObject);
var jj:tstrings;
a:paab;
b:paab;
begin
jj:=TStringList.Create;
new(a);
a^.a:='aa';
a^.b:='bb';
jj.AddObject('a',tobject(a));
b:=paab(jj.Objects[0]);
showmessage(b^.a);


end;
 
必须是 TObject
 
>>必须是 TObject
no,不一定,看delphi的例子,可以是其他的,

procedure TForm1.FormCreate(Sender: TObject);
var
I: Integer;
ListItem: TListItem;
NewColumn: TListColumn;
begin
// Create a ListView item for each image in the ImageList
with ListView1 do
begin
SmallImages := ImageList1;
LargeImages := ImageList1;
for I := 0 to ImageList1.Count - 1 do
begin
ListItem := Items.Add;
Listitem.Caption := 'Image' + IntToStr(I);

ListItem.ImageIndex := I;
end;
// Create two columns to show during viewing as vsReport
NewColumn := Columns.Add;
NewColumn.Caption := 'Column 1';
NewColumn := Columns.Add;
NewColumn.Caption := 'Column 2';
// Add View styles and constants to the Combo Box
ComboBox1.Items.AddObject('vsIcon', TObject(vsIcon))
//这里vsIcon是TObject吗?当然不是
ComboBox1.Items.AddObject('vsList', TObject(vsList));
ComboBox1.Items.AddObject('vsReport', TObject(vsReport));

ComboBox1.Items.AddObject('vsSmallIcon', TObject(vsSmallIcon));
// Display first item in the Combo Box
ComboBox1.ItemIndex := 0;
end;
end;

procedure TForm1.ComboBox1Click(Sender: TObject);
begin
with ComboBox1 do
ListView1.ViewStyle := TViewStyle(Items.Objects[ItemIndex]);
end;
 
多人接受答案了。
 
用 Tlist,直接加 指针
 
我用Pointer作转化也可以了
 

用TStringList?考虑用TList吧。
 
后退
顶部