unit tcOldObject5;
interface
uses
TestFrameWork
;
type
TtcOldObject5 = class(TTestCase)
published
procedure DoIt;
end;//TtcOldObject5
Tl3_PointUnion = packed record
Case Byte of
0: (X: Integer; Y: Integer);
end;//Tl3_PointUnion
TOldObject1 = object
private
P: Tl3_PointUnion;
public
property X: Integer
read P.X
write P.X;
end;//TOldObject1
function IntFunc(aValue: Integer): Integer;
function ObjFunc(const anObj: TOldObject1): Integer;
implementation
function IntFunc(aValue: Integer): Integer;
begin
Result := aValue;
end;//IntFunc
function ObjFunc(const anObj: TOldObject1): Integer;
begin
Result := IntFunc(anObj.X);
end;//IntFunc
procedure TtcOldObject5.DoIt;
const
cValue = 1024;
var
l_O1 : TOldObject1;
begin
l_O1.X := cValue;
Self.CheckTrue(l_O1.X = cValue);
Self.CheckTrue(IntFunc(l_O1.X) = cValue);
Self.CheckFalse(ObjFunc(l_O1) = cValue); // Ooops !
end;//TtcOldObject5.DoIt
initialization
TestFrameWork.RegisterTest(TtcOldObject5.Suite);
end.
Блог человека, который 18-ть лет программирует на Delphi. И 25 лет программирует вообще. VCL, UML, MDA, тесты. Это не "учебник", это - "заметки на полях".
среда, 21 октября 2020 г.
#872. Another compilation bug in Sydney under 64 bit
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий