Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.055 c