Главная страница
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-1078214920
ИМХО
2004-03-02 11:08
2004.03.28
Кто что скажет за Тайвань?


1-1079026882
Андрей__
2004-03-11 20:41
2004.03.28
Про Popup меню


7-1072692942
Romkin
2003-12-29 13:15
2004.03.28
TRichTextBox, определение размера текста


7-1072683238
Babay
2003-12-29 10:33
2004.03.28
Региональные настройки


3-1077983552
ZSergey
2004-02-28 18:52
2004.03.28
Помогите пожалуйста правильно составить SQL-запрос!