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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2011, 15:14   #1
winner13
 
Регистрация: 22.04.2011
Сообщений: 3
По умолчанию Работа с image хз как лучше сделать.

Приветствую всех кто эт читает, в общем проблема стоит не реализации проекта, а в том как сделать, нужно рисунок или карту разделить на 12 секторов , и по клику на определённый сектор увеличивать всё что находится в секторе.

Сейчас метаюсь с методом реализации, в общем сделал на форме 2 image объекта, на одном разместил карту, с разрисовкой по конве на 12 секторов, второй скрыл . Снизу 12 кнопок с событиями на клик загрузки из отдельной папки уже увеличенного изображения сектора, и установкой видимости в тру.

как сделать лучше??? кто что посоветует???(ХЗ опыта не хватает как сделать именно чтобы не на кнопки тыкать, а на сами секторы на картинке, или же как реально увеличивать из исходного image...)
winner13 вне форума Ответить с цитированием
Старый 23.04.2011, 07:15   #2
was3110
Форумчанин
 
Аватар для was3110
 
Регистрация: 25.04.2010
Сообщений: 254
По умолчанию

TImage имеет размеры, а обработчик события Click (рассмотрите параметры) всегда передает координаты точки клика. Поэтому вы всегда в курсе - в какую точку щелкнул пользователь... можете даже смещать изображение так, чтобы точка клика помещалась в центр...
помогать студентам - моя вторая профессия
was3110 вне форума Ответить с цитированием
Старый 23.04.2011, 09:08   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
а обработчик события Click (рассмотрите параметры) всегда передает координаты точки клика.
вообще то передают его координаты события OnMouseUp OnMouseDown
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.04.2011, 09:42   #4
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Код:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var xs,ys,ws,hs,n:integer;
     bmp:TBitMap;
     r,r1:TRect;
begin
//допустим мы хотим разбить имидж с размером сектора 20*20
n:=20;
ws:=n;
hs:=n;
bmp:=TBitMap.Create;
bmp.SetSize(ws,hs);
//теперь узнаем начальные координаты выбранного сектора и отрисуем его на канве формы
xs:=trunc(X/10)*10;
ys:=trunc(Y/10)*10;
//скопируем этот сектор в вмр
r:=Bounds(xs,ys,ws,hs);
bmp.Canvas.CopyRect(bmp.Canvas.ClipRect,image1.Picture.Bitmap.Canvas,r);
r1:=bounds(0,0,ws*2,hs*2);//отрисовываем с увеличением 2
canvas.StretchDraw(r1,bmp);
bmp.Free;
end;

Последний раз редактировалось SERG1980; 25.04.2011 в 14:33.
SERG1980 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа с локазизацией. Как можно сделать лучше? exploys Общие вопросы C/C++ 0 12.04.2011 17:05
Как лучше сделать форму редактирования таблицы ? Allan Stark Microsoft Office Access 15 09.02.2011 22:30
как сделать Класс типа Image SevenXP Общие вопросы Delphi 13 19.09.2010 13:13
Посоветуйте, как лучше сделать бегущий график Shaienn Общие вопросы C/C++ 3 20.10.2009 18:31
Подскажите как лучше сделать Gendolff БД в Delphi 1 10.02.2007 08:47