Главная страница
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.053 c
14-1077866031
Daemys
2004-02-27 10:13
2004.03.28
Интернет-зависимость


11-1057344067
mox
2003-07-04 22:41
2004.03.28
Почему не работает таймер


7-1073722800
Malwa
2004-01-10 11:20
2004.03.28
Как заменить стандартные часы Windows в системном трее на свои


3-1077630209
SM
2004-02-24 16:43
2004.03.28
Ув. мастера, как в IB создать кальк. поле с отсечением дроб. част


14-1077303187
тихий вовочка
2004-02-20 21:53
2004.03.28
пользовательские запросы к Яndex