| 
| 
 | Вопрос # 515/ вопрос решён / | 
 |  Здравствуйте, уважаемые эксперты!есть код:
 for i:= 0 to ComponentCount-1 do
 if Components[i] is TDBEditEh then
 begin
 (Components[ai] as TDBEditEh).Color:=clBtnFace;
 (Components[i] as TDBEditEh).ReadOnly:=True;
 end;
 Как его нужно изменить чтобы я мог найти зарание известные компоненты типа TDBEditEh
 тоест например есть 10 компонентов а мне нужны только 4 из них и я знаю их названия??
 
|  |   Вопрос задал: Сидаровский Георгий (статус: Посетитель)Вопрос отправлен: 23 апреля 2007, 11:52
 Состояние вопроса: решён, ответов: 4.
 |  Ответ #1. Отвечает эксперт: Иусов Сергей Ник. Здравствуйте, Сидаровский Георгий!Можно в данном случае поступить немного подругому:
 
 (Form1.FindComponent('Тут_Имя_Которое_Ты _Знаешь') as TDBEditEh).ReadOnly:=False;
 
 и меняй имя компонента в цикле.
 
|  | Ответ отправил: Иусов Сергей Ник. (статус: 3-ий класс)Время отправки: 23 апреля 2007, 11:59
 Оценка за ответ: 5
 |  Ответ #2. Отвечает эксперт: Николай Рубан Это можно произвести например так:
 for i:= 1 to 10 do
 TDBEditEh(FindComponent('DBEdit'+ IntToStr(i))).ReadOnly:=True;
 
 Good Luck!!!
 
|  | Ответ отправил: Николай Рубан (статус: 10-ый класс)Время отправки: 23 апреля 2007, 12:50
 
 |  Ответ #3. Отвечает эксперт: Вадим К Вы же знаете имена компонентов = вот и обращайтесь.Хотя может не хочеться дублировать код для каждого - так это просто - делаем процедуру, которой в качестве параметра передаём компонент
 
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 23 апреля 2007, 14:27
 Оценка за ответ: 4
 |  Ответ #4. Отвечает эксперт: min@y™ А ещё можно свойству Tag всех компонентов TDBEditEh на форме присвоить разные числа (например, от 1 до 10). Затем в цикле перебрать их все и, сравнивая Tag каждого с заданными, менять ReadOnly. См. пример в приложении. Там ищутся гриды с Tag = 2, 5, 7. Приложение:Переключить в обычный режим for i:= 0 to ComponentCount-1 do  if (Components[i] is TDBEditEh) and (TDBEditEh(Components[i]).Tag in [2, 5, 7])     then (TDBEditEh(Components[i]).ReadOnly:= True;
|  | Ответ отправил: min@y™ (статус: Доктор наук)Время отправки: 24 апреля 2007, 08:22
 Оценка за ответ: 5
 |  
 Мини-форум вопросаВсего сообщений: 0. 31 января 2011, 20:00: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5) Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |