![]() |
New book: Delphi 2007 Handbook My blog in online Delphi tech support service: support.marcocantu.com |
Menu for Development
|
|
| |||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
| Chapter 12 - Project DynaPackForm |
Project Structure |
| DynaPackForm.dpr |
program DynaPackForm; uses Forms, DynaPackColF in 'DynaPackColF.pas' {Form1}; {$R *.RES} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. |
| DynaPackColF.pas |
unit DynaPackColF; interface uses SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, TypInfo; type TForm1 = class(TForm) BtnChange: TButton; procedure BtnChangeClick(Sender: TObject); private end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.BtnChangeClick(Sender: TObject); var FormScroll: TForm; FormClass: TFormClass; HandlePack: HModule; begin // try to load the package HandlePack := LoadPackage ('PackWithForm.bpl'); if HandlePack > 0 then begin FormClass := TFormClass(GetClass ('TFormScroll')); if Assigned (FormClass) then begin FormScroll := FormClass.Create (Application); try // initialize the data SetPropValue (FormScroll, 'SelectedColor', Color); // show the form if FormScroll.ShowModal = mrOK then Color := GetPropValue (FormScroll, 'SelectedColor'); finally FormScroll.Free; end; end else ShowMessage ('Form class not found'); UnloadPackage (HandlePack); end else ShowMessage ('Package not found'); end; end. |
| DynaPackColF.dfm |
object Form1: TForm1 Left = 222 Top = 159 Width = 191 Height = 186 Caption = 'DynaPackForm' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clBlack Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = True PixelsPerInch = 96 TextHeight = 13 object BtnChange: TButton Left = 40 Top = 58 Width = 105 Height = 33 Caption = 'Change Color' TabOrder = 0 OnClick = BtnChangeClick end end |