Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.07.18;
Скачать: [xml.tar.bz2];

Вниз

Делегирование   Найти похожие ветки 

 
KIERAN   (2002-07-04 00:58) [0]

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

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

var
MyImage : TImage ;

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

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


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

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


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

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


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

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

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


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

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 ;

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



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

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


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

>alexdbases

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

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



 
alexdbases   (2002-07-05 13:13) [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:20) [8]

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


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

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


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

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


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


 
KIERAN   (2002-07-07 20:59) [11]

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


 
SerVS   (2002-07-07 23:48) [12]

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


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

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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.07.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.006 c
1-58123
Cola
2002-07-08 22:12
2002.07.18
Как посмотреть все сообщения произвольного человека.


1-58149
amochkin
2002-07-05 14:25
2002.07.18
Создание Polygon из динамического массива точек.


3-57970
стражник
2002-06-26 12:34
2002.07.18
Проблема с вводом числа в Tedit


1-58144
jen_bond
2002-07-05 10:54
2002.07.18
PrintScreen


1-58044
Dmk
2002-07-08 01:00
2002.07.18
Менюшка моргает как чекнутая :+|





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский