![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| maximjhon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 12.8.2009 Репутация: нет Всего: нет |
Здравствуйте. Как можно сделать так чтобы одна и та же процедура была универсальна для нескольких таблиц StringGrid, находящихся на разных формах и объявленных в разных модулях одного проекта. Просто прописывать процедуру для каждого StringGrid неуемно.
например вот есть у меня повторяющаяся процедура вычисляющая сумму элементов StringGrid :
А я хочу, чтобы эта процедура была доступна для любого StrinGrid-а в проекте Это сообщение отредактировал(а) maximjhon - 21.8.2011, 09:28 |
|||
|
||||
| superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 7 Всего: 15 |
Сделай из этой процедуры - функцию которая возвращает сумму. СтрингГрид передавай в нее параметром. Тот модуль в который ты добавишь эту функцию, подключай через uses к тем модулям где она нужна.
Примерно, так:
Это сообщение отредактировал(а) superVad - 21.8.2011, 10:18 |
|||
|
||||
| maximjhon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 12.8.2009 Репутация: нет Всего: нет |
Я так и сделал, но почему то функция действует в пределах одного модуля, в других модулях она не работает, хотя я подключил к ним через uses модуль, в котором она определена.
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
А как ты её вызываешь-то? -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| 14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: нет Всего: 5 |
области видимости и идентификаторы |
|||
|
||||
| maximjhon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 12.8.2009 Репутация: нет Всего: нет |
я вызываю функцию так:
Если я вызываю функцию в модуле,где она определена, то она работает, а если вызываю в другом модуле, то компилятор не распознает эту функцию |
|||
|
||||
| superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 7 Всего: 15 |
maximjhon, все зависит от того где ты эту функцию объявил.
Если внутри формы (т.е. внутри объекта), то надо перед функцией написать название этого объекта (НазваниеОбъекта.Sum(StrigGrid1)). Но надо, конечно же, что он был создан... И функция должна быть в паблике. Лучше создать отдельный юнит и туда вставить эту функцию, тогда не понадобится создавать объект и писать его имя перед функцией. Это сообщение отредактировал(а) superVad - 21.8.2011, 14:17 |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Правильно, вызывать же надо примерно так:
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| maximjhon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 12.8.2009 Репутация: нет Всего: нет |
Я разобрался с проблемой, ПРОСТОЯ Я ЗАБЫЛ ОПРЕДЕЛИТЬ ФУНКЦИЮ В РАЗДЕЛЕ TYPE МОДУЛЯ,ОТКУДА ОНА ВЫЗЫВАЕТСЯ В ДРУГИХ МОДУЛЯХ.
|
|||
|
||||
![]()
|
| Правила форума "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. |