Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.04;
Скачать: CL | DM;

Вниз

Одновременное включение свойства readOnly у всех компонентов.   Найти похожие ветки 

 
str   (2002-06-21 21:25) [0]

Есть кнопочка "РЕДАКТИРОВАТЬ", при нажатии на которую все компоненты становятся доступными для редактирования. Как это сделать?


 
Song ©   (2002-06-21 21:55) [1]

FindComponent или цикл для всех (см. TComponent)


 
Юрий Зотов ©   (2002-06-22 02:39) [2]

> Song © (21.06.02 21:55)

Цикл-то, это да, но разве у класса TComponent есть свойство ReadOnly? Нет. Значит, и переключить его без дополнительного анализа класса не получится. Причем анализ этот будет и громоздким, и, саме главное, неуниверсальнгым - если делать его обычным способои. А чтобы он был компактным и универсальным, надо использовать RTTI.


> str (21.06.02 21:25)

В общем, делается это примерно так. Кнопка Button1 переключает значение свойства ReadOnly на обратное для ВСЕХ имеющихся на форме компонентов, у которых это свойство вообще есть и оно published.

uses
..., TypInfo;

procedure TForm1.Button1Click(Sender: TObject);

procedure SwitchReadOnly(Obj: TObject);
var
P: PPropInfo;
begin
P := GetPropInfo(Obj, "ReadOnly");
if P <> nil then SetOrdProp(Obj, P, Integer(not Boolean(GetOrdProp(Obj, P))))
end;

var
i: integer;
begin
for i := 0 to ComponentCount - 1 do SwitchReadOnly(Components[i])
end;



Страницы: 1 вся ветка

Текущий архив: 2002.07.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.009 c
1-9783
I am
2002-06-23 19:02
2002.07.04
Как создать свои кнопки на заголовке формы?


1-9892
Blast
2002-06-22 09:18
2002.07.04
Создание меню в Run-Time


14-9973
VJar
2002-06-02 00:29
2002.07.04
Ищу компоненту или исходник


1-9827
TsvIlya
2002-06-24 14:35
2002.07.04
Писать текст в чужой проге


1-9782
Arsenik
2002-06-23 19:34
2002.07.04
Как извлечь иконки из файла (exe, dll)