Logo Host-telecom.com — профессиональный хостинг в Европе! Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
хостинг сайтов ГиперХост — хостинг сайтов который Вы искали.

Виртуальный хостинг, Аренда VPS серверов, рация доменных имен, SSL сертификаты

💰 Самые низкие цены на домены

🔒 Отличный хостинг на SSD c бесплатными SSL

💻 Огромнейший выбор dedicated выделенных серверов

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VDS хостинг Облачный сервер в Нидерландах и Украине

Аренда виртуального сервера от $7.91

Партнёрская программа
$20 за клиента

Модули данных

В предыдущем примере мы размещали компоненты со страницы Data Access непосредственно на главную форму приложения. Однако наличие на форме большого количества невидимых компонентов в ряде случаев затрудняет проектирование пользовательского интерфейса. Кроме того, нередко бывает удобно отделить компоненты, отвечающие за доступ к данным и бизнес-логику информационной системы, от интерфейсных элементов, например, для обегчения ее дальнейшей модернизации. Для этой цели в C++ Builder имеется специальный тип, называемый модулем данных - TDataModule. Компонент этого типа можно условно считать специальным видом формы, хотя он и порожден непосредственно от TСomponent. Такой компонент-контейнер может содержать компоненты со страницы Data Access, а сам он не виден пользователю во время выполнения.

Создадим другую версию рассмотренного выше примера с использованием модуля данных. В этом случае компоненты Data Access помещаются в модуль данных, а ссылка на соответствующий h-файл помещается в модуль, связанный с главной формой приложения.

Рис.14. Размещение компонентов доступа к данным в DataModule

Приведем исходный текст модуля, связанного с главной формой новой версии приложения:

	//----------------------------------------------------
	#include <vcl\vcl.h>
	#pragma hdrstop
	
	#include "cust1.h"
	#include "custdm1.h" // Ссылка на модуль данных
	//-----------------------------------------------------
	#pragma link "Grids"
	#pragma resource "*.dfm"
	TForm1 *Form1;
	//-----------------------------------------------------
	__fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner)
	{
	}
	//-----------------------------------------------------
	void __fastcall TForm1::Button1Click(TObject *Sender)
	{
	if (DataModule1->Table1->Active)
	{
	DataModule1->Table1->Close();
	Button1->Caption = "Открыть таблицу &клиентов";
	}
	else
	{
	DataModule1->Table1->Open();
	Button1->Caption= "Закрыть таблицу &клиентов";
	};
	}
	//-----------------------------------------------------
	void __fastcall TForm1::Button2Click(TObject *Sender)
	{
	if (DataModule1->Query1->Active)
	{
	DataModule1->Query1->Active = false;
	Button2->Caption = "Открыть таблицу &заказов";}
	else
	
	{
	DataModule1->Query1->Active = true;
	Button2->Caption = "Закрыть таблицу &заказов";
	}
	}
	//-----------------------------------------------------
	void __fastcall TForm1::RadioButton1Click(TObject *Sender)
	{
	DBGrid1->DataSource = DataModule1->DataSource1;
	}
	//-----------------------------------------------------
	void __fastcall TForm1::RadioButton2Click(TObject *Sender)
	{
	DBGrid1->DataSource = DataModule1->DataSource2;
	}
	//-----------------------------------------------------
	void __fastcall TForm1::RadioButton3Click(TObject *Sender)
	{
	DBGrid1->DataSource = DataModule1->DataSource3;
	}
	//----------------------------------------------------
	void __fastcall TForm1::Button3Click(TObject *Sender)
	{
	if (DataModule1->Table1->Active)
	{
	DataModule1->Table1->SetRangeStart();
	DataModule1->Table1->Fields[0]->AsString = Edit1->Text;
	DataModule1->Table1->SetRangeEnd();
	DataModule1->Table1->Fields[0]->AsString = Edit2->Text;
	DataModule1->Table1->ApplyRange();
	}
	}
	//----------------------------------------------------

Назад | Содержание | Вперед

Wildcard сертификаты от $74,97 в год.

Дешевые ssl сертификаты для домена

Sectigo сертификаты от $7,67 в год.

хостинг Украина Виртуальный хостинг для сайта от $4,87

Регистрация домена от $2 в год

Партнерская программа – $20 за клиента

VPS с гибкой конфигурацией: за 1€

Мощные выделенные сервера: от 25€

Собственный Дата-Центр
Поддержка 24/7

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

ATLEX Выделенные серверы: в Европе / в России.

Виртуальные серверы: в Европе / в России.

Партнерская программа

Ваш сайт в 8 раз быстрее конкурентов. Хостинг от $2.95

VPS: SSD, KVM, бесплатные бэкапы и администрирование

Все необходимое для вашего сайта и лучшая техподдержка 24/7

Новости мира IT:

Архив новостей

Последние комментарии:

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...