IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Событие OnMouseMove, Компонент Image
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Пытаюсь сделать так, чтобы при наведении мышки на картинку, она изменялась на другую.
Правильно ли то, что я использую OnMouseMove? Как это сделать? smile.gif


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


OnMouseEnter мне кажется будет лучше. Так при малейшем движении мыши над компонентом будет меняться
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Допустим даже так. Приведите пример пожалуйста, а то у меня не получается ее изменить.
Image1.Picture := ????????;

Что нужно написать?


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Можно хранить в массиве адрес рисунка и загружать рисунок Image1.Picture.LoadFromFile(путь)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Как проверить наличие того или иного изображения на форме?
Если 1.jpg тогда ...
иначе ...


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


из Image нельзя вытянуть название файла. работая с файлами через массив, список можно по номерам легко обращаться к нужному файлу
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


В таком случае массив типа TPicture создавать?
И как тогда в него загрузить изображение?

Сообщение отредактировано: Сергей Меркурьев -


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Цитата
В таком случае массив типа TPicture создавать?
В таком случае лучше описать задачу как следует, а не так, как понятно только тебе. Напоминаю: изначально вопрос стоял так:
Цитата
Пытаюсь сделать так, чтобы при наведении мышки на картинку, она изменялась на другую.
Никакого упоминания о том, что у тебя несколько картинок, никакого упоминания о том, что тебе надо отслеживать, какие картинки на форме присутствуют в настоящий момент, НИЧЕГО... Тебе сказали, как решать то, о чем ты спросил. Дал бы сразу всю информацию - подсказали бы правильное решение твоей проблемы. А так...

Максимум, чего могу посоветовать - это прочитать вот это
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Просто напросто тут одна проблема вытекает из другой.
У меня есть две картинки. Как мне уже сказали, мне нужно создать массив для их хранения. Как мне сделать это? И как мне обращаться к тому или иному изображению?


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Самый простой вариант - сделать массив из путей к картинкам (понятное дело, картинки должны существовать по указанным путям).

var
Form1: TForm1;
pics:array[1..piccount] of string=('pictures\1.jpg','pictures\2.jpg');

implementation

{$R *.dfm}

procedure TForm1.Image1MouseEnter(Sender: TObject);
begin
image1.Picture.LoadFromfile(pics[1]);
end;

procedure TForm1.Image1MouseLeave(Sender: TObject);
begin
image1.Picture.LoadFromfile(pics[2]);
end;

end.



Только в Uses надо добавить модуль Jpeg. Ещё можно загружать из ресурсов.
И ещё, если в программе используются Dialogs (TOpenDialog или что-то подобное), то желательно указывать абсолютные пути.

Сообщение отредактировано: Unconnected -


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


А у меня нету MouseEnter and MouseLeave blink.gif


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


А у экземпляра TImage такое событие есть smile.gif

//ты же кинул его на форму?

Сообщение отредактировано: Unconnected -


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Изображение
Вот скриншот, посмотрите.


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Аа, в Delphi 7 нету, значит... Тогда - всё тоже самое - только берём обработчики OnMove имаджа и формы.


var mmove:boolean=false;

implementation
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if mmove then begin
mmove:=false;
image1.Picture.LoadFromFile(pics[2]);
end;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if not(mmove) then begin
mmove:=true;
image1.Picture.LoadFromFile(pics[1]);
end;
end;


Сообщение отредактировано: Unconnected -


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Я поместил изображения в папку с проектом, но он пишет что не может их найти. С чем это может быть связано?


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


пора бы уже код привести...
возможно надо указать путь ".\1.jpg"

Сообщение отредактировано: Client -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Код ничем ни отличается от вашего.
var
Form1: TForm1;
pics:array[1..2] of string=('.\1.jpg', '.\2.jpg');
mmove:boolean=false;

implementation

{$R *.dfm}

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if not(mmove) then begin
mmove:=true;
image1.Picture.LoadFromFile(pics[1]);
end;

end;


procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if mmove then begin
mmove:=false;
image1.Picture.LoadFromFile(pics[2]);
end;
end;


Но все равно пишет тоже самое, что не может найти изображение.


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Гость






var
pics:array[1..2] of string=('1.jpg', '2.jpg');

// ...
function FullPath(p: string): string;
begin
result := ExtractFilePath(Application.ExeName) + p;
end;

// ...
image1.Picture.LoadFromFile(FullPath(pics[1]));

Не надо думать, что рабочая папка останется таковой всегда. Как только вызывается любой диалог сохранения/открытия файла - это может привести к тому, что текущая (рабочая) папка изменится. Единственный вариант - отслеживать местоположение EXE-файла.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


а GetCurrentDir возвращает же тоже папку с ЕХЕ ?
создал файлы с ЕХЕ в одной папке и все работает
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Тогда что мне делать? Заново пересоздал проект, и ничего... Все тоже самое sad.gif


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 3:41
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name