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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2011, 14:53   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию В Hint Image вывести картинку полного размера

Как в Hint Image вывести картинку полного размера?
Изображения
Тип файла: gif Untitled-1.gif (26.2 Кб, 123 просмотров)
Shouldercannon вне форума Ответить с цитированием
Старый 13.11.2011, 15:07   #2
haruhi
Форумчанин
 
Аватар для haruhi
 
Регистрация: 05.10.2011
Сообщений: 368
По умолчанию

динамически создать TImage, занести к него картинку полного размера и скрыть. при наведении мыши на искомую маленькую картинку, выводить созданный TImage в то место экрана где сейчас находится курсор
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
haruhi вне форума Ответить с цитированием
Старый 13.11.2011, 16:18   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию

Код:
  MyImage := TImage.Create(Self);
  MyImage.Picture.LoadFromFile('big.gif');
  MyImage.Parent := Form1;
  MyImage.Visible := False;
Цитата:
при наведении мыши на искомую маленькую картинку, выводить созданный TImage в то место экрана где сейчас находится курсор
Не соображу как сделать.
Shouldercannon вне форума Ответить с цитированием
Старый 13.11.2011, 17:52   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
var xVisible: Boolean;
    xPoint: TPoint;
begin
  xVisible:=Image2.Visible;
  Image2.Visible:=(x>=0) and (x<Image1.Width) and (y>=0) and (y<Image1.Height);
  if Image2.Visible and not xVisible then begin
    xPoint:=Form1.ScreenToClient(Point(Mouse.CursorPos.X,Mouse.CursorPos.Y));
    Image2.Left:=xPoint.X;
    Image2.Top:=xPoint.Y;
  end;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  Image2.Visible:=(x>=Image1.Left) and (x<Image1.Left+Image1.Width) and (y>=Image1.Top) and (y<Image1.Top+Image1.Height);
end;
Image2 создан в design-time и изначально Image2.Visible:=False;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 13.11.2011 в 18:09.
Аватар вне форума Ответить с цитированием
Старый 13.11.2011, 18:23   #5
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию

Хороший пример. Можно сделать чтобы Hint выходил за границы формы? Или тут уже нужно что-то другое не Image?
Изображения
Тип файла: gif Untitled-1.gif (25.0 Кб, 83 просмотров)
Shouldercannon вне форума Ответить с цитированием
Старый 13.11.2011, 18:25   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

За границы формы - нужно новую форму создавать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.11.2011, 18:34   #7
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию

Код:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Form2.Close;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var xVisible: Boolean;
    xPoint: TPoint;
begin
  Form2.Show;
  xPoint := Form1.ScreenToClient(Point(Mouse.CursorPos.X, Mouse.CursorPos.Y));
  Form2.Left := xPoint.X;
  Form2.Top := xPoint.Y;
end;
Form2 с картинкой постоянно ближе к верхнему левому углу.

Последний раз редактировалось Shouldercannon; 13.11.2011 в 19:02.
Shouldercannon вне форума Ответить с цитированием
Старый 13.11.2011, 19:36   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Я в примере за точку отчета брал позицию курсора в момент входа на основной Image. Для другой формы координаты нужно задавать не относительно главной формы, а относительно экрана, т.е. преобразование ScreenToClient излишне, координаты мыши и так относительно экрана
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отобразить в Image картинку с интернета Alest Работа с сетью в Delphi 22 21.05.2012 00:05
загрузить картинку с листа Excel в image на форме pooli Microsoft Office Excel 1 20.10.2010 00:51
Изменения размера изображения в Image BredoZavR Мультимедиа в Delphi 0 02.07.2009 13:30
Как уменшить картинку (image) geniy Компоненты Delphi 7 16.03.2008 18:50
картинку в image vitalik007 Общие вопросы Delphi 2 05.11.2007 21:10