Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.027 c
1-1149181476
parovoZZ
2006-06-01 21:04
2006.07.23
Фон. Ну хотя бы на канве


15-1150770612
Гриха(пароль забыл)
2006-06-20 06:30
2006.07.23
Чат для локалки


15-1150975443
NailMan
2006-06-22 15:24
2006.07.23
Нужна прога для передачи файлов...


15-1151160348
Gbp
2006-06-24 18:45
2006.07.23
Неудобный отчет по утечкам памяти в BDS2006.


2-1151845021
Gizza
2006-07-02 16:57
2006.07.23
Приоритет программы