Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];

Вниз

BPL   Найти похожие ветки 

 
ORMADA ©   (2004-09-13 14:04) [0]

Доб день!
Вот стал юзать BPL и задался вопросом как программно можно узнать какие bpl использует в своей работе моя bpl.
Обычно делаю так вызываю bpl на машине на которой дельфи не было и в помине и при запуске ф-ии из bpl программа выдаёт что такие то bpl не найдены, вот так по одной их и собираю.
может можно как то программно узнать имена bpl ?


 
Reindeer Moss Eater ©   (2004-09-13 14:12) [1]

1. Project-Options
2. Ctrl+F + Find in files + "LoadPackage"


 
ORMADA ©   (2004-09-13 14:50) [2]

Reindeer Moss Eater :)
вопрос в том как это сделать программно
т.к. у меня могут быть bpl созданные другими разработчиками из команды


 
ORMADA ©   (2004-09-14 08:07) [3]

Вот нашёл пример работы с PackageInfo
но всё равно он выдаёт не все НЕОБХОДИМЫЕ BPL
проверял на своей bpl ей надо 18 bpl для работы а программы находит только 13, почему ?

program PkgInfo;

uses
 Forms,
 Dialogs,
 SysUtils,
 PkgMain in "PkgMain.pas" {PackInfoForm};

{$R *.RES}

var
 OpenDialog: TOpenDialog;
begin
 if (ParamCount > 0) and FileExists(ParamStr(1)) then
   PkgName := ParamStr(1)
 else
 begin
   OpenDialog := TOpenDialog.Create(Application);
   OpenDialog.DefaultExt := "*.bpl";
   OpenDialog.Filter := "Packages (*.bpl)|*.bpl|Delphi 3 Packages " +
     "(*.dpl)|*.dpl";
   if OpenDialog.Execute then
     PkgName := OpenDialog.FileName;
 end;
 if PkgName <> "" then
 begin
   Application.Initialize;
   Application.CreateForm(TPackInfoForm, PackInfoForm);
   Application.Run;
 end;
end.
unit PkgMain;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls;

type
 TPackInfoForm = class(TForm)
   GroupBox1: TGroupBox;
   DsgnPkg: TCheckBox;
   RunPkg: TCheckBox;
   BuildCtl: TRadioGroup;
   GroupBox2: TGroupBox;
   GroupBox3: TGroupBox;
   Button1: TButton;
   Label1: TLabel;
   DescEd: TEdit;
   memContains: TMemo;
   memRequires: TMemo;
   procedure FormCreate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 end;

var
 PackInfoForm: TPackInfoForm;
 PkgName: string; // This is assigned in project file

implementation

{$R *.DFM}

procedure PackageInfoCallback(const Name: string; NameType: TNameType;
 Flags: Byte; Param: Pointer);
var
 AddName: string;
 Memo: TMemo;
begin
 Assert(Param <> nil);
 AddName := Name;
 case NameType of
   ntContainsUnit: Memo := TPackInfoForm(Param).memContains;
   ntRequiresPackage: Memo := TPackInfoForm(Param).memRequires;
 else
   Memo := nil;
 end;
 if (Memo <> nil) then
 begin
   if Memo.Text <> "" then
     AddName := ", " + AddName;
   Memo.Text := Memo.Text + AddName;
 end;
end;

procedure TPackInfoForm.FormCreate(Sender: TObject);
var
 PackMod: HMODULE;
 Flags: Integer;
begin
 // Since we only need to get into the package"s resources,
 // LoadLibraryEx with LOAD_LIBRARY_AS_DATAFILE provides a speed-
 // efficient means for loading the package.
 PackMod := LoadLibraryEx(PChar(PkgName), 0, LOAD_LIBRARY_AS_DATAFILE);
 if PackMod = 0 then
   Exit;
 try
   GetPackageInfo(PackMod, Pointer(Self), Flags, PackageInfoCallback);
 finally
   FreeLibrary(PackMod);
 end;
 Caption := "Package Info: " + ExtractFileName(PkgName);
 DsgnPkg.Checked := Flags and pfDesignOnly <> 0;
 RunPkg.Checked := Flags and pfRunOnly <> 0;
 if Flags and pfNeverBuild <> 0 then
   BuildCtl.ItemIndex := 1;
 DescEd.Text := GetPackageDescription(PChar(PkgName));
end;

procedure TPackInfoForm.Button1Click(Sender: TObject);
begin
 Close;
end;

end.




Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.032 c
14-1094746699
wl
2004-09-09 20:18
2004.09.26
хотелось бы узнать, в какое время (по мск) на этом форуме наиболь


9-1085278109
Максим
2004-05-23 06:08
2004.09.26
Затухание экрана


3-1093847410
Artem123
2004-08-30 10:30
2004.09.26
Работа с TBookmark ?


14-1094741251
Копир
2004-09-09 18:47
2004.09.26
Эй, иногородние, скоро Вас в Москву не пустят.


1-1094820957
kand
2004-09-10 16:55
2004.09.26
как можна проверить, что файл создан сегодня?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский