Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Вызов прцедуры из bpl   Найти похожие ветки 

 
SiDimka ©   (2012-04-06 22:41) [0]

Народ, помогите плиз!!!

Прогуглил все глаза, читаю, при статической загрузке bpl - exe знет все прцедуры bpl если добавлен юнит в uses.
Создаю Форму1 - все прекрасно, загружаю bpl Форму2 - все хорошо, Вызываю процедуру из Формы1:
Форма2.процедура;    А оно мне Форма2=nil.  

Подсажите пожалуйста как правильно вызвать процедуру из bpl.


 
Дмитрий С ©   (2012-04-06 22:43) [1]

Вообще почитать про BPL.


 
SiDimka ©   (2012-04-06 22:47) [2]

СУПЕР!!! Ответ в стиле гугл.

А реальную подсказку дать можно?


 
Игорь Шевченко ©   (2012-04-06 22:49) [3]


> А реальную подсказку дать можно?


можно
http://segfault.kiev.ua/smart-questions-ru.html


 
Сергей М. ©   (2012-04-06 22:56) [4]


> как правильно вызвать процедуру из bpl


точно так же как и не из bpl - правила Паскаля никто не отменял.


 
SiDimka ©   (2012-04-06 23:09) [5]

Так и делаю.

procedure TForm1.Button1Click(Sender: TObject);
begin
 TForm2.procedureН;
end;

Undeclared identifier: "Form2"


 
Сергей М. ©   (2012-04-06 23:12) [6]


> А оно мне Форма2=nil.


не имеет отношения к


> Undeclared identifier: "Form2"


 
SiDimka ©   (2012-04-06 23:17) [7]

А к чему имеет?


 
Anatoly Podgoretsky ©   (2012-04-06 23:17) [8]

> SiDimka  (06.04.2012 22:41:00)  [0]

А может ты правильно вызываешь.


 
Anatoly Podgoretsky ©   (2012-04-06 23:19) [9]

> Сергей М.  (06.04.2012 23:12:06)  [6]

Оно вообще не откомпилируется, так что говорить о Форма2=nil не приходится.


 
Сергей М. ©   (2012-04-06 23:21) [10]


> А к чему имеет?


Тебе видней к чему)
Нам отсюда не видать.


 
SiDimka ©   (2012-04-06 23:21) [11]

>точно так же как и не из bpl - правила Паскаля никто не отменял.

Form2.ShowModal;


 
Сергей М. ©   (2012-04-06 23:22) [12]


> Anatoly Podgoretsky ©   (06.04.12 23:19) [9]


А вот у топикстартера и такие чудеса случаются)


 
Сергей М. ©   (2012-04-06 23:23) [13]


> Form2.ShowModal;


Чудесно.

И каким же святым духом в переменной Form2 оказалась Форма2 ?


 
SiDimka ©   (2012-04-06 23:28) [14]

procedure TForm1.ButtonClick(Sender: TObject);
begin
 Form2.ShowModal;
end;


 
Сергей М. ©   (2012-04-06 23:31) [15]

да едрёнматрён)

Где у тебя код, в котором происходит присвоение чего-то там переменной Form2 до того как ты вызываешь Form2.ShowModal ?


 
SiDimka ©   (2012-04-06 23:33) [16]

В Form1


 
Сергей М. ©   (2012-04-06 23:34) [17]


> В Form1


да ну понятно что не на луне !)

И долго ты еще будешь партизанить, не показывая этот фрагмент кода ?


 
Плохиш ©   (2012-04-06 23:41) [18]


> Сергей М. ©   (06.04.12 23:31) [15]

Ты не умничай, ты долларами подавай.
У сирого и убогого "высшее" образование.

> SiDimka ©   (06.04.12 23:28) [14]

Зачем оно тебе, это программирование? Тебе всë-равно не интересно. Основ не изучаешь, а без них и ответов понять не в состоянии, так и будешь с протянутой копи/пасте стоять поскуливая..


 
sniknik ©   (2012-04-06 23:42) [19]

а образование как всегда высшее... и как все будет уверен, что ему здесь не правильно, и без должного уважения, отвечали...


 
Сергей М. ©   (2012-04-06 23:46) [20]


> Плохиш ©   (06.04.12 23:41) [18]
> ты долларами подавай.


По пятницам рука не поднимается)


 
SiDimka ©   (2012-04-06 23:54) [21]

В основной форме

uses UUsers;

procedure TFMain.UsersClick(Sender: TObject);
begin
  with TFUsers.Create(Application) do
      ShowModal;
end;

procedure TFMain.ButtonClick(Sender: TObject);
begin
  FUsers.ToolBar.Parent := FMain.CoolBarTools;  
end;

