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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2011, 22:19   #1
RedFire
Новичок
Джуниор
 
Регистрация: 04.05.2011
Сообщений: 1
По умолчанию касательно 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
По умолчанию

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

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

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

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

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


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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 12:20
Расположение обработчика onMouseMove() WinApi JavaScript, Ajax 0 19.09.2009 22:45
OnMouseMove frai БД в Delphi 3 14.10.2007 19:23