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

Вниз

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

 
Drowsy ©   (2015-11-07 21:12) [0]

unit Unit1;

interface

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

type

PCalcRecord = ^TCalcRecord;
TCalcRecord = record
  EQUIP_Pure : real;
end;

 TForm1 = class(TForm)
   Button1: TButton;
   Label2: TLabel;
   procedure Button1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
 private
   { Private declarations }
   WorkRecord : pCalcRecord;
   ER_Cranes : PCalcRecord;

 public
   { Public declarations }
 end;

var
 Form1: TForm1;

procedure ClearCalcRecord( var vCalcRecord : TCalcRecord);

function PlusCalcRecord  ( var vCalcRecord : TCalcRecord) : TCalcRecord;

function GetRecord(inValue : real
                           ) : TCalcRecord;

function GetCraneRecord(
             var inValue : real) : TCalcRecord;

implementation

{$R *.dfm}

function GetCraneRecord(
             var inValue : real) : TCalcRecord;
begin
 Result := GetRecord(inValue );
end;

procedure ClearCalcRecord( var vCalcRecord : TCalcRecord);
begin
 with vCalcRecord do
 begin
   EQUIP_Pure := 0;
 end;
end;

function PlusCalcRecord( var vCalcRecord : TCalcRecord) : TCalcRecord;
begin
 // здесь Result.EQUIP_Pure = 2222.22 !!!!! ЭТО КАК?
 // vCalcRecord.EQUIP_Pure = 7777.77
 Result.EQUIP_Pure := Result.EQUIP_Pure + vCalcRecord.EQUIP_Pure;
end;

function GetRecord(inValue : real
                           ) : TCalcRecord;
begin
 ClearCalcRecord(result);
 with Result do
 begin
   EQUIP_Pure := inValue;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var R : real;
begin
 ClearCalcRecord(ER_Cranes^);
 ClearCalcRecord(WorkRecord^);

 R := 2222.22;

 WorkRecord^ := GetCraneRecord( R );
//  здесь WorkRecord^.EQUIP_Pure =  2222.22
 WorkRecord^.EQUIP_Pure := 7777.77;
//  здесь WorkRecord^.EQUIP_Pure =  7777.77

// здесь  ER_Cranes^.EQUIP_Pure = 0;
 ER_Cranes^ := PlusCalcRecord(WorkRecord^);
// здесь  ER_Cranes^.EQUIP_Pure = 9999.99 !!!;

 Label2.Caption := FloatToStr(ER_Cranes^.EQUIP_Pure);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 new(ER_Cranes);
 new(WorkRecord);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Dispose(ER_Cranes);
 Dispose(WorkRecord);
end;

end.


 
Drowsy ©   (2015-11-07 23:07) [1]

Sorry! Разобрался, вопрос снимается..



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

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

Наверх




Память: 0.47 MB
Время: 0.005 c
2-1447585332
dis12345
2015-11-15 14:02
2017.10.08
Получить имена пользователей компа


2-1446876256
SKIPtr
2015-11-07 09:04
2017.10.08
запись дублированого файла


2-1446919931
Drowsy
2015-11-07 21:12
2017.10.08
Неожиданный результат сложения записей.


2-1446919614
Dmitry
2015-11-07 21:06
2017.10.08
Иконки в TImage из Imagelist, теряется прозрачность


4-1284910325
Ingwar
2010-09-19 19:32
2017.10.08
Проблема прорисовки окна в Windows 7