12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- { Method Calls }
- program methcall;
- uses SysUtils;
- type TToggle = class
- private
- value : boolean;
- public
- property Bool : boolean read value write value;
- procedure Activate;
- end;
- type TNthToggle = class
- constructor Create;
- private
- value : boolean;
- counter : integer;
- cmax : integer;
- public
- property CountMax : integer read cmax write cmax;
- property Bool : boolean read value write value;
- procedure Activate;
- end;
- constructor TNthToggle.Create;
- begin
- counter := 0;
- end;
- procedure TToggle.Activate;
- begin
- if value = True Then
- value := False
- else
- value := True;
- end;
- procedure TNthToggle.Activate;
- begin
- counter := counter + 1;
- if counter >= cmax Then begin
- if value = True Then
- value := False
- Else
- value := True;
- counter := 0;
- end;
- end;
- var
- NUM, i : longint;
- val : boolean;
- oToggle : TToggle;
- onToggle : TNthToggle;
- begin
- if ParamCount = 0 then
- NUM := 1
- else
- NUM := StrToInt(ParamStr(1));
- if NUM < 1 then NUM := 1;
- val := True;
- oToggle := TToggle.Create;
- oToggle.Bool := val;
- For i := 1 to NUM do
- begin
- oToggle.Activate;
- val := oToggle.Bool;
- end;
- If val = True Then
- WriteLn('true')
- else
- WriteLn('false');
- val := True;
- onToggle := TNthToggle.Create;
- onToggle.Bool := val;
- onToggle.CountMax := 3;
- For i := 1 to NUM do
- begin
- onToggle.Activate;
- val := onToggle.Bool;
- end;
- If val = True Then
- WriteLn('true')
- else
- WriteLn('false');
- end.
|