Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизВызов прцедуры из 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;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.06 c