![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Delphi BPL [D3, D4, D5, D6]
Noname111 © (2002-05-16 19:01:00)Delphi BPL
Есть BPL(DPL) как можно считать информацию о том,
что в ней есть(классы,ресурсы и т.д.)
NoName111 (2002-05-19 12:08:00) [1]Большоее спасибо за помощь
Игорь Шевченко (2002-05-18 10:41:00) [2]День добрый,
Тот, кто дает такие курсовые задания, явно не прав. Одного BPL недостаточно, чтобы определить ( а тем более, создать) стандартными путями экземпляры классов.
На всякий случай программа, которая унает, какие unitы есть в пакете:
{
Определение списка unit"ов в пакете.
Игорь Шевченко, 2002
}
unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
od: TOpenDialog;
Panel1: TPanel;
Button1: TButton;
Memo1: TListBox;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses
IniFiles;
{$R *.DFM}
procedure MyPackageSniffProc (const Name: string; NameType: TNameType;
Flags: Byte; Param: Pointer);
begin
case NameType of
ntContainsUnit:
TListBox(Param).Items.Add(Format("contains %s", [Name]));
ntRequiresPackage:
TListBox(Param).Items.Add(Format("requires %s", [Name]));
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
hd : HMODULE;
Flags : Integer;
begin
Memo1.Items.Clear();
if od.Execute then begin
with TIniFile.Create(ChangeFileExt(Application.ExeName, ".INI")) do
try
WriteString("Main", "InitialDir", ExtractFilePath(od.FileName));
finally
Free();
end;
hd := LoadPackage(od.FileName);
GetPackageInfo(hd, Memo1, Flags, MyPackageSniffProc);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
with TIniFile.Create(ChangeFileExt(Application.ExeName, ".INI")) do
try
od.InitialDir := ReadString("Main", "InitialDir", "");
finally
Free();
end;
end;
end.
С уважением,
NoName111 (2002-05-18 07:51:00) [3]refresh
NoName111 (2002-05-17 20:40:00) [4]NoName111~bender_b_r
bender_b_r (2002-05-17 20:36:00) [5]Нет Есть только BPL.
Хотя если он есть как это сделать?
Подскажите хоть что-нибудь в этом направлении, а то курсовая горит синим пламенем.
Игорь Шевченко (2002-05-17 10:21:00) [6]День добрый,
А файл .dcp есть от этого bpl ?
NoName111 (2002-05-16 19:08:00) [7]Проблема такая : необходимо считать BPL , создать список всех классов описанных в этой BPL и по выбору иэ списка создать объект выбранного класса.