Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Delphi | Image | OnMouseMove 
:(
    Опции темы
PsiMagistr
Дата 12.7.2010, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



Давайте сделаем так. Запустите этот исполняемый файл. Просмотрите как ведет себя картинка. Если Вас устроит я дам Вам код.

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  Project1.rar 447,20 Kb


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
ReZuS
Дата 12.7.2010, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 12.7.2010

Репутация: нет
Всего: нет



Цитата(PsiMagistr @ 12.7.2010,  17:47)
Давайте сделаем так. Запустите этот исполняемый файл. Просмотрите как ведет себя картинка. Если Вас устроит я дам Вам код.

Ага устраивает, если я правильно понимаю то моя затея получится!!! Вроде... Выложи код я проверю! И спасибо за помощь!!!
PM MAIL   Вверх
PsiMagistr
Дата 12.7.2010, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



Хорошо. Итак приступим. Найдите у себя в проекте то изображение которое должно исчезать. В инспекторе объектов отыщите обработчик для этого изображения OnMouseMove. Туда запишите:


Код

Img2.Visible := False; //Img2 это имя изображения, которое должно исчезать.


Таким образом должно получиться:

Код

procedure TForm1.Img2MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);//Начало обработчика.
begin
Img2.Visible := False; //Это мы написали сами
end; //Конец обработчика


Теперь отыщите OnMouseMove изображения фона. (обратите внимание, не формы (!) а самого изображения-фона, с единорогом которое!) и впишите туда:

Код

if  (y < Img2.top) or (y >img.Top+img.Height) or (x < img2.Left) or (x > img2.Left+img2.Width)  then Img2.Visible := true; //img2 это по прежнему имя исчезающего изображения.


У вас должно получится:

Код

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer); //Начало обработчика.
begin
  if  (y < Img2.top) or (y >img.Top+img.Height) or (x < img2.Left) or (x > img2.Left+img2.Width)  then Img2.Visible := true; //Это мы написали сами.
end; //Конец обработчика



Надеюсь все у Вас получится. Отпишитесь в любом случае.





Это сообщение отредактировал(а) PsiMagistr - 12.7.2010, 19:05


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
ReZuS
Дата 12.7.2010, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 12.7.2010

Репутация: нет
Всего: нет



PsiMagistr, да, да, да, да, всё получилосьsmilesmile Спасибо тебе большое за помощь, я б не знаю что без твоей помощи делал!!!
PM MAIL   Вверх
PsiMagistr
Дата 12.7.2010, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



Всего Вам доброго! Обращайтесь.


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
ReZuS
Дата 12.7.2010, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 12.7.2010

Репутация: нет
Всего: нет



А если мне еще нужно аналогичную картинку добавить я в изоброжение фона добавляю? 

Код


begin
  if  (y < Img3.top) or (y >img3.Top+img3.Height) or (x < img3.Left) or (x > img3.Left+img3.Width)  then Img3.Visible := true // Где img3 новое исчезавшое изображение


PM MAIL   Вверх
PsiMagistr
Дата 12.7.2010, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



Если Вам нужны аналогичные операции для второй картинки и если эта вторая я картинка лежит на изображении-фоне, то да. 

Это сообщение отредактировал(а) PsiMagistr - 12.7.2010, 18:49


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
ReZuS
Дата 12.7.2010, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 12.7.2010

Репутация: нет
Всего: нет



Цитата(PsiMagistr @ 12.7.2010,  18:47)
Если Вам нужны аналогичные операции для второй картинки и если эта вторая я картинка лежит на изображении-фоне, то да.

Код

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if  (y < Img2.top) or (y >img2.Top+img2.Height) or (x < img2.Left) or (x > img2.Left+img2.Width)  then Img2.Visible := true
end;
 begin
if  (y < Img3.top) or (y >img3.Top+img3.Height) or (x < img3.Left) or (x > img3.Left+img3.Width)  then Img3.Visible := true
end;


Что я не так делаю? Он на этой строке ругается 
Код

if  (y < Img3.top) or (y >img3.Top+img3.Height) or (x < img3.Left) or (x > img3.Left+img3.Width)  then Img3.Visible := true

PM MAIL   Вверх
PsiMagistr
Дата 12.7.2010, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



Для начала проверьте есть ли у Вас картинка с именем (Name) img3. Скорей всего у Вас нет картинки с таким именем.

В конце каждой строки должен стоять оператор точка с запятой.

Немного подправил код.

Код

if  (y < Img3.top) or (y >img3.Top+img3.Height) or (x < img3.Left) or (x > img3.Left+img3.Width)  then Img3.Visible := true;


Это сообщение отредактировал(а) PsiMagistr - 12.7.2010, 19:11


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
ReZuS
Дата 12.7.2010, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 12.7.2010

Репутация: нет
Всего: нет



Цитата(PsiMagistr @ 12.7.2010,  19:00)
Для начала проверьте есть ли у Вас картинка с именем (Name) img3. Скорей всего у Вас нет картинки с таким именем.

В конце каждой строки должен стоять оператор точка с запятой.

Да нет все на месте, имж имеется 
Вот какие ошибки выдает:
[Error] Unit1.pas(71): Undeclared identifier: 'y'
[Error] Unit1.pas(78): Missing operator or semicolon
[Error] Unit1.pas(22): Unsatisfied forward or external declaration: 'TForm1.Img3MouseMove'
[Fatal Error] Project2.dpr(7): Could not compile used unit 'Unit1.pas'
PM MAIL   Вверх
PsiMagistr
Дата 12.7.2010, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



Шлите исходник - посмотрю.



Это сообщение отредактировал(а) PsiMagistr - 12.7.2010, 19:15


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
ReZuS
Дата 12.7.2010, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 12.7.2010

Репутация: нет
Всего: нет



Цитата(PsiMagistr @ 12.7.2010,  19:12)
Шлите исходник - посмотрю.

В исходнике там лишние вещи прошу на них внимания не обращать!

Это сообщение отредактировал(а) ReZuS - 12.7.2010, 19:24
PM MAIL   Вверх
PsiMagistr
Дата 12.7.2010, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



Так. для начала. 


Цитата(ReZuS @  12.7.2010,  18:51 Найти цитируемый пост)
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if  (y < Img2.top) or (y >img2.Top+img2.Height) or (x < img2.Left) or (x > img2.Left+img2.Width)  then Img2.Visible := true
end;
 begin
if  (y < Img3.top) or (y >img3.Top+img3.Height) or (x < img3.Left) or (x > img3.Left+img3.Width)  then Img3.Visible := true
end;



Обработчик записан неверно.

Вот как должно быть.

Код

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer); //заголовок обработчика с параметрами

begin //Начало обработчика
if  (y < Img2.top) or (y >img2.Top+img2.Height) or (x < img2.Left) or (x > img2.Left+img2.Width)  then Img2.Visible := true; //Действие первое
if  (y < Img3.top) or (y >img3.Top+img3.Height) or (x < img3.Left) or (x > img3.Left+img3.Width)  then Img3.Visible := true; //Действие второе
end; //Конец обработчика



--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
ReZuS
Дата 12.7.2010, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 12.7.2010

Репутация: нет
Всего: нет



Ага)) спасибо, тупанул! А изображение3 проподает но почему то не появляется!
PM MAIL   Вверх
PsiMagistr
Дата 12.7.2010, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



Проверьте лежит ли это изображение именно на фоне (картинка единорог) или на каком нибудь другом изображении. Это очень важно.

Это сообщение отредактировал(а) PsiMagistr - 12.7.2010, 19:34


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0539 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.