Константин
Зарегистрирован: 06.11.2002 Сообщения: 230
|
Добавлено: Вс Ноя 11 2001 18:55 Заголовок сообщения: ВОПРОС: Создание компонента в C++ Builder 5 |
|
|
У меня следующая проблема (сразу скакжу, что компоненты я еще ни разу не создавал):
Хочу создать на базе TEdit компонент TDtTmEdit (ввод даты/времени) в C++ Builder 5 (OS - NT 4.0 Workstation Rus - на всякий случай.) Среди прочих свойств добавляю свойство dateformat, принимающее 1 из 3 значений: dmy (по-умолчанию), mdy и ymd. Поле текст по-умолчанию устанавливаю в "--.--.----,--:--:--" (разумеется вместо дефисов - пробелы, здесь дефисы для наглядности.) При изменении свойства dateformat в редакторе форм на ymd текст очевидно должен измениться на "----.--.--,--:--:--" (не 2-2-4, а 4-2-2). Для этого пишу соответствующий метод, который генерирует соответствующую текстовую строку и присваивает ее свойству Text оператором Text = buf; Вот на этом месте и генерируется исключение с сообщением: "Error" (Это заголовок окна.) "Access violation at address 0404CC1C. Write of address 3E740409." "OK" (Это кнопка.) После нажатия OK свойство dateformat устанавливается, как надо, а свойство Text не изменяется. (Замечу, что речь идет о процессе установки свойств моего компонента на форме, а не о времени выполнения готового приложения.) Свойство Text доступно для чтения/записи и ничем не перекрыто. Я свободно ввожу туда что угодно руками. Кроме того выражение Text = buf (или что-то еще) прекрасно работает на данном этапе в конструкторе, а вот если это выражение в другом методе, а метод вызывается из конструктора - то и здесь та же история. Если бы кто-то мог подсказать - в чем я не прав, а главное - как обойти такую ситуацию, был бы благодарен. В книгах ответа не нашел.
Константин. |
|