Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Мультимедиа в Delphi
Регистрация

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

Ответ
 
Опции темы
Старый 05.05.2011, 22:19   #1
RedFire
Новичок
 
Регистрация: 04.05.2011
Сообщений: 1
Репутация: 10
По умолчанию касательно OnMouseMove и image

Привет всем, пробую написать кнопки состоящие из image (первоначально из двух, далее буду делать из трех картинок) ток чет не получается((
Код:

unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls;
type
  TForm1 = class(TForm)
    Img: TImage;
    Img1: TImage;
    Img2: TImage;
    Img3: TImage;
    Img4: TImage;
    Img5: TImage;
    Img6: TImage;
    Img7: TImage;
    Img8: TImage;
    Img9: TImage;
    Img10: TImage;
    Img11: TImage;
    Img12: TImage;
    Img13: TImage;
    procedure ImgMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Img2MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Img1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Img1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.ImgMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Img.Visible :=false;
if Img.Visible =false then Img1.Visible :=true;
end;
procedure TForm1.Img2MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Img2.Visible := false;
if Img2.Visible =false then Img3.Visible :=true;
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if  (y < Img.top)  or (y >img.Top+img.Height)   or (x < img.Left)  or (x > img.Left+img.Width)   then Img.Visible := true; if Img.Visible =true  then Img1.Visible :=false;
  if  (y < Img2.top) or (y >img2.Top+img2.Height) or (x < img2.Left) or (x > img2.Left+img.Width)  then Img2.Visible := true; if Img2.Visible =true then Img3.Visible :=false;
end;
end.

что тут не так, первая кнопка нормально работает, при наведении img пропадает появляется img1, а img2 даже пропадать не хочет, не говоря уже о появление второй...

Последний раз редактировалось Stilet; 06.05.2011 в 08:18.
RedFire вне форума   Ответить с цитированием
Старый 06.05.2011, 12:02   #2
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
Репутация: 33

icq: 452409090
skype: betirsolt
По умолчанию

а зачем ты это все так делаешь?что ты хочешь получить в итоги?я не понял
__________________
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума   Ответить с цитированием
Старый 06.05.2011, 12:12   #3
~Psycho~
Пользователь
 
Аватар для ~Psycho~
 
Регистрация: 11.12.2010
Сообщений: 44
Репутация: 12

icq: 392641468
По умолчанию

кнопки с тремя состояниями - обычное, при наведении курсора и нажатом
__________________
Отражаю отношение к себе
~Psycho~ вне форума   Ответить с цитированием
Старый 06.05.2011, 15:20   #4
JTG
я получил эту роль
Профессионал
 
Аватар для JTG
 
Регистрация: 25.05.2007
Адрес: тут темно и с потолка капает
Сообщений: 3,695
Репутация: 2224

icq: III 37373860
По умолчанию

Не, так не делают. Во-первых у TImage есть события onMouseEnter/onMouseLeave (в delphi 7 вроде нет), во-вторых такое обычно оформляют как отдельный компонент.

http://programmersforum.ru/showpost....20&postcount=2
(тут нужно добавить 3 свойства для картинок и переопределить конструктор/деструктор, которые будет загружать/уничтожать их и менять в CMMouseEnter/CMMouseLeave)
__________________
пыщь

Последний раз редактировалось JTG; 06.05.2011 в 15:30.
JTG вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TWebBrowser + OnMouseMove peter888 Работа с сетью в Delphi 0 13.09.2010 10:51
Delphi | OnMouseMove SQeeZe Общие вопросы Delphi 2 11.07.2010 16:22
OnMouseMove beygul Помощь студентам 2 07.01.2010 13:20
Расположение обработчика onMouseMove() WinApi JavaScript, Ajax 0 19.09.2009 22:45
OnMouseMove frai БД в Delphi 3 14.10.2007 19:23


22:00.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru