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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2009, 18:55   #1
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию Обращение через TComponent

Всем доброго времени суток!

Подскажиет пожалуйста каким образом через TComponent можно обращаться, например, к ко всем лэйблам лежащим на панели?
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 07.12.2009, 19:34   #2
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Цитата:
Сообщение от Marsel737 Посмотреть сообщение
Всем доброго времени суток!

Подскажиет пожалуйста каким образом через TComponent можно обращаться, например, к ко всем лэйблам лежащим на панели?
Так:
Код:
for i:=1 to 6 do
  begin
    cp:=FindComponent('Label'+IntToStr(i));
    (cpt as Label).Caption:='';
  end;
или так:
Код:
for i:=0 to componentcount-1 do
    if (Components[i].Name = 'Label1') then
    (components[i] as TControl).caption:='';
dr.Chas вне форума Ответить с цитированием
Старый 07.12.2009, 20:47   #3
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

dr.Chas, спс, кое что начинает проясняться. Только я имел в виду немного другое, у меня есть пять лэйблов и нужно для всех этих лэйблов написать одну процедуру, которая для всех них обрабатывала бы событие OnClick. А есл конкретнее, нужно загружать из файла текст в мемо, в зависимости от выбранного лэйбла, причем должно быть реализовано ч/з TComponent
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 07.12.2009, 21:33   #4
DarkEvil
Форумчанин
 
Аватар для DarkEvil
 
Регистрация: 08.05.2009
Сообщений: 247
По умолчанию

Код:
(components[i] as TLabel).OnClick := proc_name
Мой сайт
Цитата:
Сообщение от Scream In Darkness
Кровь не даёт покоя! Кровь не знает сна!
Кровь бежит на волю – Вены рвёт сама!
DarkEvil вне форума Ответить с цитированием
Старый 08.12.2009, 08:09   #5
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

а в инспекторе объектов, на вкладке события, нельзя поставить руками процедуру?

просто не понятна логика зачем гонят всё через цикл.. когда можно поставить так
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 08.12.2009, 21:46   #6
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

BARNEY, если честно, мне логика такая тоже непонятна, я написал одну универсальную процедуру которая, которая открывает определенный текст в мемо, меняет шрифт у выбранного лэйбла, загружает определенные картинки и т.д.,в зависимости от i, а уже у каждого лэйбла на OnClick прописал:

Код:
procedure TfrmBook.lblPoint1Click(Sender: TObject);
begin
  i:=1;
  frmBook.OpenLabel;
end;
Зато препод сказал что лучше делать не так, а обращатся к лэйблам на панели, как к потомкам панели.

А вот как это так обращатся я не знаю, может кто поможет, там примерная конструкция должна быть вот такой:

Код:
...
if потомок in предок then
...
Это мне так на словах объяснили.
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 08.12.2009, 21:54   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Можно и так:
Код:
procedure TForm1.Label1Click(Sender: TObject);
begin
if (Sender as TLabel).Parent=Panel1 then
Label2.Caption:=(Sender as TLabel).Caption;
end;
mihali4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обращение к элементам двумерного массива через указатели в С++ серг Помощь студентам 17 06.12.2009 18:00
обращение к элементам двумерного массива через указатели серг Общие вопросы C/C++ 2 05.12.2009 23:33
Обращение к элементам массива через указатель в С++ серг Помощь студентам 1 24.11.2009 01:30
обращение к элементам двумерного массива через указатели в С ++ серг Помощь студентам 0 23.11.2009 22:43