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

Вниз

размещение ListView из DLL на форме главного окна   Найти похожие ветки 

 
andy   (2004-08-10 18:03) [0]

Доброго времени суток!
Вопрос в следующем:
Создаем DLL с не модальным окном, на окно помещается Panel,Botton и на ней размещается ListView.
Пишем модуль инициализации DLL в который передаем Handle окна вызывающего функцию
  Function DllInitialize (HD: Thandle):boolean;
  begin
  Panel.Parent:=nil;
  Panel.ParentWindow:=HD;
  end;
В exe-модуле вызываем функцию из DLL, передавая в качестве HD Handle окна.
После вызова на форме появляется панель из DLL c кнопкой и ListView. При нажатии на кнопку происходит событие -все нормально. Но при нажатии на ListView вываливается ошибка "ListView no parent window".
Кто знает, как это лечится? Спасибо.


 
andy   (2004-08-11 14:35) [1]

Похоже никто не знает...


 
ssk ©   (2004-08-11 14:41) [2]

попробуй так:

Panel.Parent := имя окна на котором лежит панель;


 
ssk ©   (2004-08-11 14:42) [3]

е-мое, не окна, а формы ;-)


 
andy   (2004-08-11 14:58) [4]

Пробовал, бесполезно.
Клажешь именно ListView на форму все работает, панель а на ней ListView - труба.


 
ssk ©   (2004-08-11 15:20) [5]

вот держи проект (3к)http://www.ucad.pisem.net/test_modalform_in_dll.zip

в нем сделан вызов формы из DLL модально. на форме лежит ЛистВью, а также панель с ЛистВью. кликаю, вроде все работает...


 
andy   (2004-08-11 15:28) [6]

Ssk,спасибо, но проблему не понял. Я пытаюсь отобразить на форме exe-файла: панель и на нем ListView, которые хранятся в DLL.


 
ssk ©   (2004-08-11 15:41) [7]

кажется, понял.

1. создай на форме ЕХЕ-файла динамически панель, а на ней ЛистВью. для ЛистВью родителем, соответственно, сделай только что созданную панель;
2. DLL перестрой таким образом, чтобы она при запросе возвращала данные о состоянии панели и ЛистВью, находящихся в ней;
3. полученные данные из DLL пропиши нужным образом в динамически созданные панель и ЛистВью.

P.S. может есть и более лучший способ, но пока что придумал вот так.


 
andy   (2004-08-11 15:49) [8]

Тогда какой смысл держать панель и listView в DLL?
Из DLL и так можно легко получить доступ к компонентам форм exe-файла.
Дело в том что описанным выше способом создаются легко панели, кнопки, memo, ListView .... , а вот ListView находящийся на панели ни в какую...


 
-SeM-   (2004-08-11 16:35) [9]


> ошибка "ListView no parent window"


А если ему в наглую

Function DllInitialize (HD: Thandle):boolean;
begin
 Panel.Parent:=nil;
 Panel.ParentWindow:=HD;
 ListView.Parent:=Panel;
end;


 
Германнн   (2004-08-12 02:25) [10]

И сколько раз нужно Вас "трахнуть", чтобы Вы поняли, что Билл не любит Borland, а Borland не любит Билла?
Dll - продукт Билла.
VCL - продукт Borland.
Ну несовместимы они!!!

Есть способы преодолеть эту несовместимость. Но лучше всего (на сей момент, имхо) - "встать на сторону одной из фирм"!
Либо пишите программы на продуктах Microsoft, либо используйте BPL вместо DLL.


 
dream   (2004-08-12 06:02) [11]

http://delphimaster.net/view/15-1092068335/


 
andy   (2004-08-12 07:51) [12]

> SeM, в наглугую не проходит.

>Германнн [10]
смотрите ссылку dream [11] - люди делают на Borland



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

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

Наверх





Память: 0.49 MB
Время: 0.036 c
4-1089994372
Dir
2004-07-16 20:12
2004.08.29
OpenDir


1-1092206792
atmospheric
2004-08-11 10:46
2004.08.29
Компонент для преобразования html таблицы в StringGrid?


1-1092678067
god
2004-08-16 21:41
2004.08.29
Поиск в Memo/RichEdit


3-1091701582
Иванна
2004-08-05 14:26
2004.08.29
Проблема с библиотекой Ehlib


1-1092641495
Externalsym
2004-08-16 11:31
2004.08.29
Проблема при использовании хеширования





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