Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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 и по выбору иэ списка создать объект выбранного класса.


Наверх

Титульная страница Поиск, карта сайта Написать письмо