Marco Web Center |
Home: Code Repository: Mastering Delphi 5Project COUNTOBJ
Project StructureCOUNTOBJ.DPRprogram CountObj; uses Forms, CountF in 'CountF.pas' {Form1}; {$R *.RES} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. COUNTF.PASunit CountF; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Menus; type TForm1 = class(TForm) Timer1: TTimer; procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Timer1Timer(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } public { Public declarations } end; TCountButton = class (TButton) constructor Create (AOwner: TComponent); override; destructor Destroy; override; class function GetTotal: Integer; end; var Form1: TForm1; implementation {$R *.DFM} var TotBtns: Integer = 0; constructor TCountButton.Create (AOwner: TComponent); begin inherited Create (AOwner); Inc (TotBtns); end; destructor TCountButton.Destroy; begin Dec (TotBtns); inherited Destroy; end; class function TCountButton.GetTotal: Integer; begin Result := TotBtns; end; procedure TForm1.FormMouseDown( Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin with TCountButton.Create (Self) do begin Parent := Self; Left := X; Top := Y; Width := Width + 60; Caption := Format ('%d Button at %d, %d', [GetTotal, X, Y]); end; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Caption := Format ('CountObj: %d custom buttons', [TCountButton.GetTotal]); end; procedure TForm1.FormDestroy(Sender: TObject); begin MessageBox (0, PChar (Format ( 'There are %d CountButton objects', [TCountButton.GetTotal])), 'Destroy', mb_OK); end; initialization finalization MessageBox (0, PChar (Format ( 'There are %d CountButton objects', [TCountButton.GetTotal])), 'Finalization', mb_OK); end. COUNTF.DFMobject Form1: TForm1 Left = 204 Top = 106 Width = 394 Height = 296 Caption = 'CountObj' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = True OnDestroy = FormDestroy OnMouseDown = FormMouseDown PixelsPerInch = 96 TextHeight = 13 object Timer1: TTimer OnTimer = Timer1Timer Left = 8 Top = 8 end end
|
||
© Copyright Marco Cantù, 1995-2020, All rights reserved |