Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.007 c
14-27214
Nikolay
2002-08-15 14:03
2002.09.09
W2k


3-26860
GIL
2002-08-19 03:02
2002.09.09
Порча индексного файла


4-27281
bytebutcher
2002-07-19 16:56
2002.09.09
Как в DLL узнать PID процесса вызвавшего из этой DLL функцию


7-27251
Alex Krupnitskiy
2002-06-28 13:33
2002.09.09
Несовместимость Delphi 5 с Windows 95 и NT


3-26924
Vikuksa
2002-08-20 15:43
2002.09.09
ADOQuery





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