Форум: "Основная";
Текущий архив: 2002.09.09;
Скачать: [xml.tar.bz2];
ВнизПомогите разобраться с компонентами Найти похожие ветки
← →
Viacheslav (2002-08-28 12:50) [0]У меня на форме различные компоненты. Среди них есть компоненты типа DBEdit свойство ReadOnly которых первоначально установлено в True. Как можно поменять для этих компонетов свойство в False?
Заранее благодарен!
← →
Skier (2002-08-28 12:52) [1]>Viacheslav
В цикле пройтись по Owner.Components[...]
← →
Viacheslav (2002-08-28 12:55) [2]Skier
В том то и дело что не могу разобраться как это всё организовать - опыта мало в программирование на делфи, да и литературы почти 0
← →
Skier (2002-08-28 12:58) [3]>Viacheslav
Ты эти DBEdit-ы клал на форму в дизайне или
создавал в run-time ?
← →
Skier (2002-08-28 13:02) [4]>Viacheslav
А TDataSource.AutoEdit := False; не подойдёт ?
← →
Viacheslav (2002-08-28 13:04) [5]>Skier
во время разработки формы, в дизайне.
← →
Viacheslav (2002-08-28 13:08) [6]>Skier А TDataSource.AutoEdit := False; не подойдёт ?
Мне необходимо сделать, что-бы пользователи во время навигации по таблице не могли корректировать данные, поэтому я и включил ReadOnly в True
← →
Skier (2002-08-28 13:10) [7]>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:16) [8]>Skier
Спасибо! Попробую.
Немного может доработать придётся т.к. у меня на форме ДБЭдиты различных таблиц, а открывать для редакции надо будет для одной.
← →
Skier (2002-08-28 13:18) [9]>Viacheslav
Тогда добавь к параметрам ещё и - ADataSet : TDataSet
SetReadOnlyProp(const AOwner : TComponent;
const ADataSet : TDataSet;
const AValue : Boolean);
← →
Skier (2002-08-28 13:22) [10]>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
← →
Viacheslav (2002-08-28 13:28) [11]>Skier
Огромное спасибо!)
Первый вариант работает! Дальше постараюсь сам поразбираться.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.09.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c