Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: CL | DM;

Вниз

События для собственных компанент!!!   Найти похожие ветки 

 
Помогите!!плиз   (2004-03-08 09:48) [0]

Здраствуйте !!!

Есть компанента наследованная от TPanel, полем на этой компаненте заведен Image, далее я переопределяю событие MouseDown панели , как это событие присвоить(переопределить) событию MOuseDown у Image в компаненте, может кто сталкивался помогите ?
вот исходный код!!!

unit MyComp;

interface

uses
 SysUtils, Classes, Controls, ExtCtrls, Windows, Dialogs,
 Messages, Variants, Graphics, Forms, Menus, ComCtrls, StdCtrls, MyImage;
type
 TMyComp = class(TPanel)
  private
  FImage : TImage;
  ........
 public
  constructor create(AOwner : TComponent); override;
  destructor done;

 published
 procedure MouseDown (Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;  end;
procedure Register;

implementation

  constructor TMyComp.create(AOwner : TComponent);
    begin
    inherited Create(AOwner);
    Width := 80;
    Height := 80;
    Fimage := TImage.Create(Self);
    FImage.Parent := Self;
    FImage.Align := alclient;
    FImage.Visible:= True;
    FImage.Picture.LoadFromFile("c:\Documents and Settings\Senator\My Documents\My Pictures\untitled.bmp");
    end;

  destructor TMyComp.done;
    begin
    FImage.Destroy;
    inherited Destroy;
    end;

 procedure TMyComp.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
 const
   SC_DragMove = $F012;
 begin
   inherited MouseDown(Button, Shift, X, Y);
   ReleaseCapture;
   perform(WM_SysCommand, SC_DragMove, 0);
 end;

procedure Register;
begin
 RegisterComponents("User", [TMyComp]);
end;

end.


 
Rouse_ ©   (2004-03-08 12:13) [1]

Блин, когда вопросы научимся правильно задавать?

Если это то о чем понял - то делаешь примерно так:

procedure MyMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);

...

FImage.OnMouseDown := MyMouseDown;

Если же тебе необходимо принудительно возбудить это событие то FImage.Perform(WM_LBUTTONDOWN, ...


 
Помогите!!плиз   (2004-03-08 12:53) [2]

нет, это не совсем то

мне необходимо в самой компаненте передать событие имеджу,
причем имедж у меня рисуется сверху компаненты, а если писать
procedure MyMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); в самой компаненте наследованной от TPanel то он пишет [Error] MyComp.pas(21): Unsatisfied forward or external eclaration: "TMyComp.MyMouseDown"
и принудительный вызов сдесь тоже не подходит. -((


 
Erik ©   (2004-03-08 17:01) [3]

Делаеш OnMouseDown := MyMouseDown, для своей панели. Внутри MyMouseDown пишеш  FImage.Perform(......) все.

Разумеется у тебя должно быть описано событие.
procedure TMyControl.MyMouseDown(Sender: TObject;
 Button: TMouseButton; Shift: TShiftState; X, Y: Integer);



Страницы: 1 вся ветка

Текущий архив: 2004.03.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.065 c
14-1078093670
Sever-rds
2004-03-01 01:27
2004.03.28
В Вашем аэропорту, Домодевово, банально грабят людей


3-1077165271
Evgen77
2004-02-19 07:34
2004.03.28
Разветвленные базы данных


8-1068992832
наблюдатель
2003-11-16 17:27
2004.03.28
CubeMap Image в GLScene


3-1077873360
Janbolat
2004-02-27 12:16
2004.03.28
Суммирование в DBGRID е


14-1074852823
NoOne
2004-01-23 13:13
2004.03.28
В чём здесь логика?