информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Портрет посетителяВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Об этом я както сам догодался, а как с ним работать? 05.06.03 12:19  Число просмотров: 1154
Автор: ASJinx Статус: Незарегистрированный пользователь
<"чистая" ссылка>
<programming>
Обработка событий динамически созданного объекта 04.06.03 16:05  
Автор: ASJinx Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Делаю динамически панельки (в массив Mpanel) вешаю их на на процедуру MyPanelClk
обработки события onMouseClick. Как мне в этой процедуре можно узнать на какую
панель было произведено нажатие? И как мне с ней что либо сделать?


Var
...
MPanel: array of TPanel;
PanelCount: byte;
...

procedure TForm1.MyPanelClk(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin

...

end;

...
setlength(Mpanel,i+1); // здесь i=PanelCount - количеству
уже созданных панелей или 0 в противном случае
Mpanel[i]:=TPanel.Create(Self);
Mpanel[i].Parent:=self;
Mpanel[i].OnMouseDown:=MyPanelClk;
Mpanel[i].Width:=x;
Mpanel[i].Left:=y;
Mpanel[i].Top:=z;
Mpanel[i].Height:=t;

...
[Pascal] Обработка событий динамически созданного объекта 06.06.03 13:20  
Автор: Namor Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Делаю динамически панельки (в массив Mpanel) вешаю их на на
> процедуру MyPanelClk
> обработки события onMouseClick.
>Как мне в этой процедуре можно узнать на какую панель было роизведено >нажатие?
При создании делаешь так:
Mpanel[i].Tag:=i;
При обработке:
TPanel(Sender).Tag - сие есть номер элемента в массиве

[wbr]
параметр Sender в обработчике это и есть твоя панель 04.06.03 17:09  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
Об этом я както сам догодался, а как с ним работать? 05.06.03 12:19  
Автор: ASJinx Статус: Незарегистрированный пользователь
<"чистая" ссылка>
[Pascal] Как с объектом типа TPanel 05.06.03 12:56  
Автор: ZloyShaman <ZloyShaman> Статус: Elderman
<"чистая" ссылка>
Раз такой умный, то попробуй поработать с ним как с объектом типа TPanel 05.06.03 14:45  
Автор: ASJinx Статус: Незарегистрированный пользователь
<"чистая" ссылка>
А что преобразование типов уже отменили ??? TPanel(Sender) 05.06.03 14:56  
Автор: Cyril <sc> Статус: Member
<"чистая" ссылка>
Понял, все. Работает 06.06.03 09:49  
Автор: ASJinx Статус: Незарегистрированный пользователь
Отредактировано 06.06.03 10:21  Количество правок: 1
<"чистая" ссылка>
это вообще то указатель, как и многие T**** переменные в делфи. 06.06.03 10:13  
Автор: Killer{R} <Dmitry> Статус: Elderman
Отредактировано 06.06.03 10:15  Количество правок: 1
<"чистая" ссылка>
в билдере это все прозрачнее- параметр записывается как TObject *Sender
[Pascal] Спокойно. 05.06.03 14:55  
Автор: ZloyShaman <ZloyShaman> Статус: Elderman
<"чистая" ссылка>
Объясни тольком, что у тебя не получается?

Боюсь показаться уж слишком умным, но попробуй использовать конструкцию (Sender as TPanel).
Даааа, долго пришлось добиваться 2-х простых слов 05.06.03 15:50  
Автор: ASJinx Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Не ворчи, а поучись правильно задавать вопросы. 05.06.03 15:56  
Автор: ZloyShaman <ZloyShaman> Статус: Elderman
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach