Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

record`ы   Найти похожие ветки 

 
vassal   (2012-03-16 09:06) [0]

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

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


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


 
Dimka Maslov ©   (2012-03-16 09:36) [1]

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


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

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

Row:=TTableRow.Create;


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


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

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


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


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

Спасибо!

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


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

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


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

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


 
begin...end ©   (2012-03-16 18:13) [7]

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.049 c
8-1227079093
Andrey_ka
2008-11-19 10:18
2013.03.22
как заставить окно перерисовываться?


15-1346743469
Dimka Maslov
2012-09-04 11:24
2013.03.22
Бубен не помогает.


15-1339878605
Юрий
2012-06-17 00:30
2013.03.22
С днем рождения ! 17 июня 2012 воскресенье


15-1336837860
dmk
2012-05-12 19:51
2013.03.22
Отпуск


15-1352827685
Artem
2012-11-13 21:28
2013.03.22
Можно вопрос про графы?