Пятница, 22 Ноября 2024, 00:48

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Datamodule. Как подключить
FerasetДата: Среда, 19 Сентября 2012, 22:17 | Сообщение # 1
Издание игр
Сейчас нет на сайте
Как подключить DataModule к форме. И если можно пример его использования какой нить легкий для понимания напишите пожалуйста, например с таймером. Заранее спасибо.

Спасибо пользователю TimCruz, за то что научил меня спокойствию, терпимости и вере в цели.



Сообщение отредактировал Feraset - Среда, 19 Сентября 2012, 22:18
TimKruzДата: Четверг, 20 Сентября 2012, 12:22 | Сообщение # 2
старожил
Сейчас нет на сайте
Feraset, ты мог бы сам найти в интернете то, что тебе нужно. По всему этому много чего написано.
Quote (Feraset)
Как подключить DataModule к форме.

Открываешь свой проект, затем нажимаешь в главном меню: File > New > Data Module.
Генерируется пустой модуль-контейнер и подключается к твоему проекту. По-умолчанию он автоматически создаётся после создания формы.
Подключается он только в коде самой программы, т.е. в Project1.dpr (чтобы посмотреть этот код, в главном меню выбери: Project > View Source).
Теперь ты можешь наполнить этот контейнер необходимыми компонентами. Выбираешь получившееся окошко DataModule, затем переносишь на него нужные компоненты с палитры компонентов. Доступны только невизуальные компоненты, типа таймера.
Теперь, чтобы воспользоваться этими компонентами из какого-нибудь модуля, нужно сделать следующее: в требуемом модуле (например, Unit1 с формой Form1), после строчки implementation вводишь "uses unit2;" (unit2 - имя data-модуля с компонентами), например:
Code
...
implementation //Раздел имплементации
uses unit2; //Подключаем модуль
{$R *.dfm}
procedure TForm1.FormClick(Sender: TObject); //Кликнули по форме
begin
   //Запускаем таймер
   unit2.DataModule2.Timer1.Enabled:=true;
end;
...

А чтобы получить доступ к форме из модуля-контейнера, нужно точно так же подключить модуль формы к этому модулю:
Code
...
implementation
uses unit1; //Подключаем модуль формы
{$R *.dfm}
procedure TDataModule2.Timer1Timer(Sender: TObject); //Событие срабатывания таймера
begin
   //Обратились к форме Form1, чтобы изменить ей заголовок
   unit1.Form1.Caption:='Таймер сработал!';
   timer1.Enabled:=false; //И выключили таймер
end;
...

Преимущество тут только в том, что в дизайнере форм не будут мешаться лишние невизуальные компоненты, если их слишком много...
Ну ещё можно использовать компоненты этого контейнера из разных форм, однако эти формы легко можно подключить друг к другу тем же способом...

P.S. Учись называть экземпляры компонентов своими именами, типа MainFrm в модуле MainUnit и тому подобного... В автоматически пронумерованных компонентах легко запутаться... Это я так, на будущее...


FerasetДата: Четверг, 20 Сентября 2012, 12:33 | Сообщение # 3
Издание игр
Сейчас нет на сайте
Quote (TimKruz)
Подключается он только в коде самой программы, т.е. в Project1.dpr

Тоесть здесь мы ничего не пишем я так понимаю.

Код мы добавляем только в implementation. Спасибо за урок.
Quote (TimKruz)
Учись называть экземпляры компонентов своими именами,

Учту.
Quote (TimKruz)
в дизайнере форм не будут мешаться лишние невизуальные компоненты,

У меня было такое что во время открытия проекта все невизуальные компоненты исчезали. Вот думаю с дата модулем попробовать, может перестанут. Да и мешаться не будут в конце концов.


Спасибо пользователю TimCruz, за то что научил меня спокойствию, терпимости и вере в цели.

  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг