![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Гость_Victor |
|
|||
|
Unregistered |
Вопрос к знающим:
каким образом можно узнать поля класса? Или по-другому: нужно получить доступ к полю одного класса из другого, учитывя что его может не быть. Или по простому: есть MDI приложение и много форм; из одной формы нужно определить есть ли переменная в другой (секция public) и изменить если она присутствует. |
|||
|
||||
| Vex |
|
|||
![]() кацапосрачмученiкъ ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3103 Регистрация: 28.3.2002 Где: strawberry fields Репутация: 1 Всего: 88 |
А ты в любом случае вставляй в класс переменную, если нет значения, то просто пиши например "0".
-------------------- Слава Україні. |
|||
|
||||
| Гость_Victor |
|
|||
|
Unregistered |
Vex больно накладно получается.. если у меня соотношение есть-нет скажем 2:10
|
|||
|
||||
| Гость_Victor |
|
|||
|
Unregistered |
Как выяснилось подобное в delphi невозможно... т.е. можно получить информацию о полях класса (RTTI) если из секции published, но там ограничения на типы полей - не иначе как интерфейс или класс.
Но, в обход придумал сделать так: получить адрес метода, передать параметры и выполнить его можно даже если заведомо не знаешь что он существует. единственное неудобство - добавлять этот метод там где есть переменная.... если кто-нибудь придумает решение получше - сообщите пожалуйста мне на [email protected] |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
А может так:
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Гость_Victor |
|
|||
|
Unregistered |
может я что-то упустил, но не совсем понял как это можно применить?
к тому же в твоем случае sm.. всегда будет показывать ноль |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Это сообщение отредактировал(а) <Spawn> - 30.12.2004, 20:53 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Public сложно, но если объявить как Published то есть такая штука как RTTI (в DRKB много примеров), которая позволяет обращаться по имени к Published свойствам и проверять их наличие...
Второй способ: наследовать все MDI формы от некого предка со свеми нужными свойствами, тогда обращение к ним будет простым и прозрачным Добавлено @ 17:57
Не правда ваша, типы полей могут быть любыми, RTTI легко позволяет достучаться к Integer или String или к чему угодно... -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
![]()
|
| Правила форума "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. |