Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2011, 01:36   #1
AlexMe
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 12
По умолчанию Создание процедуры OnClick и OnMouseMove

Программно создаю image
Код:
pic:=TPicture.Create;
pic.LoadFromFile ('image\infM.bmp');
img:=TImage.Create(Form1);
img.Parent:=Form1;
img.Left:=210+leb.Width+2;
img.Top:=15+i*20;
img.Visible:=true;
img.Name:='img'+IntToStr(i);
img.Picture:=pic;
Как создать процедуры OnClick и OnMouseMove?
AlexMe вне форума Ответить с цитированием
Старый 27.06.2011, 02:05   #2
volod3000
Форумчанин
 
Аватар для volod3000
 
Регистрация: 18.12.2008
Сообщений: 266
По умолчанию

Код:
img.OnClick := imgClick;

procedure TForm1.imgClick(Sender: TObject);
begin
....................................
end;
и не забудьте поместить

Код:
type
  TForm1 = class(TForm)
  procedure imgClick(Sender: TObject);
..............................
OnMouseMove - тоже самое, только процедура выглядит так :

Код:
procedure TForm1.ImgMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
........................................................
end;

Мало открыть человеку глаза, большинство еще просит указать дорогу и ждет волшебного пенделя.
volod3000 вне форума Ответить с цитированием
Старый 27.06.2011, 02:12   #3
AlexMe
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 12
По умолчанию

Цитата:
Сообщение от volod3000 Посмотреть сообщение
Код:
img.OnClick := imgClick;

procedure TForm1.imgClick(Sender: TObject);
begin
....................................
end;
и не забудьте поместить

Код:
type
  TForm1 = class(TForm)
  procedure imgClick(Sender: TObject);
..............................
OnMouseMove - тоже самое, только процедура выглядит так :

Код:
procedure TForm1.ImgMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
........................................................
end;
Спасибо большое!

Ругается на
Код:
img.OnClick := imgClick;
Incompatible types: 'method pointer and regular procedure'
Аналогично и на MouseMove ругается.

Последний раз редактировалось Stilet; 27.06.2011 в 13:56.
AlexMe вне форума Ответить с цитированием
Старый 27.06.2011, 03:32   #4
volod3000
Форумчанин
 
Аватар для volod3000
 
Регистрация: 18.12.2008
Сообщений: 266
По умолчанию

А, Вы все условия выполнели, описанные выше ?
Проверьте.

Мало открыть человеку глаза, большинство еще просит указать дорогу и ждет волшебного пенделя.
volod3000 вне форума Ответить с цитированием
Старый 27.06.2011, 20:12   #5
AlexMe
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 12
По умолчанию

Код:
  TForm1 = class(TForm)
              ...
    procedure ImgMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    procedure imgClick(Sender: TObject);
              ...
procedure TForm1.ImgMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Screen.Cursor:=crHandPoint;
end;
procedure TForm1.imgClick(Sender: TObject);
begin
ShellExecute(0, 'Open', pChar('http://mylink.ru'), nil, nil, SW_SHOW);
end;
              ...
procedure LabelCreate(i:integer);
begin
              ...
img:=TImage.Create(Form1);
img.Parent:=Form1;
img.Left:=210+leb.Width+2;
img.Top:=15+i*20;
img.Visible:=true;
img.Name:='img'+IntToStr(i);
img.Picture:=pic;
img.Height:=10;
img.OnClick:=imgclick;
img.OnMouseMove:=imgmousemove;
end;
Выдает ошибки:
[Error] Unit1.pas(95): Undeclared identifier: 'imgclick'
[Error] Unit1.pas(96): Undeclared identifier: 'imgmousemove'
AlexMe вне форума Ответить с цитированием
Старый 27.06.2011, 20:17   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

img.OnClick:=Form1.imgclick;
или
procedure TForm1.LabelCreate(i:integer);
и прописать LabelCreate в private формы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.06.2011, 20:17   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
procedure LabelCreate(i:integer);
У-у-у... Дык эта процедура обьекту формы не принадлежит, и попросту его поля не видит.
Код:
img.OnClick:=Form1.imgclick;
img.OnMouseMove:=Form1.imgmousemove;
Хотя с другой стороны я сумлеваши что так получится.
Лучше опиши LabelCreate методом этой самой формы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание OnClick для массива типа Button VIK_aka_TOR Помощь студентам 13 19.05.2011 16:21
эксел создание видимой всеми процедуры dasmeer Помощь студентам 3 13.03.2010 09:16
Создание процедуры целочисленной матрицы на языке паскаль. Darya Помощь студентам 3 11.05.2009 18:40
Создание процедуры на SQL Skyline20000 SQL, базы данных 0 31.03.2009 16:57
Создание своей процедуры kuzmich Общие вопросы Delphi 7 12.01.2009 15:17