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

Вниз

Ссылки-невозвращенцы из BPL   Найти похожие ветки 

 
mfender   (2010-09-18 07:43) [0]

Странная какая-то беда творится.

{Есть объект, упакованный в паккагу edforms.bpl}
unit formEditAttributesSan;

type
 TfrmEditAttributesSan = class(TForm)
   sDBEdit1: TsDBEdit;
 end;

implementation

initialization
 RegisterClass (TfrmEditAttributesSan);

{Есть код, подгружающий это дело, и призванный получить эту форму, что-то сделать и всё удалить.
Чтобы не убить остатки манной каши в голове, я просто таки скопипастил у Марко Кэнту код после нескольких часов недоумения, подрисовав туда свои значения}

procedure TAttrsSan.InsertEdit(Caption: string);
var
 frmEditAttributesSan: TForm;
 FormClass: TFormClass;
 HandlePack: HModule;
begin
 HandlePack := LoadPackage("edforms.bpl");
 if HandlePack > 0 then
 begin
{Вот до сюдова всё работает. Т.е. HandlePack есть, всё подгрузилось}

   FormClass := TFormClass(GetClass("TfrmEditAttributesSan"));

{А вот тут неясные грабли: FormClass всегда равен nil, и разумеется, дальнейшие движения проходят мимо.}

   if Assigned(FormClass) then
   begin
     frmEditAttributesSan := FormClass.Create(Application);
     try
       if frmEditAttributesSan.ShowModal = mrOk then
         showmessage("Оно тут было");
     finally
       frmEditAttributesSan.Free;
     end;
   end;
   UnloadPackage(HandlePack);
 end
 else
   Showmessage("Package not found");
end;


Срисовал из его (Марко Кэнту) примеров. И что характерно, его-то примеры работают! Моё - не работает, несмотря на то, что не нашёл я ни одного отличия в коде, проведя долгий побуквенный анализ написанного у него и у меня... Застрэлиться что-ли?


 
mfender   (2010-09-18 07:51) [1]

Да, добавлю: FindClass() как водится сообщает об ошибке ---------------------------
Project <.....> raised exception class EClassNotFound with message "Class TfrmEditAttributesSan not found".


 
mfender   (2010-09-18 09:06) [2]

То есть, если я правильно понял, для  того, чтобы это работало, нужно таскать всю пачку BPL вместе с программой, а компилировать exe вместе со всеми этими RTL?


 
Ega23 ©   (2010-09-18 10:07) [3]


> То есть, если я правильно понял, для  того, чтобы это работало,
>  нужно таскать всю пачку BPL вместе с программой, а компилировать
> exe вместе со всеми этими RTL?


Скажи, а нафига тебе отдельная bpl? Что мешает просто в uses подключить и использовать?


 
Игорь Шевченко ©   (2010-09-18 16:39) [4]


> {Вот до сюдова всё работает. Т.е. HandlePack есть, всё подгрузилось}
>
>    FormClass := TFormClass(GetClass("TfrmEditAttributesSan"));
>
>
> {А вот тут неясные грабли: FormClass всегда равен nil, и
> разумеется, дальнейшие движения проходят мимо.}


потому что секция initialization при динамической загрузке пакета не выполнилась.



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

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

Наверх





Память: 0.45 MB
Время: 0.004 c
3-1248842568
Дренте
2009-07-29 08:42
2010.12.12
SQL. Не могу решить запрос


2-1284885575
Telebot
2010-09-19 12:39
2010.12.12
TWebBrowser грузит сильно ЦП (более 50%) и ест много памяти


6-1230923741
Deltas
2009-01-02 22:15
2010.12.12
Внутренний IP


15-1282803046
xayam
2010-08-26 10:10
2010.12.12
Модераторам/администраторам


15-1283271243
Programmist
2010-08-31 20:14
2010.12.12
С началом учебного года





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский