Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / calll function from UserObject / 5 сообщений из 5, страница 1 из 1
01.12.2007, 09:28
    #34979516
UserObject
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
calll function from UserObject
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
В user nonvisual object  'uo_GetStringLength' ,
Содержащий функцию 
Exec()
Как ней воспользоваться из
Другого пользовательского объекта
uo_st_tipbox?
Создал объектную переменную
 
uo_getstringlength uo_1

во вкладке ‘declare instence variables'
Объекта uo_st_tipbox, который поставил на 
dialog window.

string ls_1
ls_1 = "С.Петербург"
обе нижеидущие строки 
//uo_1.exec(ls_1)
uo_1.FUNCTION exec(ls_1)
завершаются

Error: Null object reference at line 33 ..
Т.е. на строке
uo_1.FUNCTION exec(ls_1)
...
Рейтинг: 0 / 0
01.12.2007, 12:13
    #34979588
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
calll function from UserObject
Перед
Код: plaintext
uo_1.exec(ls_1)
Вставить
Код: plaintext
uo_1 = create uo_getstringlength
а после испольлзования
Код: plaintext
DESTROY uo_1
И еще - ширина и высота шрифта зависит от параметров начертания этого шрифта. Имя, размер, стиль и т.д.
...
Рейтинг: 0 / 0
02.12.2007, 18:48
    #34980581
calll function from UserObject
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Как определить ширину строки Static text
uo_st_tipbox.width =  600  // просто  600  угадал для строки "С.Петербург_Voronezh"
как определить вот эти  600  ?
Отсутствует у меня описание функции:
GetTextExtentPoint32(HDC,txt,len(txt),SFS)

Если строка содержит  20  символов, ширина символов разная,
Т.к. исходные условия таковы:
long il_Weight =  400 
long il_Italic= 0 
long il_Underline =  0 
long il_StrikeOut =  0 
long il_charset =  204 
long il_Height =  10 
// Но в каких единицах, pixel ?
//+ string is_fontname=  'Arial' // имя шрифта влияет на высоту
// и ширину. Для 'Arial'   str_fontsize.cx =  136  и  str_fontsize.cy =  16 
string is_fontname=  'courier' // Для  'courier'  str_fontsize.cx =  160  и  str_fontsize.cy =  13 
то как определить ширину строки?
В свойствах контрола st_1 ширина =  1782 ,
Если поместить в него мою строку, то справа
В концовке остаётся пустое пространство
...
Рейтинг: 0 / 0
02.12.2007, 21:58
    #34980842
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
calll function from UserObject
В PowerBuilder'е есть функция для перевода из pixels в PBUnits
Код: plaintext
PixelsToUnits(str_fontsize.cx,XPixelsToUnits! )
Описание функции GetTextExtentPoint32
...
Рейтинг: 0 / 0
04.12.2007, 11:06
    #34984241
Voitovych
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
calll function from UserObject
внизу снимки объясняющие проблему.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Объектные переменные польз-го объекта
object 'uo_getstringlength' – ничего не менял.
long il_Weight =  400 
long il_Italic= 0 
long il_Underline =  0 
long il_StrikeOut =  0 
long il_charset =  204 
long il_Height =  10 
string is_fontname=  'Arial' тип шрифта True 

нижеидущие строки поставил в event constructor
командной кнопки

This.is_tip = "PB10.5 float prompt \ suggest 29,11,200712222222345"
string ls_1
ls_1 = This.is_tip
uo_1.exec(ls_1)
integer Value
Value = PixelsToUnits(gs_fontsize.cx,XPixelsToUnits! )
uo_st_tipbox.width = Value
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / calll function from UserObject / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]