Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Делегирование [D5, WinXP]


KIERAN ©   (2002-07-04 00:58:00) 

У меня такой вопрос.

я делаю DLL. Внутри у меня есть процедура с подобным сдержанием

var
MyImage : TImage ;

begin
MyImage.Create (...);
MyImage.Parent := ... ;
MyImage.onClick := MouseClick(***);

так вот, кто мне подскажет, как мне сделать так, что бы при щелчке на MyImage срабатывала поцедура MouseClick - которую я там тоже написал. Млин ... не работает, если просто так указать он клик на процедуру, что то надо ещё писать, а вот что??????


KIERAN   (2002-07-08 15:24:00) [1]

SerVS> а где её достать можно??


SerVS   (2002-07-07 23:48:00) [2]

>KIERAN
А ты не хочешь почитать хоть какуето кгиту типа "ликбез по ООП"?


KIERAN   (2002-07-07 20:59:00) [3]

Ну млин совсем ничего не получается ... замаелсмя я с этим Дельфи! Млин, ну никак! Может хоть кто-нить простой пример работающий кинет???


Skier   (2002-07-05 14:38:00) [4]

>Val
> Собственно, компилятор ему об этом и говорит. :)


Ага. Но только по-английски :))


Val   (2002-07-05 14:33:00) [5]

Вот я и говорю, что так как он объявляет - работать не будет !
Собственно, компилятор ему об этом и говорит. :)


Skier   (2002-07-05 13:20:00) [6]

>alexdbases
Всё правильно, но(!) посмотри как KIERAN
объявляет ONClickImage.
Вот я и говорю, что так как он объявляет - работать не будет !


alexdbases   (2002-07-05 13:13:00) [7]

Писать надо так
type
Tform1 = class(TForm)
Image1: TImage;
.....
procedure ONClickImage(Sender: TObject);
.....
procedure TForm1.create(Sender: TObject);
begin
....
Image1.OnClick:=ONClickImage;
...
end;
Так понятние....


Skier   (2002-07-05 13:03:00) [8]

>alexdbases

procedure ONClickImage(Sender: TObject);
begin
ShowMessage(MyImage.Name) ;
end; <- работать не будет !

Нужно объявлять ONClickImage как метод класса.


alexdbases   (2002-07-05 12:57:00) [9]

Ещё разок
procedure ONClickImage ;
begin
ShowMessage(MyImage.Name) ;
end;
Надо......
procedure ONClickImage(Sender: TObject);
begin
ShowMessage(MyImage.Name) ;
end;


KIERAN   (2002-07-05 00:24:00) [10]

library Project2;

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, extctrls;

{$R *.RES}
var
MyImage :TImage ;

procedure ONClickImage ;
begin
ShowMessage(MyImage.Name) ;
end;

procedure CreateImage ;
begin
MyImage := TImage.Create (application.MainForm);
MyImage.Parent := application.MainForm ;
MyImage.OnClick := ONClickImage ;

end;

begin

end.


Вот такой нерабояий код!!!!


А ошибку он выдаёт :
/Incompatible types: method pointer and regular procedure/
с указанием на строку: MyImage.OnClick := ONClickImage ;

что делать??? :(


qube   (2002-07-04 15:10:00) [11]

> Skier
Присоединяюсь.

>KIERAN
Во-первых, надо сначала правильно создать
MyImage := TImage.Create(...);Во-вторых, не так:
MyImage.onClick := MouseClick(***);а так:
MyImage.onClick := MouseClick;


Skier   (2002-07-04 13:53:00) [12]

>KIERAN
MyImage.Create (...); Это шутка или ты так объект создаёшь ?


alexdbases   (2002-07-04 13:48:00) [13]

procedure MouseClick(Sender: Tobject);
......
.....
....
В Криете формы....или Картинки..
MyImage.onClick:=MouseClick;
В MouseClick описываешь что должно с картинкой происходить....
прочиие действия


Наверх

Титульная страница Поиск, карта сайта Написать письмо