Главная страница
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.044 c
3-1078902392
HeoGtan
2004-03-10 10:06
2004.04.04
Как (для BDE) - определить в БД [PARADOX]:


3-1078402300
Pancha
2004-03-04 15:11
2004.04.04
естьтакой запросик


11-1058947455
IronWit
2003-07-23 12:04
2004.04.04
Как пользоватся сплиттером


1-1079334482
DimaLos
2004-03-15 10:08
2004.04.04
Как перемещать форму удерживая за любое свободное на ней место?


3-1078491985
atmospheric
2004-03-05 16:06
2004.04.04
как открыть dbf файл ?