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

Вниз

Как передать popupmenu из dll в программу   Найти похожие ветки 

 
bloodman ©   (2004-08-05 16:49) [0]

Есть dll в ней динамически(впрочем это не важно) создается popupmenu.  И мне его нужно передать в программу и присвоить его контролу делал так:
  dll:
type
 PPopupMenu : ^Tpopupmenu;

Function init: PPopupMenu;
begin
Result := @Mypopup;
end;

в программе писал так:

@ListBox1.popupmenu:=Init;

Но так не работает. Каким способом можно передать??


 
GuAV ©   (2004-08-05 19:26) [1]

Почему ты так эти @ любишь? :-)
Так попробуй:

Function init: TPopupMenu;
begin
Result := Mypopup;
end;

ListBox1.popupmenu:=Init;


 
Гаврила ©   (2004-08-05 19:47) [2]

Так как сказал GuAV ©   (05.08.04 19:26) [1]
можно только при условии BwRTP


 
bloodman ©   (2004-08-05 21:30) [3]

GuAV ©   (05.08.04 19:26) [1]

ДА только C  начал изучать а там одни указатели везде :)


 
bloodman ©   (2004-08-05 21:32) [4]

Access Violation


 
bloodman ©   (2004-08-05 21:33) [5]

BwRTP Это что??


 
Гаврила ©   (2004-08-05 21:40) [6]


> BwRTP Это что??


Build with runtime packages


 
Гаврила ©   (2004-08-05 21:43) [7]


> ДА только C  начал изучать а там одни указатели везде :)


Function init: PPopupMenu;

результат этой функции  -указатель на указатель
а вот Mypopup - это просто указатель

указатель на указатель - это крайне редко необходимо, в 99 процентах случаев без этого можно обойтись, и в данном случае тоже


 
bloodman ©   (2004-08-05 22:56) [8]

Как обойтись? Подскажи плизз.


 
Гаврила ©   (2004-08-05 23:38) [9]

вариант [1] сработает, если и exe и dll скомпилированы с ран тайм пакетами

если это неприемлимо - копайся в глубинах API
например, передавать handle
или второй вариант - передавать структурой хранилище строк - caption ов  меню, и параллельно хранилище callback - обработчмков нажатий. В этом случае хост должен по полученной информации из библиотеки сам строить меню


 
bloodman ©   (2004-08-06 13:19) [10]

>вариант [1] сработает, если и exe и dll скомпилированы с ран тайм пакетами
К сожалению это неприемлемо.
>например, передавать handle
пробовал это read-only параметр. (TPopUpMenu, WinApi , пока не смотрел)
>или второй вариант - передавать структурой хранилище строк - caption ов  меню, и параллельно хранилище callback - обработчмков нажатий. В этом случае хост должен по полученной информации из библиотеки сам строить меню
Видимо придется так :(( У мя так все контролы создаются. Думал хоть с popup можно как то полегче.

Может у кого - нибуть еще идеи есть как передать popup??? МАСТЕРА плизз помогите.


 
GuAV ©   (2004-08-06 14:04) [11]

а чем бы не передать в dll хендл контрола, куда popup цеплять?


 
bloodman ©   (2004-08-06 15:14) [12]

До вызова функции программа не знает что создавать, поэтому даже если жто бы сработало не подходит в моей ситуации. Ж(



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

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

Наверх





Память: 0.47 MB
Время: 0.033 c
3-1091137474
Максим
2004-07-30 01:44
2004.08.22
Access - как измененить значение поля?


4-1089734671
Vitalnet
2004-07-13 20:04
2004.08.22
Как переместить созданный фаил в нужный католог


1-1091660520
shine
2004-08-05 03:02
2004.08.22
Копирование колекций.Ошибка при assign.


14-1091544669
NPP_OSI
2004-08-03 18:51
2004.08.22
Выделение и освобождение памяти


14-1091479516
Lamers not dead
2004-08-03 00:45
2004.08.22
Где взять JRO_TLB?





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