Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Компонент на компоненте   Найти похожие ветки 

 
Karlson ©   (2004-03-11 12:11) [0]

Добрый день. Такая ситуация. На форме размещено несколько панелей, некоторые одна над другой размещены. Необходимо при клике на любой из них выполнять одно действие. На каждую панель навешивать действие не хочется, как их объединить или вообще как решить данную проблему? Спасибо


 
TUser ©   (2004-03-11 12:18) [1]

Назначить всем событиям один и тот же обработчик. В Object inspector"е нажать стрелку вниз и выбрать нужную процедуру.


 
TransparentGhost   (2004-03-11 12:19) [2]

Nu tak kazhdoj naznach odnu i tu zhe proceduru...
Nu i Sender ispol"zuj pri neobhodimosti


 
Serge ©   (2004-03-11 12:21) [3]

Ну типа
procedure TForm1.ClickOnPanel(Sender : TObject)
begin

if Sender = Panel1 then ...
if Sender = Panel2 then ...
  либо
Case TPanel(Sender).Tag of
1: ...;
2: ...;
3: ...;
end;

end;

And for each TPanel You must write
TPanel.OnClick:=ClickOnPanel;
where each TPanel comp. have assigned a Tag, Caption or something else.


 
KSergey ©   (2004-03-11 12:55) [4]

> [3] Serge ©   (11.03.04 12:21)

Зачем проверять какая понель, если действие одинаковое? (если одинаковое, конечно)

procedure TForm1.ClickOnPanel(Sender : TObject)
begin
 with Sender as TPanel do
 begin
   Caption := "Panel name=" + Name;
   .....
 end;
end;


 
Serge ©   (2004-03-11 13:11) [5]

> KSergey ©   (11.03.04 12:55) [4]
Ну-у-у дык, автору видней, сам уже пусть выбирает, благо есть из чего :)


 
Я ©   (2004-03-11 13:31) [6]

if (Sender is TPanel) then
 with Sender as TPanel do

Мало ли...


 
Karlson ©   (2004-03-11 13:48) [7]

Всем спасибо за советы - очень пригодились. Теперь есть еще одна проблема. Кроме панелей на форме есть Bevelы, а у них нет свойства Clik...


 
KSergey ©   (2004-03-12 14:58) [8]

> Я ©   (11.03.04 13:31) [6]
> if (Sender is TPanel) then
>  with Sender as TPanel do
> Мало ли...

Мало ли что?? Вы описание as читали?? Похоже - нет.


 
TransparentGhost   (2004-03-12 16:05) [9]

KSergey ©   (12.03.04 14:58) [8]

a poprobuj poves" etu proceduru na edit ili kakoj drugoj komponent i posmotrim kak tebja AS spasjot.
Tak chto "Мало ли..." vsjo zhe bivajet.


 
KSergey ©   (2004-03-12 16:12) [10]

>  [9] TransparentGhost   (12.03.04 16:05)

Так, я не понял, вы as применяли в таких случаях? Честно? При несовпадении классов что происходит в run-time знаете?


 
TransparentGhost   (2004-03-12 16:19) [11]

Proboval...primenjal...ne pomnju tochno, no viletala oshibka tipa ne vernij klass ili tipa togo.


 
TransparentGhost   (2004-03-12 16:25) [12]

Vo ... "Invalid class typecast" poluchajeca.


 
serge ©   (2004-03-12 16:45) [13]

> TransparentGhost

Так эта пр...ра была написана для TPanel жестко, зачем же ее пробовать вешать на TEdit ? ИМХО KSergey © прав - в данном случае можно и не проверять принадлежность сендера к TPanel


 
TransparentGhost   (2004-03-12 16:57) [14]

Jesli dlja zhostko -  ne nado proverjat", a jesli net - tadi zhelatel"no.


 
serge ©   (2004-03-12 17:01) [15]

> TransparentGhost   (12.03.04 16:57) [14]

Не-е-е-е, не "желательно" а "обязательно" (не мона а нуно) :)


 
TransparentGhost   (2004-03-12 17:04) [16]

a luchshe prosto smotret" jest" li u komponenta svojstvo i izmenjat" jego ... togda pofig kakogo on tipa :o)


 
Rem ©   (2004-03-12 17:12) [17]

2 KSergey

> Я ©   (11.03.04 13:31) [6]
> if (Sender is TPanel) then
>  with Sender as TPanel do
> Мало ли...

> Мало ли что?? Вы описание as читали?? Похоже - нет.


Ваши аргументы?


 
serge ©   (2004-03-12 17:13) [18]

Это когда уж очень сильно надо :)
Все а то господа модераторы отошлют в трепалку.


 
KSergey ©   (2004-03-17 06:17) [19]

> Rem ©   (12.03.04 17:12) [17]
> > Я ©   (11.03.04 13:31) [6]
> > if (Sender is TPanel) then
> >  with Sender as TPanel do
> > Мало ли...
>
> > Мало ли что?? Вы описание as читали?? Похоже - нет.
>
> Ваши аргументы?

Какие аргументы нужны, я не понимаю??
Либо

with Sender as TPanel do

либо

if Sender is TPanel then
with TPanel(Sender) do


А иначе проверка на принадлежность к TPanel 2 раза!! (в is и as, если кто еще не понял) Зачем?? Какие еще аргументы вам надо?



Страницы: 1 вся ветка

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.026 c
7-1074459243
Thor
2004-01-18 23:54
2004.04.04
переделка схемы для порта.


4-1075366573
barby
2004-01-29 11:56
2004.04.04
Удаление непустой директории


1-1079465653
Destroyer
2004-03-16 22:34
2004.04.04
Поиск Edit-а на форме


1-1079421746
Nataly
2004-03-16 10:22
2004.04.04
Delphi 7 больше нет QuickReport???


1-1079145958
Александр1
2004-03-13 05:45
2004.04.04
Работа с TabControl1