Marco Web Center |
Home: Code Repository: Mastering Delphi 5Project ANIMALS3
Project StructureANIMALS3.DPRprogram Animals3; uses Forms, AnimF in 'AnimF.pas' {FormAnimals}, Anim in 'ANIM.PAS'; {$R *.RES} begin Application.CreateForm(TFormAnimals, FormAnimals); Application.Run; end. ANIMF.PASunit AnimF; interface uses SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Anim; type TFormAnimals = class(TForm) LabelVoice: TLabel; BtnVoice: TButton; RbtnAnimal: TRadioButton; RbtnDog: TRadioButton; RbtnCat: TRadioButton; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure BtnVoiceClick(Sender: TObject); procedure RbtnAnimalClick(Sender: TObject); procedure RbtnDogClick(Sender: TObject); procedure RbtnCatClick(Sender: TObject); private MyAnimal: TAnimal; public { Public declarations } end; var FormAnimals: TFormAnimals; implementation {$R *.DFM} procedure TFormAnimals.FormCreate(Sender: TObject); begin MyAnimal := TDog.Create; end; procedure TFormAnimals.FormDestroy(Sender: TObject); begin MyAnimal.Free; end; procedure TFormAnimals.BtnVoiceClick(Sender: TObject); begin LabelVoice.Caption := MyAnimal.Voice; end; procedure TFormAnimals.RbtnAnimalClick(Sender: TObject); begin MyAnimal.Free; MyAnimal := TAnimal.Create; end; procedure TFormAnimals.RbtnDogClick(Sender: TObject); begin MyAnimal.Free; MyAnimal := TDog.Create; end; procedure TFormAnimals.RbtnCatClick(Sender: TObject); begin MyAnimal.Free; MyAnimal := TCat.Create; end; end. ANIM.PASunit Anim; interface type TAnimal = class public constructor Create; function GetKind: string; function Voice: string; virtual; abstract; private Kind: string; end; TDog = class (TAnimal) public constructor Create; function Voice: string; override; function Eat: string; virtual; end; TCat = class (TAnimal) public constructor Create; function Voice: string; override; function Eat: string; virtual; end; implementation uses MMSystem; constructor TAnimal.Create; begin Kind := 'An animal'; end; function TAnimal.GetKind: string; begin GetKind := Kind; end; constructor TDog.Create; begin Kind := 'A dog'; end; function TDog.Voice: string; begin Voice := 'Arf Arf'; PlaySound ('dog.wav', 0, snd_Async); end; function TDog.Eat: string; begin Eat := 'A bone, please!'; end; constructor TCat.Create; begin Kind := 'A cat'; end; function TCat.Voice: string; begin Voice := 'Mieow'; PlaySound ('cat.wav', 0, snd_Async); end; function TCat.Eat: string; begin Eat := 'A mouse, please!'; end; end. ANIMF.DFMobject FormAnimals: TFormAnimals Left = 208 Top = 106 Width = 278 Height = 233 ActiveControl = BtnVoice Caption = 'Animals' Color = clBtnFace Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = True OnCreate = FormCreate OnDestroy = FormDestroy PixelsPerInch = 96 TextHeight = 13 object LabelVoice: TLabel Left = 39 Top = 168 Width = 201 Height = 17 Alignment = taCenter AutoSize = False Caption = 'Voice' Font.Charset = ANSI_CHARSET Font.Color = clBlack Font.Height = -16 Font.Name = 'Arial' Font.Style = [fsBold] ParentFont = False end object BtnVoice: TButton Left = 152 Top = 56 Width = 89 Height = 33 Caption = '&Voice' TabOrder = 0 OnClick = BtnVoiceClick end object RbtnAnimal: TRadioButton Left = 24 Top = 40 Width = 113 Height = 41 Caption = '&Animal' TabOrder = 1 OnClick = RbtnAnimalClick end object RbtnDog: TRadioButton Left = 24 Top = 72 Width = 113 Height = 41 Caption = '&Dog' Checked = True TabOrder = 2 TabStop = True OnClick = RbtnDogClick end object RbtnCat: TRadioButton Left = 24 Top = 104 Width = 113 Height = 41 Caption = '&Cat' TabOrder = 3 OnClick = RbtnCatClick end end
|
||
© Copyright Marco Cantù, 1995-2020, All rights reserved |