Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/34: Рейтинг темы: голосов - 34, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 25.12.2011
Сообщений: 39
1

Как сделать так, чтоб при наведении курсора картинка менялась на другую

30.04.2012, 13:47. Показов 6845. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Понимаю что вопрос глупый!) Как сделать так, чтоб при наведении курсора картинка менялась на другую, а когда убираешь курсор возвращала прошлую?
Именно для баттона, у меня кнопка, и я хочу что бы при наведений на кнопку менялся его Glyph(картинка)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2012, 13:47
Ответы с готовыми решениями:

При наведении курсора на TImage исходная картинка меняется на другую. Как это сделать?
на пустой форме находится TImage. при наведении курсора на TImage исходная картинка меняется на...

Как сделать,чтоб при нажатии на кнопку картинка менялась(на кнопке) ?)
C этой<img src="1092.png"> На эту<img src="7798.png">

Как сделать, чтобы картинка менялась при наведении не на всю картинку, а лишь на часть ее?
Пример: фото человека, если навести курсор на его глаз, картинка меняется (появляются темные очки)...

Как написать так, чтоб на сайте картинка менялась через интервал времени?
Как написать так, чтоб на сайте картинка менялась через интервал времени?

9
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
30.04.2012, 14:06 2
У любой кнопки есть события OnMouseEnter/OnMouseLeave. Вот в них и меняй глифы.
0
0 / 0 / 0
Регистрация: 25.12.2011
Сообщений: 39
30.04.2012, 14:09  [ТС] 3
в Delphi 7 нету такое(
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
30.04.2012, 14:14 4
Добавь: http://www.delphisources.ru/pa... leave.html

Можно это сделать и без регистрации компонента, просто сделав промежуточный класс:

Delphi
1
2
3
4
5
6
type 
   TBitBtn = class(Buttons.TBitBtn)
      // тут отлов CM_MOUSEENTER / CM_MOUSELEAVE
   end;
 
   TForm1 = class(TForm) // твоя форма, изменения не потребуются
0
0 / 0 / 0
Регистрация: 25.12.2011
Сообщений: 39
30.04.2012, 14:20  [ТС] 5
UI, можешь конкретно написать что бы менялся, а то я запутался чет, плс
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
30.04.2012, 14:23 6
Как я тебе конкретно напишу, если у меня в D2009 уже есть все эти события? Только теоретически.
0
0 / 0 / 0
Регистрация: 25.12.2011
Сообщений: 39
30.04.2012, 14:28  [ТС] 7
UI, ну хотя бы теоритический примерно.)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
30.04.2012, 14:32 8
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
unit Unit1;
 
uses ...; // тут вся твоя секция uses
 
type
   TBitBtn = class(Buttons.TBitBtn) // Вот это я добавил руками
      procedure CMMouseEnter(var msg:TMessage); message CM_MOUSEENTER;
      procedure CMMouseLeave(var msg: TMessage); message CM_MOUSELEAVE;
   end;
 
  TForm1 = class(TForm) // на форме - только одна кнопка
    BitBtn1: TBitBtn;
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
procedure TBitBtn.CMMouseEnter(var msg: TMessage); // Мыша над кнопкой
begin
   Glyph := nil;
   // И меняешь глиф любым способом, хочешь из ImageList-а,
   // для теста я сделал чтение прямо из файла
   Glyph.LoadFromFile('in.bmp');
end;
 
procedure TBitBtn.CMMouseLeave(var msg: TMessage); // Мыша ушла с кнопки
begin
   Glyph := nil;
   Glyph.LoadFromFile('out.bmp');
end;
 
end.
0
0 / 0 / 0
Регистрация: 25.12.2011
Сообщений: 39
30.04.2012, 14:42  [ТС] 9
UI, у меня 2 кнопки на форме, она так заработает? или только на одну будет работать?

Добавлено через 7 минут
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, StdCtrls, Buttons;
 
type
  TForm1 = class(TForm)
    Image1: TImage;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
uses
  Unit2;
 
{$R *.dfm}
 
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
close
end;
 
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Form2.Showmodal;
end;
 
end.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
30.04.2012, 14:57 10
На все будет работать, сколько есть. Только (если для разных кнопок должны меняться разные картинки) надо как-то разграничить, чтоб узнать, над какой кнопкой мышь сейчас находится, и с какой уходит. Можно Tag для этого использовать. Одной кнопке назначаешь, скажем, 1. Второй - 2, и в CMMouseEnter проверяешь, какая кнопка имеется в виду:

Delphi
1
2
3
4
5
6
procedure TBitBtn.CMMouseEnter(var msg: TMessage);
begin
   Glyph := nil;
   if Tag = 1 then // грузишь одну картинку, на первую кнопку
   else if Tag = 2 then // это вторая кнопка - грузишь другую
end;
Второе событие - аналогично.
0
30.04.2012, 14:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.04.2012, 14:57
Помогаю со студенческими работами здесь

Как сделать чтоб фон меняелся при наведении курсора?
есть таблица, фоном ячейки которой есть изображение 1, как сделать чтоб при наведении курсора мыши...

Как сделать так, чтобы при нажатии на кнопку менялась одна форма на другую?
Я вот пытаюсь разработать тест и столкнулась с такой проблемой, как смена формы на другую... В...

Как сделать чтоб кнопка в форме при наведении на нее мышкой убегала от курсора мыши?
Добрый вечер) подскажите пожалуйста, как сделать чтоб кнопка в форме при наведении на нее мышкой...

Как сделать чтобы показывалсь картинка при наведении курсора из той ячейки мемо на которую он наведен, например в PicturBox?
Здравствуйте господа-товарищи форумчане! Прежде чем спрашивать я перелопатил многие килограммы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru