What are they in delphi? |
尚未結案
|
lhh
一般會員 ![]() ![]() 發表:16 回覆:21 積分:7 註冊:2004-11-14 發送簡訊給我 |
|
lhh
一般會員 ![]() ![]() 發表:16 回覆:21 積分:7 註冊:2004-11-14 發送簡訊給我 |
e.g.:
unit aad; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls; type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
x:Tlist;
end; type
Ttry = class
a,b,c:Tstringlist;
e,f,g:integer;
h,j,k:string;
end;
var
Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);
var
ii:integer;
begin
x:= tlist.Create;
ii:=x.Add(TTry.Create);
showmessage(inttostr(ii));
x.Free; end; end. i want to know the use of Tobject(Tlist(i)).
Why it show 0 in the windows dialog after running this problem?
|
seaturn99
版主 ![]() ![]() ![]() ![]() 發表:69 回覆:427 積分:214 註冊:2003-08-25 發送簡訊給我 |
Hello lhh : Lookup Delphi Online Help (key word : TList) : TList stores an array of pointers. You can learn more in Help Example. Meterinfo is Object of TList,it like pointer list manager(add,sort,delete ..etc).Meterinfo maybe store a user defined data struct. Meternet[i] means that i-th element of Meternet. TMeterinfo(Meternet[i]) => Get i-th element of Meternet, then typecast to TMeterinfo type or Class (Base on your code,I guess maybe a class). The syntax :
with TMeterinfo(Meternet[i]) do to be equal use "TMeterinfo(Meternet[i]).(some class function)" ----
我只會兩件事,這也不會,那也不會 眼見不一定為真
---- 發表人 - SouthWind 於 2004/11/19 10:21:13
|
jow
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TTry = class private Fa: TStringList; Fc: TStringList; Fb: TStringList; public e,f,g:integer; h,j,k:string; constructor Create; destructor Destroy; override; property a: TStringList read Fa; property b: TStringList read Fb; property c: TStringList read Fc; end; TForm1 = class(TForm) Button1: TButton; ListBox1: TListBox; Button2: TButton; Label1: TLabel; Button3: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private FX: TList; public property X: TList read FX; end; var Form1: TForm1; implementation {$R *.dfm} { Ttry } constructor TTry.Create; begin //Create your own objects Fa := TStringList.Create; Fb := TStringList.Create; Fb := TStringList.Create; end; destructor TTry.Destroy; begin //Free objects FreeAndNil(Fa); FreeAndNil(Fb); FreeAndNil(Fb); inherited; end; { TForm1 } procedure TForm1.FormCreate(Sender: TObject); begin FX := TList.Create; end; procedure TForm1.FormDestroy(Sender: TObject); begin //Free all objects in TList FX; while FX.Count > 0 do if Assigned(FX.Items[0]) then begin TObject(FX.Items[0]).Free; FX.Delete(0); end; (* FX[0]=FX.Items[0], because Items is the default property of TList *) //Free TList FX itself FreeAndNil(FX); end; procedure TForm1.Button1Click(Sender: TObject); const OBJ_COUNT=1000; var I, J: Integer; O: TTry; begin //Create 1000 TTry object ListBox1.Clear; for I := 0 to OBJ_COUNT-1 do begin O := TTry.Create; O.e := I; O.f := Random(MaxInt); J := X.Add(O); ListBox1.Items.Add(IntToStr(J)); end; Label1.Caption := IntToStr(X.Count); end; procedure TForm1.Button2Click(Sender: TObject); var I: Integer; begin //Iterate all objects in TList X ListBox1.Clear; for I := 0 to X.Count-1 do if Assigned(X[I]) then with TTry(X[I]) do ListBox1.Items.Add(Format('%4.4d, %d', [e, f])); end; procedure TForm1.Button3Click(Sender: TObject); begin //Free all objects in TList FX; while FX.Count > 0 do if Assigned(FX.Items[0]) then begin TObject(FX.Items[0]).Free; FX.Delete(0); end; Label1.Caption := IntToStr(X.Count); end; end. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |