Главная страница
    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.46 MB
Время: 0.011 c
2-1151852788
Gizza
2006-07-02 19:06
2006.07.23
Свернуть MainForm


2-1152008547
Dyakon_Frost
2006-07-04 14:22
2006.07.23
Вывести список файлов в директории!


15-1150788242
SergeyG
2006-06-20 11:24
2006.07.23
А будет ли на КарманномПК работать программа,


15-1150983500
QuasiLamo
2006-06-22 17:38
2006.07.23
MS Outlook - создание правил


3-1147188386
demon81
2006-05-09 19:26
2006.07.23
Переподключение к MS SQL Server при ошибке





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский