Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2009, 06:26   #1
AHTuKiLLeR
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 15
По умолчанию Поиск компонентов по имени

Для простоты восприятия пример.
На форме 3 компоненты TPanel с именами Panel1, Panel2, Panel3.
Так же есть 2 поля Edit и кнопка.
Необходимо чтобы по нажатию кнопки, панели, с именем вписанным в Edit1, присвоился текст (Caption) из Edit2.

Заранее благодарен за подсказки.
AHTuKiLLeR вне форума Ответить с цитированием
Старый 02.06.2009, 06:42   #2
BaronTreep
Форумчанин
 
Регистрация: 29.05.2009
Сообщений: 320
По умолчанию

Код:
if Edit1.Text = 'Panel1' then Panel1.Caption := Edit2.Text;
if Edit1.Text = 'Panel2' then Panel2.Caption := Edit2.Text;
if Edit1.Text = 'Panel3' then Panel3.Caption := Edit2.Text;
^_^

/*
Надеюсь вопроса про произвольное количество панелей не будет? Имя (Panel.Name) панели в готовой програме не определено, записан класс TPanel, Caption */

Последний раз редактировалось Stilet; 02.06.2009 в 07:53.
BaronTreep вне форума Ответить с цитированием
Старый 02.06.2009, 07:04   #3
AHTuKiLLeR
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 15
По умолчанию

омг. Это не наш метод. У меня в проекте около 100 компонентов панелей. И я хочу узнать есть более гибкий метод обращения к компоненту зная его имя(в стринговом формате), а не прямым доступом как описано выше.
AHTuKiLLeR вне форума Ответить с цитированием
Старый 02.06.2009, 07:33   #4
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Как-то так
Код:
var
  i: integer;
begin
  for i := 0 to Form1.ComponentCount - 1 do
  begin
    if Form1.Components[i] is TPanel then
    begin
      if (Form1.Components[i] as TPanel).Name = Edit1.Text
      then (Form1.Components[i] as TPanel).Caption := 'ПРЕВЕД!!!';
    end;
  end;
end;
Баламут вне форума Ответить с цитированием
Старый 02.06.2009, 07:39   #5
BaronTreep
Форумчанин
 
Регистрация: 29.05.2009
Сообщений: 320
По умолчанию

Ну надо было сразу говорить:

Код:
var
   X : array [1..100] of TPanel;

...
procedure TForm1.InitPanelArray;
begin
 X[1]:=Panel1;
 X[2]:=Panel2;
 X[3]:=Panel3;
 ...
end;

procedure TForm1.Find;
var
  S : string;
  ind : Byte;
begin
  S := Edit1.Text;
  If Pos('Panel', S)<>0 then
    Delete(S,0,5);
    ind := StrToInt(S);   // если это чило
    X[ind] := Edit2.Text;
end;
end;
BaronTreep вне форума Ответить с цитированием
Старый 02.06.2009, 07:40   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

прямо из заголовка темы
поиск (find) компонет (component) = findcomponent
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 02.06.2009, 07:48   #7
AHTuKiLLeR
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 15
По умолчанию

Спасибо. Это оно самое
AHTuKiLLeR вне форума Ответить с цитированием
Старый 02.06.2009, 07:56   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Уточню:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var c:TPanel;
begin
 c:=TPanel(FindComponent(Edit1.Text));
 if c<>nil then c.Caption:=Edit2.Text;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск компонентов на форме Des Общие вопросы Delphi 10 29.04.2009 11:17
Задача на поиск и вывод компонентов stscolt Помощь студентам 1 11.04.2009 14:58
Поиск по имени столбца и сложение строки по найденным столбцам mihakr Microsoft Office Excel 2 12.03.2009 13:35
Заполнение таблицы и поиск имени Gwynbleidd Общие вопросы C/C++ 0 12.10.2008 16:43
TTreeView поиск по имени Родион Компоненты Delphi 6 05.05.2008 14:07