![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Люди подскажыте как правильно написать обработчик события OnMouseDown для програмно созданого компонента TShape?
Пример кода как я создаю компонент! Shape:TShape; Shape:=TShape.Create(Form1); Shape.Parent:=Form1; Теперь надо написать Shape.onmousedown:=mymousedown и этот mymousedown надо как то обявить, а как ? Пробовал некоторые варианты выдает ошыбку. Черезх гугл так и нешол решения. Может кто знает помогите! Зарание благодарен! |
|
#2
|
||||
|
||||
|
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
AShape: TShape;
procedure ShapeMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ShapeMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ShowMessage('ShapeMouseDown');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
AShape:=TShape.Create(Self);
AShape.Parent:=Self;
AShape.OnMouseDown:=ShapeMouseDown;
end;
end. |
|
#3
|
|||
|
|||
|
А вот допустим если у нас создается несколько shape автоматически, и нужно скажем по клацанью на любом из них записывать в label1.caption имя shape по которому кликнули? просто когда делал по аналогии, записывалось только одно значение имени
|
|
#4
|
||||
|
||||
|
Код:
procedure ShapeMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Label1.Caption:=TShape(Sender).Name;
end; |