Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Источник данных

Begin

Begin

Begin

if DispiayText then Text:=TablelName.AsString -

else Text:= AnsiUpperCase(TablelName.AsString);

end;

procedure TForml.TablelPercentGetText(Sender: TFieid; var Text: String;;

DispiayText: Boolean);

if DispiayText then Text:=TablelPercent.AsString+'%'

else Text:=TablelPercent.AsString;

end;

 

Значение поля Percent отображается в визуальных компонентах со знаком %. При редактировании этого поля знак процента отсутствует. При редактировании значения поля Name оно выводится строчными буквами. Отметим, что если для перевода символов строки в верхний регистр вместо функции AnsiUpperCase ис­пользовать UpperCase, то символы русского алфавита будут преобразовываться некорректно.

Замечание

Если определен обработчик события OnGetText, то свойства DisplayFormat и EditMask не действуют.


 

Свойство DisplayWidth типа Integer определяет число символов, предназначен­ных для вывода значения поля в визуальном компоненте (обычно в сетке DBGrid), который связан с этим полем. По умолчанию значение этого свойства определяется шириной физического поля таблицы, заданной при его создании.

Замечание

Ширина столбца компонента-сетки DBGrid также зависит от значения свойства width этого столбца, задающего ширину в пикселах.

 

Программист может изменить не только значение, но и заголовок поля, исполь­зуемый как название столбца, например, в компоненте DBGrid. Заголовок поля определяется свойством DisplayLabel типа string. По умолчанию значением этого свойства является название поля (свойство FieldName), однако, в отличие от последнего, свойство DisplayLabel доступно и для записи, и его можно ис­пользовать, например, для настройки пользователем интерфейса приложения.

Пример настройки заголовка поля:

procedure TForml.ButtonlClicktSender: TObject);

TablelName.DisplayLabel:=Editl.Text;

end;

 

Здесь при нажатии кнопки заголовку поля Name присваивается текст, введенный в компонент Edit1. Если это поле отображается в компоненте DBGrid, то соот­ветствующий столбец сетки также изменяет свое значение на указанное.

 


Источник данных используется как промежуточное звено между набором дан­ных и визуальными компонентами, с помощью которых пользователь управляет этим набором данных. В Delphi источник данных представлен компонентом DataSource.

Для указания набора данных, с которым связан источник данных, служит свой­ство DataSet типа TDataSet последнего. Визуальные компоненты связаны с ис­точником данных через свои свойства DataSource. Обычно связь между источ­ником и набором данных устанавливается на этапе проектирования в Инспек­торе объектов, однако при необходимости эту связь можно установить или разорвать динамически. При смене у компонента DataSource набора данных визуальные компоненты автоматически подключаются к новому набору данных.

Указать набор данных можно, например, так:

DataSource2.DataSet:=nil;

DataSourcel.DataSet:=Table2;

 

Здесь для компонента DataSource2 связь с набором данных разрывается, а для компонента DataSourcel назначается набор данных Tаblе2.


Для анализа состояния, в котором находится набор данных, можно использо­вать свойство state типа TDataSetState. При каждом изменении состояния на­бора данных для связанного с ним источника данных DataSource генерируется событие OnStateChange типа TNotifyEvent.

Если набор данных является редактируемым, то свойство AutoEdit типа Boolean определяет, может ли он автоматически переводиться в режим модификации при выполнении пользователем определенных действий. Например, для компо­нентов DBGrid и DBEdit таким действием является нажатие алфавитно-цифровой клавиши, когда компонент находится в фокусе ввода. По умолчанию свойство AutoEdit имеет значение True, и автоматический переход в режим модификации разрешен. Если необходимо защитить данные от случайного изменения, то од­ной из предпринимаемых мер является установка свойству AutoEdit значения False.

Замечание

Значение свойства AutoEdit влияет на возможность редактирования набора данных только со стороны пользователя. Программно можно изменять записи независимо от значения этого свойства.

Без учета значения свойства AutoEdit пользователь может переводить набор данных в режим модификации путем нажатия кнопок компонента DBNavigator.

 

При изменении данных текущей записи генерируется событие OnDataChange ти­па TDataCnangeEvent, который описан следующим образом:

type TDataChangeEvent = procedure (Sender: TObject; Field: TField) of object;

 

Параметр Field указывает на измененное поле; если данные изменены более чем в одном поле, то этот параметр имеет значение Nil. Следует иметь в виду, что в большинстве случаев событие OnDataChange генерируется и при переходе к другой записи. Это происходит, если хотя бы одно поле записи, ставшей те­кущей, содержит значение, отличное от значения этого же поля для записи, ко­торая была текущей. Событие OnDataChange можно использовать, например, для контроля за положением указателя текущей записи и выполнения действий, связанных с его перемещением. Это событие генерируется также при открытии набора данных.

Вот как осуществляется контроль за перемещением указателя текущей записи:

procedure TForml.DataSourcelDataChange(Sender: TObject; Field: TField);

<== предыдущая лекция | следующая лекция ==>
If (TablelCode.Required) and (TablelCode.isNull) | Введение. Визуальные компоненты для работы с данными
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 402; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.