Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
14-1077303187
тихий вовочка
2004-02-20 21:53
2004.03.28
пользовательские запросы к Яndex


9-1058953838
3d[Power]
2003-07-23 13:50
2004.03.28
Вышла новая версия моей игры Need For Kill - Quake3 в 2D.


14-1077827075
Petr V. Abramov
2004-02-26 23:24
2004.03.28
Закрытие исходникоа процедур в FireBird


6-1074033064
KyRo
2004-01-14 01:31
2004.03.28
Сервер


14-1077890338
menart
2004-02-27 16:58
2004.03.28
Что лучше использовать TTable или запросы SQL




   Наверх