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

Вниз

Компонент в компоненте   Найти похожие ветки 

 
murza   (2002-08-26 11:50) [0]

Маленький простой вопрос.
Делаем мы тут пакет компонентов. Компоненты разные, и визульные и нет. С формами и без. Оказалось что многие формы должны содержать похожие элементы и было принято решение собрать их в отдельный компонент, пускай и пользователь использует, если захочет. Назовем его TMyPanel. Все было сделано, новый визуальный компонент был инсталлирован в отдельном пакете, тестовый приложения заработали. Осталось положить его на все использующие его формы. Назовем одну из них TMyForm.
Но возник один вопрос. Важно, чтобы все компоненты поставлялись в одном пакете. Как же мне положить компонент на форму?
Напрашивается несколько вариантов:
- Мы ставим пакет с новым визуальным компонентом TMyPanel. Открываем большой пакет. Кладем TMyPanel на TMyForm. Делаем. Наверное будут требоваться оба.
- Мы убираем все из большого пакета и добавляем в него TMyPanel. Делаем. Добавляем все остальное и кладем TMyPanel на TMyForm. Вряд ли этот пакет сделается.
- Мы добавляем TMyPanel на TMyForm методом правки кода и надеемся что большой пакет сделается.
Ничего не пробовал, боюсь глюков и хочу узнать ваше мнение.
ЗЫ у меня BCB5


 
Игорь Шевченко   (2002-08-26 12:12) [1]

А по образу и подобию RxLib сделать ?


 
murza   (2002-08-26 12:16) [2]

Не понимаю.


 
murza   (2002-08-27 10:14) [3]

Сделал я второй вариант. Глюки появились. Описывать бесполезно. Кратко говоря: методы визуального компонента работают правильно в одном фрагменте кода и неправильно в другом. Может быть, конечно, и руки кривые, но с билдером такое бывает. Проверено.


 
Игорь Шевченко   (2002-08-27 10:53) [4]

С руками чаще :-)


 
murza   (2002-08-27 11:26) [5]

Опишу глюки. Есть модуль MyUnit, в его хидере объявлены строковые константы (MyConstant), а него ссылается целая куча других модулей и раньше все эти константы работали (какой неудачный термин) совершенно правильно. Итак пусть у нас есть метод MyMethod который формирует и возвращает текст используя эти константы. Он все время работал правильно. После сбора пакета методы компонента TMyPanel (см. вопрос) обращаются к MyMethod. Он работает так, как будто все MyConstant == "". Методы другого компонента который был в пакете изначально также обращаются к MyMethod и он работает как положено. Это все в одном и том же приложении.
Приводить код не имеет смысла. Там совершенно точно нет фрагментов типа
if (условие_которое_ДОЛЖНО_выполняться) s = MyConstant;
else s = "";

Я все же грешу на билдер. К проекту пакета модель MyUnit ессно подключен. Подключение к тестовому приложению и по логике вещей не должно решать проблемы и проверил я этот вариант.


 
Игорь Шевченко   (2002-08-27 11:42) [6]

Константы какого типа ? AnsiString или просто по #define объявлены ?


 
murza   (2002-08-27 12:05) [7]


> Игорь Шевченко © (27.08.02 11:42)
> Константы какого типа ? AnsiString или просто по #define
> объявлены ?

const AnsiString MyConstant = "My Value";
Ладно, я решил проблему, поэтому всем спасибо за помощь.
Оказывается проект тестового приложения ссылался на старый пакет. Все время забываю, что если вляпать компонент из своего пакета на форму билдер не добавит его в список используемых пакетов.
А вообще эффект интересный. В старом пакете ведь строковые константы тоже были объявлены. Проблемы такого рода я объясняю "билдер запутался".


 
murza   (2002-08-27 13:11) [8]

ПРОБЛЕМА ПОВТОРЯЕТСЯ НА ДРУГОЙ ФОРМЕ!!!
Подскажите как отладить метод компонента? У меня все пути (debug dource path напр.) прописаны и вообще тестовое приложение там же лежит. А по F7 не входит.



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

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

Наверх





Память: 0.46 MB
Время: 0.007 c
4-14318
asmer
2002-07-02 14:34
2002.09.05
EditBox


7-14294
Sin
2002-06-18 21:59
2002.09.05
Прописка приложения в ОС.


3-13968
Pingo
2002-08-14 11:13
2002.09.05
Мастера Оракла!


1-14166
-=M-A-K-C=-
2002-08-24 22:42
2002.09.05
Как в мою прогу, неиспользующую Form, зусунуть HotKey


3-13886
wassil
2002-08-14 12:21
2002.09.05
BDE или MSAccess ?





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