Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
Delphi 6 Enterprise
|
Re: TObjectlist.add(record)?
6. Mär 2006, 23:44
Mit record kann man sehr wohl arbeiten, genauer gesagt mit den Pointers auf Record.
Delphi-Quellcode:
type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
List:TList;
procedure AddItem( NewItem:pointer);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
type
PmyRec = ^TmyRec;
TmyRec = record
item1:Integer;
item2:Byte;
item3:string; // vorsicht ;)
end;
procedure TForm1.AddItem(NewItem: pointer);
begin
with PmyRec( NewItem )^ do
begin
ListBox1.Items.Add( IntToStr( item1 ));
ListBox1.Items.Add( IntToStr( item2 ));
ListBox1.Items.Add( item3 );
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
newRec : PmyRec;
i:Integer;
begin
Randomize();
if not Assigned(List) then
begin
List := TList.Create;
end;
for i:=0 to 10 do
begin
New( newRec );
with newRec^ do
begin
item1 := random(100);
item2 := random(255);
item3 := 'hallo';
end;
List.Add( newRec );
AddItem( newRec );
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
i:Integer;
rec:PmyRec;
begin
for i:= List.Count-1 downto 0 do
begin
rec := PmyRec ( List.Items[i] );
rec^.item3 := '';
List.Delete(i);
Dispose(rec);
end;
List.Free();
end;
Katura Haris Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
|