Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TMyInteger = record
- private
- fValue: Integer;
- fIsChanged: Boolean;
- public
- // Присвоение Integer
- class operator Implicit(const A: Integer): TMyInteger;
- // Чтение значения. Не помню, можно ли так же через неявную конвертацию или нет
- property Value: Integer read fValue;
- property IsChanged: Boolean read fIsChanged;
- // Тут еще надо переопределить конструктор New, который будет заполнять поля нулями
- // А можно сделать fIsChanged: string; тогда поле будет пустым при первом обращении)
- end;
- ....
- class operator TMyInteger.Implicit(const A: Integer): TMyInteger;
- begin
- Result.fValue := A;
- Result.fIsChanged := True;
- end;
- I := TMyInteger.New;
- I := 45;
- Assert(I.IsChanged, 'I is changed');
- myInt: Integer;
- myVar: Integer;
- if (myInt==myVar) then
- он не изменился
- else
- он изменился сохраняем новое значение
- myVar := myInt;
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement