![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите разобраться с компонентами [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[...]