Главная страница
    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-27175
Абакумыч
2002-08-13 22:03
2002.09.09
Высота панели задач!


1-27008
xyz
2002-08-22 02:10
2002.09.09
Integer прописью


1-26976
mike.dld
2002-08-29 15:23
2002.09.09
Stretch


4-27287
Alexander
2002-07-06 02:38
2002.09.09
Как можно средствами API создать что-то подобное SpeedButton


1-27052
Sergey V. Shadrin
2002-08-28 07:31
2002.09.09
консольное приложение





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