Главная страница
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.024 c
3-1078378722
user
2004-03-04 08:38
2004.04.04
Как отобразить данные возвращаемые TADOStoredProc


1-1079177704
Vilux
2004-03-13 14:35
2004.04.04
Динамическое создание компонента


9-1063031401
m2003
2003-09-08 18:30
2004.04.04
Display mode cannot be changed


14-1079075366
Ega23
2004-03-12 10:09
2004.04.04
Зимбабве поймало 64 американских шпиона


6-1075433732
Женя
2004-01-30 06:35
2004.04.04
Появление компа в сети