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

📄 globalallocu.pas

📁 DelphiWin32核心API参考光盘内容.是学习书籍中的源码,便于学习.
💻 PAS
字号:
unit GlobalAllocu;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    StringGrid1: TStringGrid;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
type
  Arrayspace = array[0..199] of integer;
var
  Arrayptr: ^Arrayspace;  // pointer to a dynamic array
  Arrayhandle: HGLOBAL;   // handle to the array object
  iLoop: Integer;         // loop counter
begin
  {allocate memory from the global heap}
  Arrayhandle := GlobalAlloc(GPTR,SizeOf(Arrayspace));
  if Arrayhandle = 0 then
    begin
      ShowMessage('Error getting memory block!');
      exit;
    end;

  {retrieve a pointer to the allocated memory}
  Arrayptr := GlobalLock(Arrayhandle);
  if Arrayptr = nil then
    begin
      ShowMessage('Error getting pointer to memory!');
      exit;
    end;

  {initialize the allocated memory block with values,
   and display it}
  for iLoop := 0 to 199 do
  begin
    Arrayptr^[iLoop] := iLoop;
    StringGrid1.Cells[iLoop,0] := IntToStr(Arrayptr^[iLoop]);
  end;

  {unlock the global memory...}
  GlobalUnlock(Arrayhandle);

  {...and free it}
  GlobalFree(Arrayhandle);
end;

end.

⌨️ 快捷键说明

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