Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.03.29;
Скачать: CL | DM;

Вниз

Скопировать данные из одного указателя в другой   Найти похожие ветки 

 
TForm   (2014-02-07 12:56) [0]

Как правильно скопировать данные из RecPtr в GlobalRecPtr?


unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

type
 TRec = packed record
   Id: Integer;
   Name: string[21];
 end;
 PRec = ^TRec;

var
 Form1: TForm1;

implementation

var
 GlobalRecPtr: PRec;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 RecPtr: PRec;
begin
 New(RecPtr);
 try
   with RecPtr^ do
   begin
     Id := 1;
     Name := "test";
   end;
   // Скопировать значения полей в GlobalRecPtr
 finally
   Dispose(RecPtr);
 end;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 ShowMessage(IntToStr(GlobalRecPtr^.Id) + #13#10 + GlobalRecPtr^.Name);
end;

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

procedure TForm1.FormDestroy(Sender: TObject);
begin
 Dispose(GlobalRecPtr);
end;

end.


 
RWolf ©   (2014-02-07 13:00) [1]

GlobalRecPtr^ := RecPtr^;


 
MBo ©   (2014-02-07 13:56) [2]

Если нет динамических полей, как в данном случае, то
Move(RecPtr^, GlobalRecPtr^, SizeOf(TRec));
иначе присвоение или копирование каждого поля по отдельности.

Вот только зачем это нужно?


 
MBo ©   (2014-02-07 15:11) [3]

Чего-то я перебдел ;)
[1] здесь достаточно.



Страницы: 1 вся ветка

Текущий архив: 2015.03.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.007 c
15-1407412508
Ламот
2014-08-07 15:55
2015.03.29
Как залить прошивку на железку с предустановленным U-Boot?


2-1391763373
TForm
2014-02-07 12:56
2015.03.29
Скопировать данные из одного указателя в другой


2-1391687960
camil
2014-02-06 15:59
2015.03.29
Загрузка содержимое BLOB поля на WebBrowser


2-1391686016
XCoder
2014-02-06 15:26
2015.03.29
Возврат результата из вложенной функции


2-1384890210
Denh
2013-11-19 23:43
2015.03.29
JSON сохранить "C: temp cv.txt" и обратно загрузить TJSONObject