![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| RinOSpro |
|
|||
|
Unregistered |
Здравствуйте. Я делаю проверку длинны строки. Конечно можнобы было писать на каждый компанент проверку длинны.
Например TEdit, TDBEdit, TMaskEdit и т.д, но надо для всех наследников TEdit. Вот мой код
Тут будет работать только для TEdit, а для TDBEdit, TMaskEdit придется писать другой код. Скажите пожалуста как написать код который будет охватывать все дочерние компаненты? Это сообщение отредактировал(а) Alexeis - 25.10.2007, 09:49 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Мож просто назначить им один общий обработчик OnChange ?
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
Alexeis я вот как выпоняю процедуру
Это сообщение отредактировал(а) RinOSpro - 25.10.2007, 10:24 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
А кажись понял суть вопроса. Приводи их всех к общему предку TCustomEdit и у него проверяй свойство Text. Тогда не нужно будет дублировать код.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
Спасибо!!! Значит TCustomEdit является родителем. А я думал TEdit
Мне кажется свойство Text проверять не надо. Оно есть в TCustomEdit значит по идее дожно наследоваться и дочерними компанентами. Или надо как думаешь? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Как обычно (Sender as TCustomEdit).Text
Так ты ж сам не хотел писать разный код для 3х классов, чтобы этого не делать, применяй действия к наследнику приводя его к предку, т.е. как я показал. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
Млин... Свойство техт у них есть а вот свойства фонт нету. Что делать?
|
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
Помогите!!!!!!
Добавлено через 2 минуты и 13 секунд Может как нибудь можно так
Хотя именно так не работает. |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
RinOSpro,
В начале модуля пропиши:
-------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| Alexeis |
|
||||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Лан, тады пойдем небезопасным путем
Короч. тут дело такое. Font есть у всех контролов, он появляется у TControl, но в разделе protected. Объекты так устроены, что у всех наследников поля идут в том же порядке. Это позволит правильно обратиться к нужному полю, даже если объект приведен не к своему классу, главное чтобы уних был общий предок, protected свойство которого нужно достать. Например, даже такое будет отлично работать
Хотя (Edit1 as TButton) даже компилятор не пропустит. Тут главное трогать только поля их общего предка, в данном случае это TControl, потому если нужно у них установить только фонт и текст, то не заморачивайся и приводи Сендера к TEdit.
Только не забудь, что нельзя обращаться к специфическим полям TEdit, только к тем что есть у TCustomEdit или предков TCustomEdit. Добавлено через 3 минуты и 15 секунд Упс. Rennigth, нашел более грамотное решение. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
| RinOSpro |
|
|||
|
Unregistered |
Rennigth а это правильно что мы немного подправили класс?
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
RinOSpro, это не правка старого, а фактически создание нового с таким же именем (не ясно зачем было сохранять имя). Его можно было назвать хоть TDeadeaVasea. Исходные модули как использовали родной класс, так и будут использовать.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
Что то это не работает.
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Отчего же? Я сам проверял. Все ОК.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
Твоя первоначальная процедура будет выглядеть примерно так:
Это сообщение отредактировал(а) Rennigth - 25.10.2007, 15:51 -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |