![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка событий через TActionlist [D6, Win2k]
diabolik_krsk © (2004-10-25 14:09:00)Доброго времени суток уважаемые мастера. У меня следующий вопрос.
На форме размещено 4 компонента TPanel и компонент TActionlist.
В TActionlist пишу обработчик событий и привязываю его к свойству OnClick компонента TPanel.
Однако в обработчике событий не могу определить над какой панелью нажата кнопка мыши.
Пытался обработать if Main.Panel1.OnClick - однако дельфя пишет: недостаточно параметров.
Подскажите как решить данную ситуацию.
diabolik_krsk (2004-11-03 08:04:00) [1]Спасибо. Все работает.
icWasya (2004-10-26 12:24:00) [2]что-то типа так
type
THuckActionLink = class(TControlActionLink) ;
procedure TForm1.Action1OnExecute(Sender:TObject);
var
ThisControl:TControl;
begin
if Sender is TControl
then
ThisControl:=TControl(Sender)
else
if Sender is TControlActionLink
then
ThisControl:=THuckActionLink(Sender).FClient
else
ThisControl:=nil;
// далее работаем с ThisControl
end;
Экспериментатор (2004-10-26 10:14:00) [3]плюс возможно небольшое колдунство с ClientToScreen ScreenToClient
Экспериментатор (2004-10-26 10:09:00) [4]Используй в обработчике событий
GetCursorPos() для определения координат мыши
и function ControlAtPos(const Pos: TPoint; AllowDisabled: Boolean, AllowWinControls:Boolean=False): TControl;
для определения на каким контролом она вообще находится
Ega23 (2004-10-26 09:52:00) [5]Не нашёл... Попробуй Tag свойство использовать.
diabolik_krsk (2004-10-26 05:40:00) [6]Буду благодарен.
Ega23 (2004-10-25 14:15:00) [7]Если у тебя Action, то в качестве Sender ты получаешь TAction.
Можно просто создать метод OnPanelClick(Sender:TObject), присвоить его твоим панелькам. Тогда в качестве Sender ты уже TPanel будешь получать.
Как с Action быть точно не помню, попробую поискать...
Pentium133 (2004-10-25 14:14:00) [8]возможнов в обработчике OnClick параметр Sender и будет как раз нужной панелью