⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memform.pas

📁 Delphi高级开发指南是开发程序的好帮手
💻 PAS
字号:
unit MemForm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    BtnRefresh1: TButton;
    BtnCreateNil: TButton;
    BtnCreateOwner: TButton;
    BtnGetMem: TButton;
    LblResult: TLabel;
    Btn100Strings: TButton;
    Bevel1: TBevel;
    BtnRefresh2: TButton;
    procedure BtnRefresh1Click(Sender: TObject);
    procedure BtnCreateNilClick(Sender: TObject);
    procedure BtnCreateOwnerClick(Sender: TObject);
    procedure BtnGetMemClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Btn100StringsClick(Sender: TObject);
    procedure BtnRefresh2Click(Sender: TObject);
  public
    procedure Refresh;
    procedure Refresh2;    
  end;

var
  Form1: TForm1;

implementation

uses MemMan;

{$R *.DFM}

procedure TForm1.Refresh;
begin
  LblResult.Caption :=
    'Allocated: ' + IntToStr (GetMemCount) + #13 +
    'Free: ' + IntToStr (FreeMemCount) + #13 +
    'Existing: ' +
      IntToStr (GetMemCount - FreeMemCount) + #13 +
    'Re-allocated: ' + IntToStr (ReallocMemCount);
end;

procedure TForm1.Refresh2;
begin
  LblResult.Caption := Format (
    'Allocated: %d'#13'Free: %d'#13'Existing: %d'#13'Re-allocated %d',
    [GetMemCount, FreeMemCount,
    GetMemCount - FreeMemCount, ReallocMemCount]);
end;

procedure TForm1.BtnRefresh1Click(Sender: TObject);
begin
  Refresh;
end;

procedure TForm1.BtnCreateNilClick(Sender: TObject);
begin
  TButton.Create (nil);
  Refresh;
end;

procedure TForm1.BtnCreateOwnerClick(Sender: TObject);
begin
  TButton.Create (self);
  Refresh;
end;

procedure TForm1.BtnGetMemClick(Sender: TObject);
var
  P: Pointer;
begin
  GetMem (P, 100);
  Integer (P^) := 0;
  Refresh;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Refresh;
end;

procedure TForm1.Btn100StringsClick(Sender: TObject);
var
  s1, s2: string;
  I: Integer;
begin
  s1 := 'hi';
  s2 := Btn100Strings.Caption;
  for I := 1 to 100 do
    s1 := s1 + ': hello world';
  Btn100Strings.Caption := s1;
  s1 := s2;
  Btn100Strings.Caption := s1;
  Refresh;
end;

procedure TForm1.BtnRefresh2Click(Sender: TObject);
begin
  Refresh2;
end;

end.

⌨️ 快捷键说明

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