Форум: "Начинающим";
Текущий архив: 2007.07.01;
Скачать: [xml.tar.bz2];
Внизarray of Timage Найти похожие ветки
← →
webpauk (2007-06-08 13:31) [0]есть массив картинок.
надо:
1. отследить на какую кликнули - реализовано
2. отследить как кликнули (ShiftState) - выполнимо
3. Отледить если кликнули не на картинку (куда-угодно в пределах Parent-componenta) - неизвестно
← →
webpauk (2007-06-08 13:34) [1]я так полагаю надо отловить какое-то сообщение типа WM_
← →
Сергей М. © (2007-06-08 13:35) [2]
> куда-угодно в пределах Parent-componenta
Parent-компонент - это наследник TControl.
Любой наследник TControl возбуждает событие OnClick при клике на нем.
В чем же проблема ?
← →
webpauk (2007-06-08 13:36) [3]
> Сергей М. © (08.06.07 13:35) [2]
не хочется писать обработчик для каждого parenta Onclick
лучше было бы реализовать наследника Timage, который отслеживает Click вне пределов компонента
← →
webpauk (2007-06-08 13:37) [4]не хочется писать обработчик Onclick для каждого parenta, так
← →
Правильный Вася (2007-06-08 13:44) [5]
> не хочется писать обработчик Onclick для каждого parenta
один на всех не подойдет?
← →
webpauk (2007-06-08 13:50) [6]блин, хочется реализовать наследника Timage, который отслеживает Click вне пределов компонента
← →
Сергей М. © (2007-06-08 13:58) [7]
> webpauk (08.06.07 13:50) [6]
imho, блажь.
Уж если не нравится единый обработчик OnClick для всех контролов, то чем тогда не угодила обработка Application.OnMessage ? Через это событие проходит подавляющее большинство сообщений, в т.ч. мышиных ...
← →
Правильный Вася (2007-06-08 14:05) [8]
> webpauk (08.06.07 13:50) [6]
а запуск северокорейских ракет он не должен отслеживать?
← →
b z (2007-06-08 14:19) [9]
> webpauk (08.06.07 13:50) [6]
можно наверное через Parent.WindowProc
← →
webpauk (2007-06-08 14:32) [10]
> b z (08.06.07 14:19) [9]
а какой message отлавливать?
← →
b z (2007-06-08 14:36) [11]
> webpauk (08.06.07 14:32) [10]
ну это по обстоятельствам, я ж не знаю что у вас там происходит
к примеру WM_LBUTTONDOWN
← →
clickmaker © (2007-06-08 14:46) [12]
> хочется реализовать наследника Timage, который отслеживает
> Click вне пределов компонента
а что он при этом должен делать?
← →
webpauk (2007-06-08 15:12) [13]
> b z (08.06.07 14:36) [11]
нужно отловить WM_LBUTTONDOWN ВНЕ компонента!!!
← →
homm © (2007-06-08 15:15) [14]> нужно отловить WM_LBUTTONDOWN ВНЕ компонента!!!
Тебе уже как минимум 2 способа сказали.
См. [9], [7];
← →
webpauk (2007-06-08 15:18) [15]
> homm © (08.06.07 15:15) [14]
я согласен на Parent.WindowProc
какой месс ловить для click вне компонента
← →
webpauk (2007-06-08 15:20) [16]упс...
извиняюсь
WM_LBUTTONDOWN и надоть ловить
← →
b z (2007-06-08 15:32) [17]
> извиняюсь
ну хорошо хоть так :)
← →
webpauk (2007-06-08 15:37) [18]извиняюсь за тупость, нада помощ:
TImageEx = class(TImage)
...
protected
procedure NewParentWndPrc(var Msg: TMessage);
end;
var
OldParentWndPrc: TWndMethod;
constructor TImageEx.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
OldParentWndPrc:=TWinControl(AOwner).WindowProc;
TWinControl(AOwner).WindowProc:=NewParentWndPrc;
end;
procedure TImageEx.NewParentWndPrc(var Msg: TMessage);
begin
case msg.Msg of WM_LBUTTONDOWN: DoSomthing;
end;
OldParentWndPrc(Msg); - ???
end;
здесь происходит stackoverflow
как правильно?
← →
webpauk (2007-06-08 15:42) [19]дополнение: есть array of TimageEx
и соответс при каждом создании TimageEx - происходит
OldParentWndPrc:=TWinControl(AOwner).WindowProc;
TWinControl(AOwner).WindowProc:=NewParentWndPrc;
может в консерватории что-то поменять?
← →
clickmaker © (2007-06-08 15:47) [20]а что, кроме имиджей и формы ничего нет? то есть юзер обречен щелкнуть либо по имиджу, либо по форме без вариантов?
← →
webpauk (2007-06-08 15:53) [21]есть
но! ловить click надо только в пределах parent component
собственно говоря, засунул array в class, а уже классу присобачил Parent.WindowProc
единств. вопрос остался:
состояние shift и ctrl какими константами определяется?
эмпирически Msg.wparam=5(9)
а как правильнее записать эти 5 и 9?
← →
b z (2007-06-08 16:12) [22]
> OldParentWndPrc:=TWinControl(AOwner).WindowProc;
TImageEx.Create(nil);
> состояние shift и ctrl какими константами определяется?
смотрите в недрах vcl (units: Windows, Messages)
← →
webpauk (2007-06-08 16:14) [23]
> b z (08.06.07 16:12) [22]
гы...
я хотел по простому
от вас узнать-с
← →
b z (2007-06-08 16:21) [24]
> от вас узнать-с
а программу не написать за вас? ;)
← →
webpauk (2007-06-08 16:49) [25]
> b z (08.06.07 16:21) [24]
гы...
неа
мне самому по приколу
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.07.01;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.005 c