Страница 1 из 1

Изменить стиль и размер текста в MapBasic

Добавлено: 14 апр 2023, 14:07
grandred75
Добрый день.
Хочу с помощью программы изменить стиль текстового слоя. А конкретно изменить его размер. Написал небольшой код, но желаемого результата не получил.
Подскажите, пожалуйста, что тут не так?

Include "mapbasic.def"
Declare Sub main

Declare Function FontStyle(ByVal oObject as Object, ByVal fFontStyle as Font) as Object
Function FontStyle(ByVal oObject as Object, ByVal fFontStyle as Font) as Object
Alter Object oObject Info OBJ_INFO_TEXTFONT, fFontStyle
FontStyle=oObject
End Function

Sub main
Select * from Текст into TEMP_ING NoSelect
Update TEMP_ING
Set OBJ=FontStyle(OBJ,MakeFont("Arial", 0, 1,red, 1))
Close Table TEMP_ING
Dim fFont as Font
fFont = MakeFont("Helv", 1, 20,BLUE, white)
Select * from Текст into TEMP_ING NoSelect
Update TEMP_ING
Set OBJ=FontStyle(OBJ,MakeFont("Arial", 3, 5,RED, 10))
end sub

Re: Изменить стиль и размер текста в MapBasic

Добавлено: 14 апр 2023, 14:25
gamm

Re: Изменить стиль и размер текста в MapBasic

Добавлено: 14 апр 2023, 15:14
grandred75
... ну здесь про стиль линии ... это не совсем то, чо нужно ...
Мне бы размер текста изменить

Re: Изменить стиль и размер текста в MapBasic

Добавлено: 14 апр 2023, 16:36
gamm
пишут, что с размером текста действительно есть проблема тыц. Тогда только извлекать текст, и создавать новый объект с новым фонтом, его и возвращать.

Re: Изменить стиль и размер текста в MapBasic

Добавлено: 17 апр 2023, 10:33
grandred75
Похоже, что так и есть ... Жаль ... Спасибо за ответ.

Re: Изменить стиль и размер текста в MapBasic

Добавлено: 27 апр 2023, 18:44
spawner
grandred75 писал(а):
14 апр 2023, 14:07
Хочу с помощью программы изменить стиль текстового слоя. А конкретно изменить его размер.
Создаётся временное окно карты с временным слоем

В этом окне рисуется текст нужного размера в нужном масштабе

Полученный текстовый объект(ы) сохраняем в переменную и используем как надо

Удаляем временный слой, окно карты закрывается


Работает в целом нормально, но реализация конечно через зад :) но других путей вроде нет