Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2012, 03:37   #1
Toxa16
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 13
По умолчанию Форма как переменная

Ситуация: есть программа, которая работает с БД Access. Все действия, выполняемые в главной форме программы, описаны не в коде самой этой формы, а в отдельном .pas файле; из формы же только вызываются процедуры/функции из файла. В этом фале, при описании процедур, функций - часто встречается обращения к главной форме.
Так вот - как в этом файле обозначать форму так, чтобы не писать каждый раз Form1.xxxxxx, а сделать что-то типа "Frm := Form1", и, когда надо обратиться к форме, писать Frm? То есть, создать как бы "указатель" на главную форму, и вызывать ее по этому указателю. Надеюсь, понятно все расписал)))
Toxa16 вне форума Ответить с цитированием
Старый 26.06.2012, 06:00   #2
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 150
По умолчанию

Именно так и сделать.

В юните с процедурами:

Код:
interface
...
var Frm: TForm1;
В, к примеру, dpr:

Код:
Application.CreateForm(Form1, TForm1); // Это Delphi за тебя напишет
Frm := Form1; // А это ты напишешь руками
Ясен пень, надо правильно прописать uses во всех трех файлах (два юнита и dpr)
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 26.06.2012, 16:48   #3
Toxa16
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 13
По умолчанию

не получается((( access violation выскакивает(
Toxa16 вне форума Ответить с цитированием
Старый 26.06.2012, 17:35   #4
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 150
По умолчанию

На каком моменте?
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 26.06.2012, 20:46   #5
Toxa16
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 13
По умолчанию

на главной форме есть richedit, в юните с процедурами есть процедура, которая обращается к этому самому ричэдиту. Сразу на FormCreate и возникает.
Toxa16 вне форума Ответить с цитированием
Старый 26.06.2012, 21:10   #6
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 150
По умолчанию

Во как.
А зашли код.
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 26.06.2012, 21:38   #7
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Toxa16, почитай, как правильно делать.

Тебе, наоборот, нужно убрать обращения к форме из своего модуля с кодом. Если тебе нужны данные с формы - пусть форма передаёт их в параметрах процедур и функций. Если же надо как-то изменять интерфейс - этим должна заниматься сама форма.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 27.06.2012, 01:21   #8
Toxa16
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 13
По умолчанию

ych_del, вот простой пример на эту тему. С ошибкой(
Вложения
Тип файла: zip primer.zip (85.8 Кб, 7 просмотров)
Toxa16 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменная как имя книги vefer Microsoft Office Excel 1 13.10.2011 22:32
Использования текста как переменная dubailand Паскаль, Turbo Pascal, PascalABC.NET 5 06.02.2011 13:29
Значения поля как переменная DimOn4Ik БД в Delphi 12 07.05.2010 02:59
Процедура, как переменная russian-stalker Общие вопросы Delphi 2 03.10.2009 18:01
Массив как структурная переменная mazak Общие вопросы C/C++ 8 15.07.2009 21:55