
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
21.12.2006, 17:56
|
|||
|---|---|---|---|
|
|||
Обработка ресайза в pfc_n_cst_resize.of_Resize... |
|||
|
#18+
Господа! Прошу прощения за, возможно, странный вопрос. Но никто не сталкивался с проблемой ресайза с использованием указанной в сабже 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, соответственно, от "девятки"). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.12.2006, 14:27
|
|||
|---|---|---|---|
Обработка ресайза в pfc_n_cst_resize.of_Resize... |
|||
|
#18+
Эта функция правильно работает если не забыть задать ORIGINALSIZE. Расчет ведется по формуле нахождения коэфф пропорциональности между тек размером и оригинальным. Потом на этот коэфф все и умножается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.12.2006, 13:18
|
|||
|---|---|---|---|
|
|||
Обработка ресайза в pfc_n_cst_resize.of_Resize... |
|||
|
#18+
sboykoЭта функция правильно работает если не забыть задать ORIGINALSIZE. Sboyko, можно попросить вас процитировать кусочек кода, где PFC-ишная обработка ресайза учитывает упомянутый ORIGINALSIZE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2006, 10:43
|
|||
|---|---|---|---|
Обработка ресайза в pfc_n_cst_resize.of_Resize... |
|||
|
#18+
К сожадение инет и ПБ - это разные компы. Просто когда я разбирал ПФЦ и собственно программу resize(были с этим проблемы) внутри ПФЦ то увидел, что расчет ведется от оригинал сайз-кот запоминается в параметрах atrib. А в дальнейшем считается коэфф растяжения по координатам, на который все и умножается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=15&tablet=1&tid=1337410]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 320ms |

| 0 / 0 |
