| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Как из DLL можно управлять ProgressBar'ом? |
| Автор: Monty 17.9.2003, 03:31 |
| Такая во проблемма ..... DLL еще нет, но собираюсь написать ........ В самой программе есть ProgressBar и надо сделать так чтоб DLL управляла этим ProgressBar'ом .... что мне передать ей и как им управлять из неё (из DLL) .......... при этом именно DLL должна передавать значение ProgressBar'у т.е. управлять им, а не программа. может это будет выглядеть так? mov eax, offset ProgressBar.Position mov PosAddr, eax а потом это передать DLL'ке ... чтоб она могла изменять значение ЗЫ не могу сегодня собраться с мыслями |
| Автор: <Spawn> 17.9.2003, 05:45 | ||
Что бы изменять значение ProgressBar-а из DLL можно, например, использовать сообщения. Используй какое нить значение больше WM_USER. Ну например:
Если же хочется передеть ДЛЛ - ке ссылку на экземпляр твоего ProgressBar-а, то такое не выйдет, разве что использовать Борландовские пэкэйджи. |
| Автор: Baa 17.9.2003, 09:13 |
| А почему нельзя просто хэндл окна(прогрессбара) передать? Соотв. посылать окошку PBM_SETPOS или PBM_STEPIT Ну или, если длл на дельфи, то почему нельзя передать (var ProgressBar: TProgressBar)? А в длл делать с ним чего хочешь... |
| Автор: Baa 17.9.2003, 09:20 |
| <Spawn>, зачем изобретать велосипед? Сообщения для установки позиции в прогрессбаре существуют |
| Автор: <Spawn> 17.9.2003, 12:14 |
| Baa Ну я не спец еще |
| Автор: Monty 17.9.2003, 16:14 |
| Спасибо <Spawn> и Baa ЗЫ Я это буду применять в двух вариантах: 1) EXE (Asm) - DLL (Delphi) 2) EXE (Delphi) - DLL (Любой язык) Так что идеально подходят сообщения ;) |
| Автор: Monty 22.9.2003, 01:55 | ||
Возник один нюанс
таких констант в Дельфи просто нет, т.е. в Messages нет таких констант |
| Автор: <Spawn> 22.9.2003, 07:47 | ||
| А кто сказал что они там будут? 1) Ставишь на форму ProgressBar; 2)Видишь что он юзает модуль ComCtrls; 3)Пытаешься найти в этом модуле нужные константы. 4)Видишь, что их там нет. Тогда смотришь какие модули используют данный модуль, ища что нить близкое по смыслу. Ага вот оно - CommCtrl. 5) Опять поиском ищешь константы. Вот и они:
|
| Автор: Monty 22.9.2003, 19:09 | ||||
Спасибо ..... не знал |