КАТЕГОРИИ: Архитектура-(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
Table1.First; end;
Процедуры для кнопок «Следующая запись», «Предыдущая запись», «Последняя запись» напишите самостоятельно.
Для перемещения указателя на произвольное число записей используется счетчик SpinEdit1, в поле которого вводится это число. Для кнопки «Перемещение на…записей» напишите процедуру:
procedure TForm1.Button5Click (Sender: TObject);
Table1.MoveBy (SpinEdit1.Value); end; Напишите обработчик события OnAfterScroll для компонента Table1. После выполнения события OnAfterScroll информация о текущей записи обновляется сразу после перемещения текущего указателя.Это событие происходит и при открытии НД, когда указатель текущей записи устанавливается на первую запись.
procedure TForm1.Table1AfterScroll (DataSet: TDataSet);
label1.Caption:='Запись номер '+IntToStr(Table1.RecNo); SpinEdit1.MinValue:= 1-Table1.RecNo; SpinEdit1.MaxValue:= Table1.RecordCount-Table1.RecNo; end;
Каждое поле НД представляет собой отдельный столбец, для работы с которым в Delphi служат:
объект Field: TField; объекты: TIntegerField,: TFloatField, TStringField (производные от TField). Объекты типа TField являются невизуальными и служат для доступа к данным соответствующих полей записей. Управляя объектами типа TField, можно управлять поведением полей, при этом все объекты полей являются независимыми друг от друга. Например, можно запретить модификацию значения отдельного поля, несмотря на то, что НД в целом является модифицируемым и допускает изменение значений других полей. Кроме того, можно скрыть то или иное поле от пользователя, сделав его невидимым.
Для доступа к объектам TField и, соответственно, к полям записей НД имеет соответствующие методы и свойства.
Свойство FieldCount: nteger указывает количество полей НД. Количество полей НД может отличаться от физического числа полей таблицы БД, поскольку в НД не обязательно включаются все поля таблицы.
Свойство Fields[Index:Integer]: TField – возвращает содержимое указанного в параметре Index поля НД. К отдельному полю можно обратиться, указав его номер Index в массиве Fields. Номера полей изменяются от 0 до FieldCount-1.
Пример.
Edit1.Text:=Table1.Fields[5].AsString; – в компонент Edit1 появится та информация, которая находится в шестом поле НД.
Свойства объекта Field – AsString, AsInteger, AsFloat, AsBoolean позволяют обращаться к значению поля текущей записи как к строковому, целочисленному, вещественному или логическому значению.
Чтобы обращаться к какому-либо полю НД не по его номеру в массиве полей, а по его имени существуют методы FindField и FieldByName. Функция FindField (const FieldName: String): TField возвращает для НД поле, имя которого указано в параметре FieldName. Имя поля, определяемое параметром FieldName, является именем физического поля таблицы БД, заданным при создании таблицы. Если заданное параметром FieldName поле не найдено, то функция FindField возвращает значение Nil. На практике часто используется метод FieldByName, который отличается от метода FindField тем, что если заданное поле не найдено, то генерируется исключительная ситуация.
Свойство Fields и методы FindField и FieldByName наиболее часто используются для доступа к значению поля текущей записи совместно с такими свойствами объекта Field, как AsString, AsInteger, AsFloat или AsBoolean, которые соответственно позволяют обращаться к значению поля как строковому, целочисленному, вещественному или логическому значению.
Практическое задание №3
Выведем на экран общую сумму количества товара (поле Kolvo), общую стоимость каждой единицы товара (поле Cena) и общую стоимость товара (для текущей записи) для таблицы Tovar.db.
Расположите на форме следующие компоненты:
Для кнопок напишите соответствующие процедуры:
procedure TForm1.BitBtn1Click(Sender: TObject); var s:integer; i:longint;
Дата добавления: 2014-11-06; Просмотров: 446; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |