|
|
|
|
|
|
|
|
|||||
| 您现在的位置: 浩扬网络 >> 编程开发 >> delphi >> 教程正文 |
| TTestRec = record A, B, C: Integer; end; TTestCls = class
private FInner: TTestRec; FReadOnlyValue: Integer; function GetNewInner: PTestRec; public property Inner: TTestRec read FInner write FInner; property NewInner: PTestRec read GetNewInner; property ReadOnlyValue: Integer read FReadOnlyValue; end; |
| procedure TForm1.Button1Click(Sender: TObject); begin with TTestCls.Create do try // Inner.A := 10; Caption := TButton(Sender).Caption + ' A := ' + IntToStr(Inner.A); finally Free; end; end; |
| procedure TForm1.Button3Click(Sender: TObject); var p: PInteger; begin with TTestCls.Create do try p := @(Inner.A); Integer(p^) := 100; Caption := TButton(Sender).Caption + ' A := ' + IntToStr(Inner.A); finally Free; end; end; |
| procedure TForm1.Button4Click(Sender: TObject); var p: PInteger; begin with TTestCls.Create do try p := @(ReadOnlyValue); Integer(p^) := 1000; Caption := TButton(Sender).Caption + ' ReadOnlyValue := ' + IntToStr(ReadOnlyValue); |
| finally Free; end; end; |
| procedure TForm1.Button5Click(Sender: TObject); var p1, p2: PInteger; begin with TTestCls.Create do try p1 := @(Inner.A); // 内存中 FInner 与 FReadOnlyValue 其实只差 TTestRec 大小个字节 Integer(p2) := Integer(p1) + SizeOf(TTestRec); Integer(p2^) := 100; Caption := TButton(Sender).Caption + ' ReadOnlyValue := ' + IntToStr(ReadOnlyValue); finally Free; end; end; |
| TTestRec = record A, B, C: Integer; end; PTestRec = ^TTestRec; TTestCls = class
private FInner: TTestRec; FReadOnlyValue: Integer; function GetNewInner: PTestRec;
public property Inner: TTestRec read FInner write FInner; property NewInner: PTestRec read GetNewInner; property ReadOnlyValue: Integer read FReadOnlyValue; end; procedure TForm1.Button2Click(Sender: TObject); begin with TTestCls.Create do try NewInner.A := 10; Caption := TButton(Sender).Caption + ' A := ' + IntToStr(Inner.A); finally Free; end; end; |
|
|
|
|
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | |