Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Обработка ресайза в pfc_n_cst_resize.of_Resize... / 4 сообщений из 4, страница 1 из 1
21.12.2006, 17:56
    #34216970
Antoxa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ресайза в pfc_n_cst_resize.of_Resize...
Господа!
Прошу прощения за, возможно, странный вопрос. Но никто не сталкивался с проблемой ресайза с использованием указанной в сабже PFC-ишной функции? Попытаюсь пояснить. Входными параметрами этой функции являются значения в PowerBuilder Units. По коду этой функции программа пытается заресайзить требуемый объект в соответствии с этими параметрами. При этом по моим наблюдениям происходит "округление" задаваемых значений ширины и высоты объекта до пикселей (в соответствии с текущими настройками DPI в Windows). Т.е. при стандартных 96 DPI при попытке задать датавинде ширину, равную, скажем, 1188 PBU получим следующее:

integer li_Width
dw_1.Width = 1188
li_Width = dw_1.Width
// li_Width будет иметь значение, равное 1189

Таким образом, результирующие размеры объектов могут отличаться от входных параметров вышеупомянутой функции.
Далее по коду этой функции как раз и происходит сравнение значения входных параметров и реальных размеров объекта после ресайза. Как видно из приведенного выше примера, возможны ситуации, когда реальный размер оказывается больше входного параметра. В таких случаях приложение запоминает этот реальный размер в инстансовую переменную, как минимально возможный, что влечет за собой в дальнейшем некорректную работу ресайза. Т.е. на практике это приводит к тому, что поиграв как следует сплит-барами размеры ресайзуемых объектов иногда несанкционированно вырастают.

Сразу замечу, что я не работаю с чистым набором PFC-ишных библиотек, но функция pfc_n_cst_resize.of_Resize в моем случае заимствована целиком.
// PowerBuilder 9.0.2 Build 7661 (PFC, соответственно, от "девятки").
...
Рейтинг: 0 / 0
24.12.2006, 14:27
    #34221070
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ресайза в pfc_n_cst_resize.of_Resize...
Эта функция правильно работает если не забыть задать ORIGINALSIZE. Расчет ведется по формуле нахождения коэфф пропорциональности между тек размером и оригинальным. Потом на этот коэфф все и умножается.
...
Рейтинг: 0 / 0
25.12.2006, 13:18
    #34222408
Antoxa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ресайза в pfc_n_cst_resize.of_Resize...
sboykoЭта функция правильно работает если не забыть задать ORIGINALSIZE.
Sboyko, можно попросить вас процитировать кусочек кода, где PFC-ишная обработка ресайза учитывает упомянутый ORIGINALSIZE?
...
Рейтинг: 0 / 0
27.12.2006, 10:43
    #34227035
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка ресайза в pfc_n_cst_resize.of_Resize...
К сожадение инет и ПБ - это разные компы. Просто когда я разбирал ПФЦ и собственно программу resize(были с этим проблемы) внутри ПФЦ то увидел, что расчет ведется от оригинал сайз-кот запоминается в параметрах atrib. А в дальнейшем считается коэфф растяжения по координатам, на который все и умножается.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Обработка ресайза в pfc_n_cst_resize.of_Resize... / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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