Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите разобраться с компонентами [D6, Win95/98]


Viacheslav ©   (2002-08-28 12:50:00) 

У меня на форме различные компоненты. Среди них есть компоненты типа DBEdit свойство ReadOnly которых первоначально установлено в True. Как можно поменять для этих компонетов свойство в False?
Заранее благодарен!


Viacheslav   (2002-08-28 13:28:00) [1]

>Skier
Огромное спасибо!)
Первый вариант работает! Дальше постараюсь сам поразбираться.


Skier   (2002-08-28 13:22:00) [2]

>Viacheslav

Примерно так :


procedure SetReadOnlyProp(const AOwner : TComponent;
const ADataSet : TDataSet;
const AValue : Boolean);
var
ii : Integer;
begin
if (AOwner = nil) or (ADataSet = nil) then Exit;
for ii := 0 to AOwner.ComponentCount - 1 do begin
if AOwner.Components[ii] is TDBEdit then begin
with AOwner.Components[ii] as TDBEdit do begin
if (DataSource <> nil) and (DataSource.DataSet <> nil) then begin
if DataSource.DataSet = ADataSet then begin
if ReadOnly <> AValue then ReadOnly := AValue;
end; //if
end; //if
end; //with
end; //if
end; //for
end; //SetReadOnlyProp


Skier   (2002-08-28 13:18:00) [3]

>Viacheslav
Тогда добавь к параметрам ещё и - ADataSet : TDataSet

SetReadOnlyProp(const AOwner : TComponent;
const ADataSet : TDataSet;
const AValue : Boolean);


Viacheslav   (2002-08-28 13:16:00) [4]

>Skier
Спасибо! Попробую.
Немного может доработать придётся т.к. у меня на форме ДБЭдиты различных таблиц, а открывать для редакции надо будет для одной.


Skier   (2002-08-28 13:10:00) [5]

>Viacheslav

Не поможет ?


procedure SetReadOnlyProp(const AOwner : TComponent; const AValue : Boolean);
var
ii : Integer;
begin
if AOwner = nil then Exit;
for ii := 0 to AOwner.ComponentCount - 1 do begin
if AOwner.Components[ii] is TDBEdit then begin
with AOwner.Components[ii] as TDBEdit do begin
if ReadOnly <> AValue then ReadOnly := AValue;
end; //with
end; //if
end; //for
end; //SetReadOnlyProp



//.............



SetReadOnlyProp(Form1, False);


Viacheslav   (2002-08-28 13:08:00) [6]

>Skier А TDataSource.AutoEdit := False; не подойдёт ?

Мне необходимо сделать, что-бы пользователи во время навигации по таблице не могли корректировать данные, поэтому я и включил ReadOnly в True


Viacheslav   (2002-08-28 13:04:00) [7]

>Skier
во время разработки формы, в дизайне.


Skier   (2002-08-28 13:02:00) [8]

>Viacheslav
А TDataSource.AutoEdit := False; не подойдёт ?


Skier   (2002-08-28 12:58:00) [9]

>Viacheslav
Ты эти DBEdit-ы клал на форму в дизайне или
создавал в run-time ?


Viacheslav   (2002-08-28 12:55:00) [10]

Skier
В том то и дело что не могу разобраться как это всё организовать - опыта мало в программирование на делфи, да и литературы почти 0


Skier   (2002-08-28 12:52:00) [11]

>Viacheslav
В цикле пройтись по Owner.Components[...]


Наверх

Титульная страница Поиск, карта сайта Написать письмо