![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Kravec |
|
|||
|
Unregistered |
Когда используешь собственную функцию в Delphi, то внутри ее приходиться писать перед именами компонентов название формы. Как от этого избавиться. Кто то мне сказал нужно писать собственный класс. В общем что делать не знаю.
|
|||
|
||||
| iZZi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 22.5.2003 Репутация: нет Всего: нет |
Напиши, что тебе надо, поподробнее, а то так не поймешь.
Если пишешь метод для формы, то опиши его заголовок внутри класса формы - типа этого
Это сообщение отредактировал(а) iZZi - 30.9.2003, 07:01 |
|||
|
||||
| Kravec |
|
|||
|
Unregistered |
когда распологаешь функции в разделе private
выдается ошибка "Unsatisfied forward or external declaration: 'TFormMain.StatSt'" |
|||
|
||||
| iZZi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 22.5.2003 Репутация: нет Всего: нет |
Ну так надо описать метод
|
|||
|
||||
| Kravec |
|
|||
|
Unregistered |
она описана все равно ругается
|
|||
|
||||
| iZZi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 22.5.2003 Репутация: нет Всего: нет |
Ты прямо как у меня напиши - ругаЦЦа не должна.
Или напиши сюда свой код, посмотрим, в чем там ошибка. |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
мда.
ну, во-первых, можно просто объявить функцию в разделе interface:
объявление это может быть как в модуле с формой, так и в отдельном модуле. для того, чтобы обратиться к такой функции из того же модуля, где она объявлена, её достаточно просто вызвать. из другого модуля - следует прежде добавить Unit1 в uses этого другого модуля. Недостаток подобного метода в том, что для работы с компонентами формы придётся всегда ссылаться на них через форму. т.е. для того, чтобы в вышеприведённой функции что-то сделать скажем с Edit1: TEdit, расположенном на форме, придётсz писать Form1.Edit1.Text := 'Yo!'; Поэтому в функции, объявленные таким образом следует выносить только те действия, которые не работают с формой напрямую (хотя они могут с ней работать неявно, через параметры). Если функция объявлена как метод формы (вариант iZZi), следует чётко представлять, откуда эта функция будет вызываться. Возможность вызова функции из тех или иных участков кода называется её областью видимости. Так, функция, объявленная в private видна будет только в том модуле, в котором она была объявлена. Её может вызывать только сама форма, либо другие классы, опсанные в том же модуле. Для того, чтобы функция могла вызываться из других модулей, её следует объявить в public. Тога вызов функции происходит через ссылку на форму, в которой она объявлена: Form1.MyFunc. Существует ещё один способ объявить метод, так называемый метод класса. Фишка его в том, что его можно вызывать не создавая экземпляр того класса, в котором он был объявлен. Но это уже дебри -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
![]()
|
| Правила форума "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. |