Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

record`ы


vassal ©   (2012-03-16 09:06:00) 

Нужно задать значения по умолчанию полям записи:

type TTableRow = record
Operation,
PlaceInd,
PlaceOPC,
Attrib:String[255];
empty,
error:boolean;
end;


Можно ли это сделать при объявлении типа, или нужно писать обработчик OnCreate? Как?(покажите пожалуйста на примере)


CRLF   (2012-03-16 19:05:00) [1]

Прикольно... Даже не знал, что можно часть полей в типизированной константе оставить неинициализированными.


begin...end   (2012-03-16 18:13:00) [2]

const
 ConstRow: TTableRow =
   (Operation: 'всё будет хорошо'; Attrib: 'и даже ещё лучше'; Empty: True; Error: False);
var
 Row: TTableRow;
begin
 // установка значений полей по умолчанию
 Row := ConstRow;
 // установка значений других полей
 Row.PlaceInd := ...;
end


vassal   (2012-03-16 17:56:00) [3]

Так и думал что дело в работе с памятью. Спасибо.


CRLF   (2012-03-16 17:44:00) [4]

вкратце, потому, что освобождать память должен тот, кто её выделил.


vassal   (2012-03-16 11:44:00) [5]

Спасибо!

А почему
> С функциями, возвращающими значения структурированного типа,
>  надо быть осторожным.
?


CRLF   (2012-03-16 11:27:00) [6]

В последних версиях делфи можно record'у сделать конструктор.


> Row:=InitTableRow;
Лучше InitTableRow(var ARow: TTableRow). С функциями, возвращающими значения структурированного типа, надо быть осторожным.


vassal   (2012-03-16 11:14:00) [7]

Можно ли сделать OnCreate для своего типа (record), чтобы писать:

Row:=TTableRow.Create;


или лучше/проще написать функцию для присвоения дефолтных значений:
Row:=InitTableRow;


Dimka Maslov   (2012-03-16 09:36:00) [8]

При объявлении типа нельзя. Только при объявлении переменной.


Наверх

Титульная страница Поиск, карта сайта Написать письмо