home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 December / Chip_2001-12_cd1.bin / zkuste / delphi / kompon / d23456 / CAJSCRTP.ZIP / demo_kylix / ctest.ifs < prev    next >
Text File  |  2001-03-20  |  1KB  |  70 lines

  1. Program IFSTest;
  2. type
  3.   TAnimal = class
  4.   private
  5.     sentence: string;
  6.   protected
  7.     procedure SetSentence(s: string);
  8.   public
  9.     procedure say;
  10.     procedure test2; virtual;
  11.     constructor Create;
  12.     destructor Destroy; override;   
  13.   end;
  14.   
  15. procedure TAnimal.say;
  16. begin
  17.   Writeln('Sentence:'+Sentence);
  18. end;
  19.  
  20. procedure TAnimal.test2; 
  21. begin
  22.   Writeln('TAnimal.Test2');
  23. end;
  24.  
  25. constructor TAnimal.Create;
  26. begin
  27.   inherited Create;
  28.   Sentence := 'no sentence';
  29. end;
  30. destructor TAnimal.Destroy;
  31. begin
  32.   writeln('TAnimal.Destroy called');
  33.   inherited Destroy; 
  34. end;
  35.  
  36. procedure TAnimal.SetSentence(s: string);
  37. begin
  38.   Sentence := s;
  39. end;
  40.  
  41. type
  42.   TCat = class(TAnimal)
  43.     procedure Test2; override;
  44.     procedure Setit;
  45.   end;
  46.   TMouse = class(TAnimal)
  47.   end;
  48. procedure TCat.Test2;
  49. begin 
  50.    inherited Test2;
  51.   writeln('TCat.test2');
  52. end;
  53. procedure TCat.SetIt;
  54. begin
  55.   writeln('TCat.SetIt');
  56.   SetSentence('mijauw');
  57. end;
  58.  
  59. var
  60.   u: TAnimal;
  61. Begin
  62.   u := TCat.Create;
  63.   (U as TCat).SetIt;
  64.   TCat(u).SetIt;
  65.   u.say;
  66.   if u is TMouse then writeln('ok');
  67.   writeln(u.GetAncestors);
  68.   u.Free;
  69. End.
  70.