По началу был " Access Violation ", из-за  FUsers=nil

Убрал из проекта ***.bpl, перекомпилил, добавил заново.

Теперь Build: [Error] UMain.pas(194): E2003 Undeclared identifier: "FUsers"


 
sniknik ©   (2012-04-07 00:02) [22]

> Undeclared identifier: "FUsers"
ну, нету значит его там..., TFUsers есть, раз не "ругается", а FUsers нету.
считаешь по другому? докажи!


 
sniknik ©   (2012-04-07 00:03) [23]

> По началу был " Access Violation ", из-за  FUsers=nil
а вот тогда, был... но только, не инициализированный.


 
Сергей М. ©   (2012-04-07 00:05) [24]


> По началу был " Access Violation ", из-за  FUsers=nil


И ты бросился убирать, перекомпилять, зановодобавлять, вместо того чтобы вникнуть почему же собственно FUsers=nil ?


 
имя   (2012-04-07 00:07) [25]

Удалено модератором


 
SiDimka ©   (2012-04-07 00:56) [26]

Может и мыль была глупая, ноя подумал, что ошибка возникла при нарушеном порядке создания проекта. Имеется ввиду, что сначала FUsers был создан в exe, а потом добавлен в bpl. Поэтому и <И ты бросился убирать, перекомпилять, зановодобавлять>


 
sniknik ©   (2012-04-07 01:07) [27]

так понимаю, "реальную подсказку" из [3] ты так и не осилил... как и справку/основы по дельфям.
раз так то ветку наверное нужно закрыть, толку с нее не будет.


 
SiDimka ©   (2012-04-07 01:15) [28]

Всем огромное спасибо все ОК подказка оказалась в (TFUsers есть, раз не "ругается", а FUsers нету.)

Не знаю каким образом но отсутствовал

var
 FUsers: TFUsers;

видать случайно, как-то удалил.  Но FUsers=nil остался буду искать в че причина.


 
Германн ©   (2012-04-07 01:31) [29]


> Но FUsers=nil остался буду искать в че причина.
>

with TFUsers.Create(Application) do


 
SiDimka ©   (2012-04-07 01:35) [30]

И всетаки вопрос остался. Почему FUsers загруженя из bpl в FMain ухдит в nil.


 
Германн ©   (2012-04-07 01:51) [31]


> И всетаки вопрос остался. Почему FUsers загруженя из bpl
> в FMain ухдит в nil

В bpl создается (если создается) форма некоторого класса. А вот ссылку на нее вы благополучно выбрасываете.


 
SiDimka ©   (2012-04-07 01:54) [32]

>Германн ©

Огромнейшее спасибо. Помогло.

"День потрачен не зря - если есть резултат!!!"


 
Германн ©   (2012-04-07 01:58) [33]


> День потрачен не зря - если есть резултат

Один день sniknik © + один день Сергей М. © пропали даром. :(


 
SiDimka ©   (2012-04-07 02:05) [34]

>Один день sniknik © + один день Сергей М. © пропали даром. :(

Но и чайники достигая определенного уровня знаний, перестают быть оными.

Еще раз ВСЕМ ОГРОМНОЕ СПАСИБО!!!


 
Германн ©   (2012-04-07 02:18) [35]


> Но и чайники достигая определенного уровня знаний, перестают
> быть оными.

Если они читают учебники (вообще книги/справку/msdn и т.п), то да такое бывает. Если достигать "определенного уровня" только на форумах, то такого не бывает никогда!

Но раз моя "не совсем определенная" подсказка помогла, то не все еще потеряно. :)


 
Anatoly Podgoretsky ©   (2012-04-07 09:37) [36]

> SiDimka  (06.04.2012 23:54:21)  [21]

Решил методом научного тыка, тут уберем, там добавим, может ругаться
прекратит, а то что NIL не важно.


 
Anatoly Podgoretsky ©   (2012-04-07 09:40) [37]

> Германн  (07.04.2012 02:18:35)  [35]

Есть надежда на третью подсказку.


 
Плохиш ©   (2012-04-07 10:26) [38]

Следующий вопрос от этого будет: Печму я присваю а он не писвает?



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

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.05 c
2-1341990007
sas9568635
2012-07-11 11:00
2013.03.22
Получение кода нажатых клавиш формы запущенной как Form.Show


15-1339682138
jacksotnik
2012-06-14 17:55
2013.03.22
Ускорение TcxGrid


15-1351230168
брат Птибурдукова
2012-10-26 09:42
2013.03.22
108%!!!!!!111


2-1338443775
Demo
2012-05-31 09:56
2013.03.22
Настроить Delphi 2007


2-1346605328
ankazh
2012-09-02 21:02
2013.03.22
DBGrid и UNION