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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 01.10.2009, 00:45   #1
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
Вопрос Курсор на Image ! or ?

Здравствуйте!

на форме 2-3 объекта к примеру Image (с ними проблема, т.к. не имеют Handle), в них загружены картинки.
У меня вопрос таков:
как определить над каким Image'ом находится курсор?
ZuBy вне форума
Старый 01.10.2009, 00:48   #2
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

А чем, OnMouseMove не подходит ?
uberchel вне форума
Старый 01.10.2009, 00:54   #3
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

не подходит потому что обрабатывается всё в сообщениях
CM_MOUSEENTER и CM_MOUSELEAVE.
и уже в соответствии с определенным image'м выполняются действия!

И я не совсем уверен правильные сообщения я использую? мне именно нужно знать "Вход и Выход" курсора с image'в.


Прошу не писать как мне лучше делать, если знаете то напишите, если нет то то промолчите!
ZuBy вне форума
Старый 01.10.2009, 01:16   #4
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Хендел есть у канваса: Image1.Canvas.Handle идинственно тин хендла HDC
uberchel вне форума
Старый 01.10.2009, 15:28   #5
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

я знаю что есть, но пробовал вот так не получилось:
var
cur: TPoint;
begin
GetCursorPos(cur);
if WindowFromPoint(cur) = Image1.Canvas.Handle then
Caption := 'Image' else Caption := 'Forma';
end;
ZuBy вне форума
Старый 01.10.2009, 15:37   #6
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

кто знает подскажите плиз, просто другого выхода я не вижу.
OnMouseMove не обрабатывает вход и выход курсора, а у меня будет делатся два разных действия!
ZuBy вне форума
Старый 01.10.2009, 15:41   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Назначь обоим Image одну и ту же OnMouseMove
А далее Sender будет указывать на какой ты мышкой движешь:
Код:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
 Caption:=TImage(sender).Name;
end;
Смысл ясен?
I'm learning to live...
Stilet вне форума
Старый 01.10.2009, 15:44   #8
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Stilet читай выше что мне нужно!
ZuBy вне форума
Старый 01.10.2009, 15:56   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
читай выше что мне нужно!
А ты пиши в начале темы точно ТЗ а не плаки.
Все работает если поиском по ияндексу.
Вот например такой перехватчик:
Код:
unit Unit1;

interface

uses         inifiles,
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls;

type
  TImage=class(ExtCtrls.TImage)
   procedure w(var m:tagMSG); message CM_MOUSEENTER;
  end;
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var  i:TIniFile;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

{ TImage }

procedure TImage.w;
var w:TWinControl;
begin
 form1.Caption:=Name;
end;

end.
Смысл уловил?
I'm learning to live...
Stilet вне форума
Старый 01.10.2009, 15:59   #10
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Вот что я поизвращался и придумал, когда только начинал программировать и про сообщения ничего не знал:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (mouse.CursorPos.X>form1.Left+image1.Left) and (mouse.CursorPos.X<form1.Left+image1.Left+image1.Width) and (mouse.CursorPos.y>form1.top+image1.top) and (mouse.CursorPos.y<form1.top+image1.top+image1.height) then
caption:=image1.Name else
if (mouse.CursorPos.x>form1.Left+image2.Left) and (mouse.CursorPos.X<form1.Left+image2.Left+image2.Width) and (mouse.CursorPos.y>form1.top+image2.top) and (mouse.CursorPos.y<form1.top+image2.top+image2.height) then
caption:=image2.Name else
caption:=form1.Name;
end;
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по Image (скачанная картинка не хочет выводиться в Image) Radnor Мультимедиа в Delphi 2 06.07.2009 02:20
уберите курсор (в конце программы верните курсор), HECTOR.A. Паскаль, Turbo Pascal, PascalABC.NET 2 05.06.2009 20:10
Курсор АлёнаP Microsoft Office Word 5 15.05.2009 17:12
Курсор soonner Общие вопросы Delphi 3 11.05.2009 19:46
курсор steck Общие вопросы Delphi 2 02.04.2007 22:45