Форум: "Основная";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];
ВнизПерехватывание созданным компонентом событий мыши. Найти похожие ветки
← →
Afonya (2003-07-04 16:15) [0]Добрый день всем мастакам!
Сложилась интересная ситуация с созданием компонента.
Создаю компонент, наследуя его от TChartShape (пакет TeeChartPro v.5), но никак не могу его "обучить" обрабатывание событий мыши (OnMouseMove, OnMouseDown ...)
Не подскажете что здесь не так:
type
TMyShape = class(TChartShape)
private
{ Private declarations }
function GetLeft : real;
function GetTop : real;
function GetWidth : real;
function GetHeigth : real;
procedure SetLeft(const NewLeft : real);
procedure SetTop(const NewTop : real);
procedure SetWidth(const NewWidth : real);
procedure SetHeigth(const NewHeigth : real);
protected
procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN;
procedure _Click(var Message : TMessage); message WM_LBUTTONDBLCLK;
procedure MouseMove(var Message : TMessage); message WM_MOUSEMOVE;
public
constructor Create(AOwner: TComponent); override;
published
property Left : real read GetLeft write SetLeft;
property Top : real read GetTop write SetTop;
property Width : real read GetWidth write SetWidth;
property Heigth: real read GetHeigth write SetHeigth;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents("Samples", [TMyShape]);
end;
{ TMyShape }
constructor TMyShape.Create(AOwner: TComponent);
begin
inherited;
X0 := 0;
Y0 := 0;
Width := 50;
Heigth:= 50;
//OnClick := _Click;
end;
function TMyShape.GetHeigth: real;
begin
Result := odds(Y0,Y1);
end;
function TMyShape.GetLeft: real;
begin
Result := X0;
end;
function TMyShape.GetTop: real;
begin
Result := Y0;
end;
function TMyShape.GetWidth: real;
begin
Result := odds(X0,X1);
end;
procedure TMyShape.MouseMove(var Message: TMessage);
begin
inherited;
with Message do
ShowMessage("XPos = ");
end;
procedure TMyShape.SetHeigth(const NewHeigth: real);
begin
Y1 := Y0 + NewHeigth;
end;
procedure TMyShape.SetLeft(const NewLeft: real);
begin
X0 := NewLeft;
end;
procedure TMyShape.SetTop(const NewTop: real);
begin
Y0 := NewTop;
end;
procedure TMyShape.SetWidth(const NewWidth: real);
begin
X1 := X0 + NewWidth;
end;
procedure TMyShape.WMLButtonDown(var Message: TWMLButtonDown);
begin
inherited;
with Message do
ShowMessage("X = " + IntToStr(XPos));
end;
procedure TMyShape._Click( Sender: TChartSeries; ValueIndex: Integer;
Button: TMouseButton; Shift: TShiftState; x, y: Integer);
begin
ShowMessage("X = " + IntToStr(X));
//SendMessage(Owner.Handle MouseMove)
end;
end.
← →
reonid (2003-07-04 16:27) [1]А в _Click где inherited? -
и вообще, для таких случаев обычно принято
диспетчерские методы TControl.Click, TControl.MouseDown и тд
← →
Afonya (2003-07-04 20:33) [2]Reonid, я имею ввиду, как научить компонент реагировать на мышь, если это от родителя ему не передается.
← →
panov (2003-07-04 21:22) [3]>Afonya (04.07.03 20:33)
Reonid, я имею ввиду, как научить компонент реагировать на мышь, если это от родителя ему не передается.
Ставить обработку всех сообщений в Application. От мышки сообщения обрабатывать - остальные передавть обработчику(как один из вариантов)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c