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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2009, 20:55   #1
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость Размеры картинки

Ребята, у меня на форме картинка (шир=100, вис=100), хочю написать:
-когда на нее наводишь курсор она стает размеров 200 на 200, когда курсор отводишь от картинки, стает нормальной 100 на 100ж
Мои соображения: описать в процедуре Mousemove условие
Код:
if ( условие, когда курсор на кртинке ) then 
image1.heigth:=200;
image1.width:=200

else
image1.heigth:=100;
image1.width:=100;
или как сделать ето?
Lemo вне форума Ответить с цитированием
Старый 08.02.2009, 21:07   #2
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Это как на сайтах в "Html" делают..?

Нужно подумать... А возвращать нужно когда курсор отводишь от старой картинки 100х100 или уже от новой 200х200..?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 08.02.2009, 21:18   #3
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Попробуй так:
Код:
Procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
Begin
Image1.Height:=200;
Image1.Width:=200
End;

Procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
Begin
Image1.Height:=100;
Image1.Width:=100;
End;
Может подойдёт...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 08.02.2009, 21:20   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,542
По умолчанию

Кроме изменения размеров надо ещё и картинку растянуть. Для этого можно использовать метод StretchDraw.
Arigato вне форума Ответить с цитированием
Старый 08.02.2009, 21:31   #5
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Да... Про рястягивание я чтот забыл упомянуть...

Можно ещё так - чтоб рисунок равномерно во все стороны увеличивался:

Код:
Var
      Form1: TForm1;
      imgX, imgY: Integer;
      a, b: Integer;

Implementation

{$R *.dfm}

Procedure TForm1.FormCreate(Sender: TObject);
Begin
a:=100; //размер маленького изображения
b:=200; //размер увеличенного изображения
Image1.Stretch:=True;
imgX:=Image1.Left-Trunc((b-a)/4);;
imgY:=Image1.Top-Trunc((b-a)/4);;
End;

Procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
Begin
Image1.Height:=a;
Image1.Width:=a;
Image1.Left:=imgX+Trunc((b-a)/4);
Image1.Top:=imgY+Trunc((b-a)/4);
End;

Procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
Begin
Image1.Height:=b;
Image1.Width:=b;
Image1.Left:=imgX-Trunc((b-a)/4);
Image1.Top:=imgY-Trunc((b-a)/4);
End;
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 08.02.2009, 21:32   #6
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Для удобства можете установить свойство Image1.Stretch:=True;
-----
Немного не успел, уже опередили.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 08.02.2009, 21:36   #7
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Цитата:
Сообщение от DomiNick Посмотреть сообщение
Можно ещё так - чтоб рисунок равномерно во все стороны увеличивался...
Вместо этих заморочек достаточно на этапе разработки поставить у Имиджа свойства Center и Stretch в True - картинка сама будет и растягиваться и центроваться.

Лучше в обработчиках MouseMove проверять, не был ли рисунок уже растянут/сжат, чтобы избежать постоянных изменений.
Jeni вне форума Ответить с цитированием
Старый 08.02.2009, 21:40   #8
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Ну... Наспех на коленке делал...
Сделать-то по разному можно - иногда главное чтоб хоть как-то работало...
А уже потом оптимизировать...

Вот если б было событие "OnMouseOn" как в "Html" есть - то ещё б проще было...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 08.02.2009, 22:08   #9
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

хмм.. по идее его аналог в Дельфе - OnMouseEnter... но я могу ошибаться, так как с ним не пробовал пока ещё ничего делать и дельфи под рукой нету, чтоб проверить
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 08.02.2009, 22:20   #10
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

goblinyara чет я такого события в Делфи вообще не нашел.
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Размер Image изменяется на размер картинки, а сама она рисуется на области первой картинки RPGer Мультимедиа в Delphi 6 20.10.2008 19:54
Размеры изображения RamireZ Мультимедиа в Delphi 5 05.10.2008 09:48
Изменить размеры Манжосов Денис :) Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 16.05.2008 20:14
Изменить размеры страницы принтера Shuraken Win Api 1 30.08.2007 05:14
Как изменять размеры StringGrid Мышкой Inbox Компоненты Delphi 4 30.06.2007 14:34