Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2011, 11:23   #1
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
Восклицание Dll и основная форма (взаимосвязь)

Всем привет, пишу программу которая работает с ФТП (на idftp)
Столкнулся вот с чем:
Имеется основное приложение и DLL в которой хранятся почти все процедуры...
Вот вопрос
в Dll лежит процедура которая скачивает\закачивает на фтп файл
как сделать так чтобы привязать Progressbar находящийся на форме к процедуре запущенной из DLL?
в случае на форме есть у idftp Event "OnFTPWork" к которому можно привязаться... Понятно что при создании можно сделать следующее:
Idftp.OnFTPWork:=xxx;
но опять как в эту процедуру указать на progressbar с основной формы?
Заранее спасибо!
fbus вне форума Ответить с цитированием
Старый 14.04.2011, 12:46   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> как сделать так чтобы привязать Progressbar находящийся на форме к процедуре запущенной из DLL?

а) опрашивать длл по таймеру
б) передать в длл каллбэк
с) передать хендл прогрессбара в длл, пусть сама рисует
д) поделить размер файла на скорость скачки/закачки и рисовать самому приблизительно
е) хранить % скачанного/закачанного в разделяемой памяти

вроде всё.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 14.04.2011, 12:58   #3
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Ну к чему этот геморрой с dll, если на то есть bpl, при использовании которой работа с компонентами, находящимися в ней, АБСОЛЮТНО НИЧЕМ не отличается от той же работы с теми же компонентами в хост-приложении ?
mss вне форума Ответить с цитированием
Старый 14.04.2011, 15:08   #4
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
По умолчанию

а просто обратиться к компоненту формы никак?
натипа
uses Form1 in Form1.pas;
не прокатит?
fbus вне форума Ответить с цитированием
Старый 14.04.2011, 15:33   #5
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
а просто обратиться к компоненту формы никак?
натипа .. не прокатит?
Вот уж глупее совета не придумать)
mss вне форума Ответить с цитированием
Старый 14.04.2011, 15:35   #6
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
По умолчанию

это не совет а вопрос
fbus вне форума Ответить с цитированием
Старый 14.04.2011, 19:13   #7
eduard93
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 300
По умолчанию

Прокатило бы, если бы эта форма была в bpl.
eduard93 вне форума Ответить с цитированием
Старый 15.04.2011, 22:24   #8
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
По умолчанию

вобщем решил проблему через передачу в процедуру компонента
натипа
Код:
procedure ABC (pb:TProgressbar);
fbus вне форума Ответить с цитированием
Старый 15.04.2011, 23:24   #9
eduard93
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 300
По умолчанию

Если рантайм пакеты не включены или длл и прога написаны в разных версиях делфи, то лучше так не делать.
eduard93 вне форума Ответить с цитированием
Старый 16.04.2011, 03:27   #10
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Цитата:
вобщем решил проблему через передачу в процедуру компонента
Если не хотите в будущем играться дебагером - то забудьте про эту идею...
А вобще не стоит такой функционал выносить в dll - реализуйте все в главном приложении...сделайте обертки на классах и будет намного меньше проблем...и код красивее станет...
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
взаимосвязь 2х Документов Diamand Microsoft Office Excel 0 08.04.2011 15:01
неперемещаемая форма из dll oldDed Общие вопросы .NET 0 07.11.2010 13:25
Взаимосвязь типов Dalokoshka Помощь студентам 1 25.10.2010 00:14
вторая форма запускалась первой а уже с нее запускать первую форму, где основная программа Chudo4258 Помощь студентам 5 09.04.2010 23:13
из .exe TBitMap передать в DLL(форма) lexaltd Мультимедиа в Delphi 13 14.07.2009 17:47