Текущий архив: 2006.07.23;
Скачать: CL | DM;
Вниз
Хитрое свойство Найти похожие ветки
← →
Apollon_604 (2006-07-03 16:55) [0]Привет. Вопрос, по-моему, достаточно тривиальный, но как-то у меня не получается его решить.
Итак, есть тип:
type
TMLogLayer = record
Name: String;
Visible: Boolean;
end;
есть поле:
private
fLayers: array[0..1] of TMLogLayer;
необходимо описать свойство для доступа к этому полю:
public
property Layers[AIndex: Word]: TMLogLayers read GetLayers write ???;
так, чтобы можно было написать, например
MyForm.Layers[0].Visible := True;
Как должна выглядеть процедура для записи?
И можно ли решить этот вопрос каким-либо другим методом (например, с помощью указателей)?
← →
Плохиш © (2006-07-03 17:05) [1]
> public
> property Layers[AIndex: Word]: TMLogLayers read GetLayers write SetLayers;
Потом жмёшь Shft+Ctr+C и радуешься результату
← →
Плохиш © (2006-07-03 17:11) [2]Фу, блин, не так прочитал :-(
function TForm1.GetLayers(AIndex: Word): TMLogLayer;
begin
Result := fLayers[AIndex];
end;
Разве не делает то что надо?
← →
Apollon_604 (2006-07-03 17:18) [3]Она-то делает... Как должна выглядеть процедура
SetLayers
?
← →
Reindeer Moss Eater © (2006-07-03 17:24) [4]Как процедура с одним целочисленным параметром.
← →
Apollon_604 (2006-07-03 17:27) [5]
> Как процедура с одним целочисленным параметром.
А в теле что должно быть?
← →
MBo © (2006-07-03 17:32) [6]SetLayers позволит устанавливать только запись целиком. Для доступа к отдельному полю на чтение работает GetLayers, а вот записать поле так не выйдет. Возможно, стоит сделать два отдельных индексированных свойства для полей
← →
Apollon_604 (2006-07-03 17:42) [7]
> SetLayers позволит устанавливать только запись целиком.
> Для доступа к отдельному полю на чтение работает GetLayers,
> а вот записать поле так не выйдет.
Вот в этом-то все и дело... :(((
← →
MBo © (2006-07-03 17:45) [8]>Вот в этом-то все и дело... :(((
Два отдельных свойства не нравится?
← →
Джо © (2006-07-03 18:22) [9]Ну, еще можно предложить сделать TMLogLayer классом. Если это подходит, конечно.
← →
ЮЮ © (2006-07-04 03:13) [10]public
property LayerName[AIndex: Word]: string ...
property IsLayerVisible[AIndex: Word]: boolean ...
Страницы: 1 вся ветка
Текущий архив: 2006.07.23;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.011 c