Масштабирование картинок

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Гость

Сообщение Гость »

Здравствуйте, ClaList.

Подскажите! как кратно масштабировать через IMAGE ?

А кому нужно быстро перемещаться по картинке (как в графических редакторах) выведенной через IMAGE с помощью мышки см. пример

Точки вставки для прокрутки картинки мышкой

Код: Выделить всё

!************** Local Data *********************
!---------перемещение картинки-----
fl_no   byte  !нажал отжал кнопку
tt1     long    !скрол тумба
tt2     long    !
px      long  ! позиция
py      long  !
!-----------------------------------

***********Windows
     REGION,AT(5,6,287,240),USE(?Region1),IMM,CURSOR('handgrab.cur')
     IMAGE,AT(3,3,301,255),USE(?Image1),HVSCROLL,#ORIG(?Image1)


********** EVENT:MouseMove (вешается на свойство региона)***********
      !управление перемещением картинки     ?Region -- EVENT:MouseMove
      ! пошло движение
      of EVENT:MouseMove
        if fl_no
          if MouseX()>tt1
             ?Image1{prop:hscrollpos}=255-(px+(MouseX()-tt1))           !горизонталь
          elsif MouseX()<tt1
             ?Image1{prop:hscrollpos}=255-(px-(tt1-MouseX()))           !горизонталь
          end
          if Mousey()>tt2
             ?Image1{prop:vscrollpos}=255-(py+(Mousey()-tt2))        !вертикаль
          elsif Mousey()<tt2
             ?Image1{prop:vscrollpos}=255-(py-(tt2-Mousey()))        !вертикаль
          end
        end
      of EVENT:MouseUp       !кнопка отжата
         fl_no=0
      of EVENT:MouseDown     !нажата левая кнопка
         fl_no=1
         tt1=MouseX()                !горизонталь  запомнить
         tt2=Mousey()                !вертикаль
         px=255-?Image1{prop:hscrollpos}           !горизонталь
         py=255-?Image1{prop:vscrollpos}           !вертикаль
      !------------------------------------------------------
--
С уважением,
Евгений г.Дубна mailto:deesoftprog1@list.ru


(Добавление)

Привет
Можно так:

Код: Выделить всё

Scale routine
    case choice(?Scale)    !dropbox с выбором масштаба
      of 1  !по ширине страницы
        ?Image{PROP:MaxWidth}  = QuickWindow{PROP:ClientWidth} -
GetSystemMetrics(SM_CXVSCROLL)
        ?Image{PROP:MaxHeight} = QuickWindow{PROP:ClientHeight} -
GetSystemMetrics(SM_CXHSCROLL)
      of 2  !100%
        ?Image{PROP:MaxWidth}  = Loc:ImageWidth
        ?Image{PROP:MaxHeight} = Loc:ImageHeight
      of 3  !50%
        ?Image{PROP:MaxWidth}  = Loc:ImageWidth / 2
        ?Image{PROP:MaxHeight} = Loc:ImageHeight / 2
    .end
     exit
С уважением, Михаил

(Добавление)

спасибо Михаил!

То что надо :D

Евгений
Написал: ClaList(2)
Ответить