|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.07.2009, 16:03 | #1 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Ошибка при присвоении tStringList
Привет всем!
Короче дело такое. Программа состоит из EXE и несколькох DLL. При запуске в EXE формируется некий список someEXEList: tStringList. Затем в EXE он без проблем присваевается someEXEComboBox: tComboBox Код:
Код:
Код:
Код:
При этом я без проблем срабатывает функция Код:
Код:
Так в чём-же проблема? Мне надо, что-бы при изменении любого из someEXEList someDLLList someEXEComboBox.items someDLLComboBox.items Менялись бы и все остальные. p.s. не помогает даже Код:
|
23.07.2009, 16:29 | #2 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Странно.. А если через задницу - Clear + AddStrings ?
|
23.07.2009, 16:38 | #3 |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 384
|
TStringList(pSomeEXEList^)
|
23.07.2009, 16:48 | #4 | ||
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Цитата:
Цитата:
|
||
23.07.2009, 16:55 | #5 |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 384
|
TStringList(pSomeEXEList) - это уж точно не сработает. Ты приводишь указатель к TStringList хотя его не разименовал ^.
Последний раз редактировалось Evgeniy26; 23.07.2009 в 16:58. |
23.07.2009, 16:55 | #6 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Вот вам метод вызова
EXE Код:
Код:
Последний раз редактировалось Altera; 23.07.2009 в 17:00. |
23.07.2009, 17:00 | #7 |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 384
|
Код:
Если это TStringList: Код:
Последний раз редактировалось Evgeniy26; 23.07.2009 в 17:04. |
23.07.2009, 17:05 | #8 | |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Цитата:
Если бы было-бы так просто Я бы и сам допёр.... Для тех кто мне не верит вот: Последний раз редактировалось Altera; 23.07.2009 в 17:15. |
|
23.07.2009, 17:47 | #9 | |
Форумчанин
Регистрация: 06.01.2009
Сообщений: 340
|
Цитата:
Причина: при присваивании: Код:
Попробуй пример: Код:
Если заглянуть в исходники, там действительно увидим копирование данных. Насчет ошибки. Ошибка возникает из-за того, что класс TStringList из exe-файла и класс TStringList из dll - это разные классы. При присваивании происходит проверка типов, они не совпадают и вылетает исключение: Код:
http://www.delphikingdom.com/asp/ans...IDAnswer=68178
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник". Последний раз редактировалось Daramant; 23.07.2009 в 19:08. |
|
23.07.2009, 20:00 | #10 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Ну хорошо, ладно.... копируются данные а не указатель. Но вопрос по-прежнему остаётся.
Почему Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка при компиляции | MasterofCDM | Общие вопросы Delphi | 2 | 11.11.2008 09:35 |
Ошибка при отключении ОС | GREK | Операционные системы общие вопросы | 1 | 24.09.2008 16:50 |
Ошибка при удалении... | JRcoker | Общие вопросы Delphi | 8 | 29.07.2008 22:53 |
Ошибка при присваивании | NeiL | Общие вопросы Delphi | 5 | 16.04.2008 22:24 |
Ошибка при компиляции | zak | Общие вопросы C/C++ | 2 | 11.12.2007 18:24 |