線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1277
推到 Plurk!
推到 Facebook!

請教如何在 Delphi 中動態宣告一 record type?

尚未結案
kevin@ROC
一般會員


發表:2
回覆:0
積分:0
註冊:2004-08-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-22 15:52:16 IP:220.134.xxx.xxx 未訂閱
請教各位高手如何在 Delphi 中動態宣告一 record type? Thanks
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-23 10:55:17 IP:211.162.xxx.xxx 未訂閱
Hi,kevin@ROC,您好! 小弟也是初通皮毛,不妨看看下面的code,或許會有點Help。我的實際目的是抛磚引玉,讓真正的高手顯身< class="code"> procedure TForm1.Button1Click(Sender: TObject); type TOneRecord = record Name: String; Age: Word; end; POneRecord = ^TOneRecord; var OneRecord: TOneRecord; PRecord: POneRecord; begin OneRecord.Name := 'bigdogchina'; OneRecord.Age := 24; PRecord := @OneRecord; PRecord.Name := 'bigdogchina'; ShowMessage(PRecord^.Name); ShowMessage(PRecord.Name);//這樣的寫法實際上是不符合規範的,但是編譯器已經自動幫我們轉化爲上一句 end; ================================= 人生在勤,不索何獲 業精於勤荒於嬉,行成於思毀於隨 臨淵羡魚不如退而結網
------
人生在勤,不索何获?
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-23 12:04:00 IP:202.39.xxx.xxx 未訂閱
不知您所謂的動態是指什麼? 如以 bigdogchina 兄的例子而言, 是指動態宣告 Name, Age 等嗎? 如果是的話, delphi 的 record 應該是不行 您可改用 Variant 的方式, 在 delphi help 的例子如下:
var      A: Variant;
begin
  A := VarArrayCreate([0, 4], varVariant);
  A[0] := 1;
  A[1] := 1234.5678;
  A[2] := 'Hello world';
  A[3] := True;
  A[4] := VarArrayOf([1, 10, 100, 1000]);
  WriteLn(A[2]);        { Hello world }
  WriteLn(A[4][2]);        { 100 }
end;
還是您要的是動態陣列的 record, 是的話, 以 bigdogchina 兄的例子來說
procedure TForm1.Button1Click(Sender: TObject);
type
  TOneRecord = record
    Name: String;
    Age:  Word;
  end;
var
  OneRecord: array of TOneRecord;
  i: integer;
begin
  [red]SetLength(OneRecord, 10);
  for i := 0 to 9 do
  begin
    OneRecord.Name[i] := IntToStr(i);
    OneRecord.Age[i]  := 24;
  end;
end;
-- 歡迎光臨 KTop 研究苑!
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-08-23 13:10:23 IP:218.163.xxx.xxx 未訂閱
補充一下, 你也可以參考看看 "TVarRec"
rest
一般會員


發表:5
回覆:23
積分:5
註冊:2004-05-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-09 18:14:13 IP:202.39.xxx.xxx 未訂閱
請問一下.. hagar大大.. 有一行.. [red]SetLength(OneRecord, 10);//那個[red]是什麼意思..?? ...... thx..    < >< >
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-09-09 19:41:52 IP:202.39.xxx.xxx 未訂閱
引言: 請問一下.. hagar大大.. 有一行.. [red]SetLength(OneRecord, 10);//那個[red]是什麼意思..?? ...... thx.. < >< > < face="Verdana, Arial, Helvetica"> 那是讓貼出的文章的內容變顏色的 Tag 在貼文章的時候您可以注意一下有幾個下拉選單 其中一個就是設定顏色的
系統時間:2024-05-18 12:04:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!