Форум: "Начинающим";
Текущий архив: 2017.10.08;
Скачать: [xml.tar.bz2];
ВнизНеожиданный результат сложения записей. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.001 c