recordswithstrings.dpr

来自「source code for Marco Cantu s book Delph」· DPR 代码 · 共 43 行

DPR
43
字号
program recordswithstrings;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
  TRecordWithString = record
    Value: Integer;
    Name: string;
  end;

var
  rec1, rec2: TRecordWithString;

function GetRefCount (const s: string) : Integer;
var
  RefCountPointer: Pointer;
begin
  if Pointer(s) <> nil then
  begin
    RefCountPointer :=
      Pointer (Integer (Pointer (s)) - 8);
    Result := Integer (RefCountPointer^);
  end
  else
    Result := 0;
end;

begin
  rec1.Value := 3;
  rec1.Name := 'hello';

  writeln ('refcount: ' + IntToStr (GetRefCount(rec1.Name)));
  rec2 := rec1;
  writeln ('refcount: ' + IntToStr (GetRefCount(rec1.Name)));
  rec1.Name[3] := 'x';
  writeln ('refcount: ' + IntToStr (GetRefCount(rec1.Name)));

  readln;
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?