Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
Frame.pas
Package: delphi.rar [view]
Upload User: fh681027
Upload Date: 2022-07-23
Package Size: 1959k
Code Size: 4k
Category:
Delphi VCL
Development Platform:
Delphi
- unit Frame;
- interface
- uses
- Windows, Classes, Graphics, Forms, Messages,
- Controls, Child, Child2, Menus, SysUtils, Dialogs,
- ExtCtrls, StdActns, ActnList;
- type
- TMainForm = class(TForm)
- MainMenu1: TMainMenu;
- Window1: TMenuItem;
- New1: TMenuItem;
- File1: TMenuItem;
- N1: TMenuItem;
- Exit1: TMenuItem;
- Cascade1: TMenuItem;
- Tile1: TMenuItem;
- ArrangeIcons1: TMenuItem;
- New2: TMenuItem;
- Tile2: TMenuItem;
- CloseAll1: TMenuItem;
- Count1: TMenuItem;
- Image1: TImage;
- ActionList1: TActionList;
- WindowArrange1: TWindowArrange;
- WindowCascade1: TWindowCascade;
- WindowClose1: TWindowClose;
- WindowMinimizeAll1: TWindowMinimizeAll;
- WindowTileHorizontal1: TWindowTileHorizontal;
- WindowTileVertical1: TWindowTileVertical;
- Close1: TMenuItem;
- MinimizeAll1: TMenuItem;
- N2: TMenuItem;
- procedure New1Click(Sender: TObject);
- procedure Exit1Click(Sender: TObject);
- procedure New2Click(Sender: TObject);
- procedure CloseAll1Click(Sender: TObject);
- procedure Count1Click(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- procedure FormDestroy(Sender: TObject);
- private
- { Private declarations }
- Count: Integer;
- OutCanvas: TCanvas;
- OldWinProc, NewWinProc: Pointer;
- procedure NewWinProcedure (var Msg: TMessage);
- public
- { Public declarations }
- end;
- var
- MainForm: TMainForm;
- implementation
- {$R *.DFM}
- procedure TMainForm.New1Click(Sender: TObject);
- var
- ChildForm: TCircleChildForm;
- begin
- Inc (Count);
- ChildForm := TCircleChildForm.Create (Self);
- ChildForm.Caption := ChildForm.Caption + ' ' +
- IntToStr (Count);
- ChildForm.Show;
- end;
- procedure TMainForm.Exit1Click(Sender: TObject);
- begin
- Close;
- end;
- procedure TMainForm.New2Click(Sender: TObject);
- var
- ChildForm: TBounceChildForm;
- begin
- Inc (Count);
- ChildForm := TBounceChildForm.Create (Self);
- ChildForm.Caption := ChildForm.Caption + ' ' +
- IntToStr (Count);
- ChildForm.Show;
- end;
- procedure TMainForm.CloseAll1Click(Sender: TObject);
- var
- I: Integer;
- begin
- for I := 0 to MDIChildCount - 1 do
- MDIChildren [I].Close;
- end;
- procedure TMainForm.Count1Click(Sender: TObject);
- var
- NBounce, NCircle, I: Integer;
- begin
- NBounce := 0;
- NCircle := 0;
- for I := 0 to MDIChildCount - 1 do
- if MDIChildren [I] is TBounceChildForm then
- Inc (NBounce)
- else
- Inc (NCircle);
- MessageDlg (
- Format ('There are %d child forms.'#13 +
- '%d are Circle child windows and ' +
- '%d are Bouncing child windows',
- [MDIChildCount, NCircle, NBounce]),
- mtINformation, [mbOk], 0);
- end;
- procedure TMainForm.FormCreate(Sender: TObject);
- begin
- NewWinProc := MakeObjectInstance (NewWinProcedure);
- OldWinProc := Pointer (SetWindowLong (
- ClientHandle, gwl_WndProc, Cardinal (NewWinProc)));
- OutCanvas := TCanvas.Create;
- end;
- procedure TMainForm.NewWinProcedure (var Msg: TMessage);
- var
- BmpWidth, BmpHeight: Integer;
- I, J: Integer;
- begin
- // default processing first
- Msg.Result := CallWindowProc (OldWinProc,
- ClientHandle, Msg.Msg, Msg.wParam, Msg.lParam);
- // handle background repaint
- if Msg.Msg = wm_EraseBkgnd then
- begin
- BmpWidth := MainForm.Image1.Width;
- BmpHeight := MainForm.Image1.Height;
- if (BmpWidth <> 0) and (BmpHeight <> 0) then
- begin
- OutCanvas.Handle := Msg.wParam;
- for I := 0 to MainForm.ClientWidth div BmpWidth do
- for J := 0 to MainForm.ClientHeight div BmpHeight do
- OutCanvas.Draw (I * BmpWidth,
- J * BmpHeight, MainForm.Image1.Picture.Graphic);
- end;
- end;
- end;
- procedure TMainForm.FormDestroy(Sender: TObject);
- begin
- OutCanvas.Free;
- end;
- end.