1. 程式人生 > >Delphi : record 記錄型別

Delphi : record 記錄型別

  
  
interface  
  
uses  
  Windows, Messages, SysUtils, Variants, Classes,Graphics, Controls,Forms,   
  Dialogs,StdCtrls;   
  
type  
  TForm1 =class(TForm)   
    Button1:TButton;   
    Button2:TButton;   
    Button3:TButton;   
    Button4:TButton;   
    procedureButton1Click(Sender:TObject);   
    procedureButton2Click(Sender:TObject);   
    procedureButton3Click(Sender:TObject);   
    procedureButton4Click(Sender:TObject);   
 end;   
  
var  
  Form1:TForm1;   
  
implementation  
  
{$R *.dfm}  
  
type  
  TRec =record      {定義結構 TRec}  
    name:string[12];   
    age:Word;   
 end;   
  TPRec =^TRec;     {定義 TRec 結構的指標型別 TPRec}  
  
var  
 Rec:        TRec;   {宣告結構變數}  
  PRec1,PRec2:TPRec;   {宣告 TPRec指標變數}  
 PRec3:     ^TRec;    {宣告TRec 結構的指標變數, 現在 PRec1 與 PRec3是不同型別的變數}  
 P:          Pointer; {宣告無型別指標}  
  
  
//通過結構指標訪問結構   
procedure TForm1.Button1Click(Sender:TObject);   
begin  
  Rec.name :='張三';   
  Rec.age :=18;   
  
  PRec1 := @Rec; {把 Rec 的地址告訴PRec1}  
  
 {本來應該這樣訪問}  
  ShowMessage(PRec1^.name);{張三}  
  
  {Delphi允許這樣簡單使用結構指標}  
  ShowMessage(PRec1.name); {張三}  
  
 {如果我們通過指標修改了資料}  
  PRec1.name :='李四';   
  
  {那麼}  
  ShowMessage(Rec.name);{李四}  
  {因為 PRec1 和 Rec所指的是同一個資料}  
end;   
  
  
//如果是單獨使用指標,必須先給記憶體   
procedure TForm1.Button2Click(Sender:TObject);