
50 
 
Автоматически создаваемые объекты имени не имеют — их свойство Name 
пусто. Поэтому для них обращение по имени невозможно. 
Среди рассмотренных способов доступа к полям наиболее быстрым, конечно, 
является  доступ  по  имени  объекта.  Его  недостатком является  жесткая  кодировка 
поля, к которому производится обращение. Если надо, чтобы строка кода в разных 
ситуациях обращалась к разным полям, то надо использовать или доступ по индексу 
Fields[i] (тогда индекс i можно сделать переменным), или по имени поля методом 
FieldByName(s) (переменную s можно сделать переменной). 
Вы уже видели множество свойств объектов класса TField и производных от 
них.  Это  свойства  Read-Only, DisplayLabel, CustomConstraint  и  многие  другие. 
Сейчас рассмотрим, как добраться до главного свойства объекта — хранящегося в 
нем значения поля текущей записи. 
Значение поля хранится в свойстве Value. Тип этого свойства определяется 
типом  поля.  Например,  Tablel.FieldByName('Fam').Value  —  это  строка,  a 
Tablel.FieldByName('Year_b').Value — это целое число. 
Имеется  также  ряд  свойств,  переводящих  один  тип  значений  в  другой. 
Например,  свойство  AsString  переводит  тип  любого  поля  в  строку  при  чтении 
значения  поля,  и  осуществляет  обратный  перевод  строки  в  тип  поля  при  записи 
значения поля. Например, вы можете написать 
EDep.text := Tablel.FieldByName('Dep').AsString; 
EYear.text := Tablel.FieldByName('Year_b').AsString; 
ESex.text := Tablel.FieldByName('Sex').AsString; 
и  в  окна редактирования EDep, EYear  и  ESex будут  занесены  в текстовом 
виде значения в текущей записи полей Dep, Year_b и Sex, хотя поле Dep имеет тип 
строки, поле Yearjb — целое значение, а поле Sex — булево. Если для поля Sex вы 
не  задавали  значений  DisplayValues,  то  в  окне  редактирования  ESex  будут 
отображены 
Значения «true»  или «false».  Если  же  вы  задали  значения  свойства 
DisplayValues,  например «м;  ж» или «мужск;  женск», то  отобразятся именно  эти 
заданные значения. 
То  же  свойство  AsString  работает  и  как  обратное  преобразование  типов. 
Продолжая  предыдущий  пример  вы  можете  после  того,  как  пользователь 
отредактировал значения в полях редактирования EDep, EYear и ESex, внести эти 
значения в текущую запись, например, следующим кодом: 
Tablel.Edit; 
Tablel.FieldByName('Dep').AsString:=EDep.text; 
Tablel.FieldByName('Year_b').AsString:=EYear.text; 
Tablel.FieldByName('Sex').AsString := ESex.text; Tablel.Post; 
Для полей Year_b и Sex текст будет преобразован соответственно в целое и 
булево значение. При этом не обязательно, чтобы пользователь в окне ESex писал 
полностью обозначение пола сотрудника. 
Ему  достаточно  написать  только  первую  букву: «t»  или «f»,  если 
отображаемые значения true и false, и «м» или «ж», если отображаемые значения 
«мужск» и «женск».