powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Picture & OriginalSize
10 сообщений из 10, страница 1 из 1
Picture & OriginalSize
    #37767200
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такая ситуация в РВ10.5 DeskTop.
Открываю окно в которой только JPG-картинка, у которой установлено OriginalSize. Далее в событии Open окна подгоняю его размеры под картинку:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
integer	li_w, li_h

CONSTANT integer	SM_CYCAPTION = 4 	/*высота норм.области заголовка*/
CONSTANT integer	SM_CXFRAME = 32 	/*ширина рамки окна с изм. размером*/
CONSTANT integer	SM_CYFRAME = 33 	/*высота рамки окна с изм. размером*/

/*JPG 770x814*/
li_w=PixelsToUnits(770+GetSystemMetrics(SM_CXFRAME)*2, XPixelsToUnits!)
li_h=PixelsToUnits(814+GetSystemMetrics(SM_CYCAPTION)+GetSystemMetrics(SM_CYFRAME)*2,YPixelsToUnits!)

//корректировка размеров окна под размер изображения
this.Resize( li_w, li_h)


Почему на ПК с разрешением шрифта 120 - это сработало, а на базовом (96) - нет?
...
Рейтинг: 0 / 0
Picture & OriginalSize
    #37767888
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AIS,
А почему просто не сделать
Код: sql
1.
w_1.Width = p_1.Width

?
...
Рейтинг: 0 / 0
Picture & OriginalSize
    #37768721
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RiskaAIS,
А почему просто не сделать
Код: sql
1.
w_1.Width = p_1.Width

?
Потому, что у картинки тогда подрезаются стороны.
В моем случае пришлось дополнительно принудительно задать для картинки её оригинальные размеры, т.к. OriginalSize у РВ не срабатывает.
Но вопрос остается, почему OriginalSize не сработал? И можно ли доверять всем опциям РВ типа AutoSize?
...
Рейтинг: 0 / 0
Picture & OriginalSize
    #37774651
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AIS..В моем случае пришлось дополнительно принудительно задать для картинки её оригинальные размеры, т.к. OriginalSize у РВ не срабатывает..
Сделал, везде стало хорошо, а на W7 не попал размер.
Как же выйти из положения? Задачка - проще не бывает, а не выходит. Неужели придется получать версию винды и под каждую свои параметры вставлять, с учетом разрешения и размера шрифта.
Может, что-то не так делаю, или не в ту сторону смотрю?

P.S. А вот интересно: есть какой-то прецедент выставления претензии Sybase за наличие дефектов в среде разработки?
...
Рейтинг: 0 / 0
Picture & OriginalSize
    #37774764
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
27.04.2012 17:25, AIS написал:

> P.S. А вот интересно: есть какой-то прецедент выставления претензии
> Sybase за наличие дефектов в среде разработки?

Не смешно. Любой софт предоставляется "as is".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Picture & OriginalSize
    #37775764
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000Не смешно. Любой софт предоставляется "as is".

А никто и не говорит, что смешно. Мне вот грусно, и не только финансово, но и морально.

P.S. Не весь софт предоставляется "as is". И уж точно не тот, за который просят кучу денег.
...
Рейтинг: 0 / 0
Picture & OriginalSize
    #37805775
VFl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я как то делал похожую задачу, и все получилось при использовании GetSystemMetrics(SM_CYCAPTION), GetSystemMetrics(SM_CYBORDER) и GetSystemMetrics(SM_CХBORDER)

зачем у вас SM_CXFRAME и CYFRAME не совсем понял :(
...
Рейтинг: 0 / 0
Picture & OriginalSize
    #37809307
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VFlЯ как то делал похожую задачу, и все получилось при использовании GetSystemMetrics(SM_CYCAPTION), GetSystemMetrics(SM_CYBORDER) и GetSystemMetrics(SM_CХBORDER)

зачем у вас SM_CXFRAME и CYFRAME не совсем понял :(
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
/*ширина и высота рамки окна с изм. размером*/
SM_CXFRAME, SM_CYFRAME
SM_CXSIZEFRAME, SM_CYSIZEFRAME
/*ширина и высота рамки, которое имеет заголовок, но не может изм. свои размеры.*/
SM_CXFIXEDFRAME, SM_CYFIXEDFRAME
/*ширина и высота рамки диалогового окна*/
SM_CXDLGFRAME, SM_CYDLGFRAME
/*размеры трехмерной границы*/
SM_CXEDGE, SM_CYEDGE
/*ширина и высота границы окна*/
SM_CХBORDER, SM_CYBORDER
/*и т.д.*/


Каждая пара для своих окон и для своих целей. А в сочетании с предустановленными параметрами для окна в РВ, в отображении появляются варианты.
...
Рейтинг: 0 / 0
Picture & OriginalSize
    #37810537
VFl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый код к сожалению не нашел, но вот что получилось на скорую руку:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
p_1.Move(0,0)
p_1.originalsize = False
p_1.picturename = "C:\braut.JPG"
p_1.originalsize = True

long	ll_captions, ll_yborder, ll_xborder

/*
CONSTANT integer	SM_CYCAPTION = 4 	--высота норм.области заголовка
CONSTANT integer	SM_CXBORDER = 5 	--Width of no-sizable borders
CONSTANT integer	SM_CYBORDER = 6 	--Height of non-sizable borders
*/

ll_captions = PixelsToUnits(GetSystemMetrics(SM_CYCAPTION), YPixelsToUnits!)
ll_yborder = PixelsToUnits((GetSystemMetrics(SM_CYBORDER) + 2), YPixelsToUnits!) * 2
ll_xborder = PixelsToUnits((GetSystemMetrics(SM_CXBORDER) + 2), XPixelsToUnits!) * 2



this.resize(p_1.width + ll_xborder, p_1.height + ll_captions + ll_yborder )




К размерам картинки добавляются высота заголовка, 2 раза X бордер и 2 раза Y бордер. + 2 получено эксперементальным путем, я думаю связанно с ошибками округления. Без этого обрезается 1 пиксель в картинке справа и снизу. Работает на XP и на Vista, других не нашлось под рукой. Пробовал с разными картинками.
...
Рейтинг: 0 / 0
Picture & OriginalSize
    #37810666
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VFl ,
ваш пример для разного типа окон будет отображаться по разному.
А проблема собственно возникла при смене на ПК размера шрифта с базового (96) на 120, и наоборот.
Подгонять параметры методом проб и ошибок для каждого случая - не правильный путь.
Например, с аналогичным скриптом незначительный сбой по размерам проявился только на W7.

P.S. Картинка у меня бралась не из файла, а уже была прикручена в свойствах объекта, и OriginalSize не срабатывало. Правда может надо было в скрипте это свойство "передернуть", как у Вас, и оно бы заработало, но тема для меня уже не актуальна.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Picture & OriginalSize
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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