Marco Web Center |
Home: Code Repository: Mastering Delphi 5Project PACKINFO
Project StructurePACKINFO.DPRprogram PackInfo; uses Forms, PackForm in 'PackForm.pas' {Form1}; {$R *.RES} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. PACKFORM.PASunit PackForm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Mask, DBCtrls, FileCtrl; type TForm1 = class(TForm) TreeView1: TTreeView; DBEdit1: TDBEdit; Chart1: TChart; FilterComboBox1: TFilterComboBox; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} var ContNode, ReqNode: TTreeNode; procedure ShowInfoProc (const Name: string; NameType: TNameType; Flags: Byte; Param: Pointer); var FlagStr: string; begin FlagStr := ' '; if Flags and ufMainUnit <> 0 then FlagStr := FlagStr + 'Main Unit '; if Flags and ufPackageUnit <> 0 then FlagStr := FlagStr + 'Package Unit '; if Flags and ufWeakUnit <> 0 then FlagStr := FlagStr + 'Weak Unit '; if FlagStr <> ' ' then FlagStr := ' (' + FlagStr + ')'; with Form1.TreeView1.Items do case NameType of ntContainsUnit: AddChild (ContNode, Name + FlagStr); ntRequiresPackage: AddChild (ReqNode, Name); end; end; function ForEachModule (HInstance: Longint; Data: Pointer): Boolean; var Flags: Integer; ModuleName, ModuleDesc: string; ModuleNode: TTreeNode; begin with Form1.TreeView1.Items do begin SetLength (ModuleName, 200); GetModuleFileName (HInstance, PChar (ModuleName), Length (ModuleName)); ModuleName := PChar (ModuleName); // fixup ModuleNode := Add (nil, ModuleName); // get description and add fixed nodes ModuleDesc := GetPackageDescription (PChar (ModuleName)); ContNode := AddChild (ModuleNode, 'Contains'); ReqNode := AddChild (ModuleNode, 'Requires'); // add information if the module is a package GetPackageInfo (HInstance, nil, Flags, ShowInfoProc); if ModuleDesc <> '' then begin AddChild (ModuleNode, 'Description: ' + ModuleDesc); if Flags and pfDesignOnly = pfDesignOnly then AddChild (ModuleNode, 'Design Only'); if Flags and pfRunOnly = pfRunOnly then AddChild (ModuleNode, 'Run Only'); end; end; Result := True; end; procedure TForm1.FormCreate(Sender: TObject); begin EnumModules(ForEachModule, nil); end; end. PACKFORM.DFMobject Form1: TForm1 Left = 96 Top = 107 Width = 521 Height = 457 Caption = 'Package Information' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = True OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object TreeView1: TTreeView Left = 0 Top = 0 Width = 513 Height = 430 Align = alClient Indent = 19 TabOrder = 0 end object DBEdit1: TDBEdit Left = 368 Top = 16 Width = 121 Height = 21 TabOrder = 1 Visible = False end object Chart1: TChart Left = 400 Top = 0 Width = 89 Height = 58 BackWall.Brush.Color = clWhite BackWall.Brush.Style = bsClear Title.Text.Strings = ( 'TChart') TabOrder = 2 Visible = False end object FilterComboBox1: TFilterComboBox Left = 408 Top = 16 Width = 57 Height = 21 TabOrder = 3 Visible = False end end
|
||
© Copyright Marco Cantù, 1995-2020, All rights reserved |