Разработка классов на языке Object Pascal. Соколов Е.В. - 62 стр.

UptoLike

Составители: 

62
function Whole.IsEqual(n: Number): Boolean;
begin
if (n is Whole) and (self.value=(n as Whole).value)
then result:=true
else result:=false;
end;
function Whole.AsString: String;
begin result:=IntToStr(self.value); end;
procedure Whole.SetValue(val: Integer);
begin self.value:=val; end;
function Whole.GetValue: Integer;
begin result:=self.value; end;
Пример 4.1.2. Реализация методов класса RGBColor.
function RGBColor.IsEqual(n: Number): Boolean;
var i: Integer;
begin
if n is RGBColor // типы текущего объекта и параметра должны
then begin // совпадать; вычисления осуществляются так же,
result:=true; // как и для векторов
for i:=1 to 3 do
if self.comp[i]<>(n as RGBColor).comp[i] then result:=false;
end
else result:=false;
end;
procedure RGBColor.Add(n: Number);
var i: Integer;
begin
if n is RGBColor
then for i:=1 to 3 do
self.comp[i]:=self.comp[i]+(n as RGBColor).comp[i]
else raise Exception.Create('Invalid operation');
self.Clamp; // насыщение результата
end;
procedure RGBColor.Subtract(n: Number);
var i: Integer;
begin
if n is RGBColor
then for i:=1 to 3 do
self.comp[i]:=self.comp[i]-(n as RGBColor).comp[i]
else raise Exception.Create('Invalid operation');
self.Clamp;
end;
function Whole.IsEqual(n: Number): Boolean;
begin
  if (n is Whole) and (self.value=(n as Whole).value)
     then result:=true
     else result:=false;
end;
function Whole.AsString: String;
begin result:=IntToStr(self.value); end;
procedure Whole.SetValue(val: Integer);
begin self.value:=val; end;
function Whole.GetValue: Integer;
begin result:=self.value; end;



Пример4.1.2. Реал из ац ия м етод ов кл ас с а RGBColor.

function RGBColor.IsEqual(n: Number): Boolean;
var i: Integer;
begin
  if n is RGBColor // типы текущего объекта и параметра должны
     then begin      // совпадать; вычисления осуществляются так же,
       result:=true; // как и для векторов
       for i:=1 to 3 do
         if self.comp[i]<>(n as RGBColor).comp[i] then result:=false;
     end
     else result:=false;
end;
procedure RGBColor.Add(n: Number);
var i: Integer;
begin
  if n is RGBColor
     then for i:=1 to 3 do
            self.comp[i]:=self.comp[i]+(n as RGBColor).comp[i]
     else raise Exception.Create('Invalid operation');
  self.Clamp; // насыщение результата
end;
procedure RGBColor.Subtract(n: Number);
var i: Integer;
begin
  if n is RGBColor
     then for i:=1 to 3 do
            self.comp[i]:=self.comp[i]-(n as RGBColor).comp[i]
     else raise Exception.Create('Invalid operation');
  self.Clamp;
end;




                                     62