Пожалуйста, не блокируйте рекламу!

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн Andrey_bk

  • **
  • 34
  • Репутация: +0/-0
  • Пол: Мужской
Перемещение текста на 2D символе
« : Сентября 15, 2020, 09:07:46 »

Test

Добрый день коллеги. Никак не могу разобраться, как сделать точку HOTSPOT2 чтобы за нее двигать текст на 2D символе объекта. Чтобы получилось что-то типа встроенной в объект выносной надписи, которую можно перемещать в любое место, и чтобы размеры объекта A и B оставались заданными.

*

Оффлайн Valery_R

  • *****
  • 1007
  • Репутация: +285/-0
  • Пол: Мужской
Перемещение текста на 2D символе
« Ответ #1 : Сентября 15, 2020, 09:52:35 »
...как сделать точку HOTSPOT2 чтобы за нее двигать текст на 2D символе объекта....
Может эта ссылка или эта ссылка помогут...

*

Оффлайн lsr

  • *****
  • 1268
  • Репутация: +247/-6
  • Пол: Мужской
  • http://sl-gdl.com
Перемещение текста на 2D символе
« Ответ #2 : Сентября 16, 2020, 13:51:15 »
ИлиТута местная Далеко ходить не надо
Walery W на писал сагу про горячие точки больше десяти лет назад И на мой взгляд самое простое - читать руководство по GDL - там все то же самое, так же все понятно, и оно всегда под рукой.

*

Оффлайн bImaginaire

  • **
  • 36
  • Репутация: +5/-1
  • Пол: Мужской
Перемещение текста на 2D символе
« Ответ #3 : Мая 28, 2021, 21:34:41 »
Вот вырезал из одного моего объекта (с упрощением, в оригинале там еще вызовы в MVO)

DIM ap_labelPosition[3][2] - это координаты маркера, чувствительные к масштабу (всего шесть)
ap_frame - это рамка
ap_markerText - это собственно текст

DEFINE STYLE "text"   AC_TextFont_1, AC_TextSize_1, 5, 0
STYLE "text"
PEN AC_TextPen_1
IF GLOB_SCALE>25 THEN dd=1
IF GLOB_SCALE<=25 AND GLOB_SCALE>10 THEN dd=2
IF GLOB_SCALE<=10 THEN dd=3

ee=1
ff=2

HOTSPOT2 0, ap_labelPosition[dd][ff], ap_ID, ap_labelPosition[dd][ee], 1+128                   : ap_ID=ap_ID+1
HOTSPOT2 -0.1, ap_labelPosition[dd][ff], ap_ID, ap_labelPosition[dd][ee], 3                   : ap_ID=ap_ID+1
HOTSPOT2 ap_labelPosition[dd][ee], ap_labelPosition[dd][ff], ap_ID, ap_labelPosition[dd][ee], 2     : ap_ID=ap_ID+1
HOTSPOT2 ap_labelPosition[dd][ee], 0, ap_ID, ap_labelPosition[dd][ff], 1+128                  : ap_ID=ap_ID+1
HOTSPOT2 ap_labelPosition[dd][ee], -0.1, ap_ID, ap_labelPosition[dd][ff], 3                  : ap_ID=ap_ID+1
HOTSPOT2 ap_labelPosition[dd][ee], ap_labelPosition[dd][ff], ap_ID, ap_labelPosition[dd][ff], 2      : ap_ID=ap_ID+1

ADD2 ap_labelPosition[dd][ee], ap_labelPosition[dd][ff]
   
HOTSPOT2 0,0
linePositionY = ac_textSize_1/1000*GLOB_SCALE

TEXT2 0, 0, ap_markerText

IF GLOB_FEEDBACK_MODE THEN ap_frame=1
linePositionX = STW(ap_markerText+"  ")*0.5/1000*GLOB_SCALE
IF gs_backFill THEN FILL gs_backFill_type
PEN ap_markerPen
POLY2_B 5, ap_frame+2, gs_backfill_pen_fg, gs_backfill_pen_bg, 
          -linePositionX, linePositionY, 1,
           linePositionX, linePositionY, 1,
           linePositionX, -linePositionY, 1,
          -linePositionX, -linePositionY, 1,
           -linePositionX, linePositionY, 1

 

Похожие темы

  Тема / Автор