Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];

Вниз

Хитрое свойство   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.013 c
15-1150880370
Layner
2006-06-21 12:59
2006.07.23
Отправка SMS от любого номера


15-1150787034
Иксик
2006-06-20 11:03
2006.07.23
Российская пресса завоевывает международную аудиторию :)))


3-1148030407
stud
2006-05-19 13:20
2006.07.23
в продолжение вчерашней проблемы с ADO


3-1148280939
Ironman83
2006-05-22 10:55
2006.07.23
Ошибка при посте с автоинкрементным полем


2-1151256162
Юнкер
2006-06-25 21:22
2006.07.23
try except как способ выбора





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский