Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
ВнизСобытия для собственных компанент!!! Найти похожие ветки
← →
Помогите!!плиз (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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.046 c