On-line: gfilatov2002, гостей 1. Всего: 2 [подробнее..]
АвторСообщение
администратор




Пост N: 3490
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.08.13 16:33. Заголовок: Смена "режима" под GTWVT


Заведу отдельную тему все же.

 

#include "hbgtinfo.ch"

proc main
local j:=.f.
local a
REQUEST HB_GT_WVT

REQUEST HB_LANG_RU866
HB_LANGSELECT("RU866")
REQUEST HB_CODEPAGE_RU866
hb_cdpSelect( "RU866" )

hb_gtInfo(HB_GTI_CODEPAGE, 255)
hb_gtInfo(HB_GTI_FONTNAME, 'Lucida Console')
hb_gtInfo(HB_GTI_FONTQUALITY,4)


do while .t.
if(j,Wvt_setmode(35,130),Wvt_setmode(25,80))
for a=0 to maxrow()
@ a,0 say a color "w/n"
next

inkey(0)
j:=!j

if lastkey()==27
exit
endif


enddo

return
*************
Func Wvt_setmode(nrow,ncol)
HB_GtInfo(HB_GTI_FONTSIZE , Int(HB_GtInfo(HB_GTI_DESKTOPHEIGHT)/(nrow)))
HB_GtInfo(HB_GTI_FONTWIDTH, Int(HB_GtInfo(HB_GTI_DESKTOPWIDTH) /(ncol)))
return Setmode(nrow,ncol)


При первом вызове установится Setmode 25x80 и окно почти на весь экран
Жмем пробел
Установится Setmode 35x130 и окно почти на весь экран
Жмем пробел
Установится Setmode 25x80 а окно уже не такое как было при первом вызове и намного меньше.
Что не так делаю ?
Помогите разобраться.
Спасибо.


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 22 , стр: 1 2 All [только новые]





Пост N: 27
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 29.08.13 17:04. Заголовок: возможно, желаемые размеры больше размера экрана


не указаны размеры шрифта - видимо при старте берутся из дефолта
и окна получаются больше чем экран.

добавил три строки - чтобы окна были меньшего размера, все переключается в норме
====================
#include "hbgtinfo.ch"
proc main
local j:=.f.
local a
REQUEST HB_GT_WVT
REQUEST HB_GT_WVT_DEFAULT

REQUEST HB_LANG_RU866
HB_LANGSELECT("RU866")
REQUEST HB_CODEPAGE_RU866
hb_cdpSelect( "RU866" )
hb_gtInfo(HB_GTI_CODEPAGE, 255)
hb_gtInfo(HB_GTI_FONTNAME, 'Lucida Console')
hb_gtInfo(HB_GTI_FONTQUALITY,4)
do while .t.
if(j,Wvt_setmode(35,130),Wvt_setmode(25,80))
for a=0 to maxrow()
@ a,0 say a color "w/n"
next
inkey(0)
j:=!j
if lastkey()==27
exit
endif
enddo
return
*************
Func Wvt_setmode(nrow,ncol)
HB_GtInfo(HB_GTI_FONTSIZE , Int(HB_GtInfo(HB_GTI_DESKTOPHEIGHT)/(nrow)))
HB_GtInfo(HB_GTI_FONTWIDTH, Int(HB_GtInfo(HB_GTI_DESKTOPWIDTH) /(ncol)))
Setmode(nrow,ncol)
HB_GtInfo( HB_GTI_FONTWIDTH , 4 )
HB_GtInfo( HB_GTI_FONTSIZE , 10 )

return .t.



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 28
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 29.08.13 17:10. Заголовок: возможно, нужно учитывать толщину рамки окна



для 25*80

xFONTWIDTH := INT((HB_GTINFO( HB_GTI_DESKTOPWIDTH )-30 )/80 )
xFONTSIZE := INT((HB_GTINFO( HB_GTI_DESKTOPHEIGHT )-24 )/25 )
xSCREENWIDTH := 80 * xFONTWIDTH
xSCREENHEIGHT := 25 * xFONTSIZE


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3491
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.08.13 17:42. Заголовок: petr707 Идею понял ..


petr707
Идею понял , спасибо

Вот что получилось , работает правильно
 
Func Wvt_setmode(nrow,ncol)
local xHEIGHT:=HB_GtInfo(HB_GTI_DESKTOPHEIGHT)
local xWIDTH:=HB_GtInfo(HB_GTI_DESKTOPWIDTH)


HB_GtInfo(HB_GTI_FONTSIZE , int(xHEIGHT/nrow))
HB_GtInfo(HB_GTI_FONTWIDTH, int(xWIDTH/ncol))
Setmode(nrow,ncol)

HB_GtInfo(HB_GTI_SCREENWIDTH,Int(xWIDTH*(ncol)))
HB_GtInfo(HB_GTI_SCREENHEIGHT,int(xHEIGHT*(nrow)))
Setmode(nrow,ncol) // только так иначе окно уедет


return .t.




Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4892
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.06.15 10:32. Заголовок: Запарил меня совсем ..


Запарил меня совсем GTWVG
Мне нужно на лету менять кол-во колонок и строк , под чистым WVT все нормально
Что делаю не так ?

PS
Кроме того при HB_GT_WVT_DEFAULT цвета какие то блёклые
При HB_GT_WVG_DEFAULT отличные сочные цвета ;)
 



#include "hbgtinfo.ch"

proc main

REQUEST HB_GT_WVT
REQUEST HB_GT_WVG_DEFAULT

// если вот так все работает , но WVG нужен так как без него не вывести картинки

//REQUEST HB_GT_WVT_DEFAULT
//REQUEST HB_GT_WVG



REQUEST HB_LANG_RU866
HB_LANGSELECT("RU866")
REQUEST HB_CODEPAGE_RU866
hb_cdpSelect( "RU866" )

hb_gtInfo(HB_GTI_CODEPAGE, 255)
hb_gtInfo(HB_GTI_FONTNAME, 'Lucida Console')
hb_gtInfo(HB_GTI_FONTQUALITY,4)


@ 0,0 say wvt_setmode(30,100) // .T.
inkey(0)

@ 0,0 say wvt_setmode(25,80) // почему то .F.
inkey(0)

return



Func Wvt_setmode(nrow,ncol)
local ret:=.t.
local xHEIGHT:=HB_GtInfo(HB_GTI_DESKTOPHEIGHT)
local xWIDTH:=HB_GtInfo(HB_GTI_DESKTOPWIDTH)
local nMaxScrRow
local nMaxScrCol

setmode(25,80)

hb_gtInfo( HB_GTI_FONTWIDTH, Int(HB_GtInfo(HB_GTI_DESKTOPWIDTH)/ncol))
hb_gtInfo( HB_GTI_FONTSIZE, Int(HB_GtInfo(HB_GTI_DESKTOPHEIGHT)/nrow))

/* resize console window using new font size */
SetMode( MaxRow() + 1, MaxCol() + 1 )

/* get screen dimensions */
nMaxScrRow := hb_gtInfo( HB_GTI_DESKTOPROWS )
nMaxScrCol := hb_gtInfo( HB_GTI_DESKTOPCOLS )


/* resize console window to the screen size */
SetMode( nMaxScrRow, nMaxScrCol )
HB_GtInfo(HB_GTI_SCREENWIDTH,xWIDTH)
HB_GtInfo(HB_GTI_SCREENHEIGHT,xHEIGHT)
ret:=SetMode( nMaxScrRow, nMaxScrCol )
return ret




Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4893
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.06.15 13:57. Заголовок: WVT http://f5.s.qip...


WVT

WVG

Это по поводу цвета

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4894
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.06.15 14:59. Заголовок: что интересно первый..


что интересно первый вызов под WVG cрабатывает всегда
wvt_setmode(30,110) // .t.
при следующих вызовах возвращается .f.
Возможно нужно выполнить некий сброс окна
который выполняется до первого вызова wvt_setmode но мне
о нем ни чего не известно.
Есть мысли у кого ?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 449
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 14.06.15 11:35. Заголовок: Dima пишет: WVT ..


Dima пишет:

 цитата:
WVT

WVG

Это по поводу цвета



Разные драйверы, написаны разными людьми. У них - разное восприятие цвета.

aPal := hb_gtInfo(HB_GTI_PALETTE) // возвращает палитру
hb_gtInfo(HB_GTI_PALETTE,aPal) // восстанавливает палитру целиком
hb_gtInfo(HB_GTI_PALETTE,nColor,nRGB) // меняет один цвет в палитре

В свое время я плюнул на эти изменения в цвете при переходе с WVT на WVG и привязал их персонально к каждому юзеру в базе настроек + дал возможность каждому поиграть виндовым Color Picker'om.
Это сняло вопрос с "бледностью цветов".



Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 450
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 14.06.15 12:33. Заголовок: Dima пишет: что инт..


Dima пишет:

 цитата:
что интересно первый вызов под WVG cрабатывает всегда
wvt_setmode(30,110) // .t.
при следующих вызовах возвращается .f.



Потому что неправильно выполняется расчет размеров окна.
Попробуй в wvt_SetMode сделать так:

hb_gtInfo(HB_GTI_SCREENWIDTH ,nCol * hb_gtInfo( HB_GTI_FONTWIDTH))
hb_gtInfo(HB_GTI_SCREENHEIGHT,nRow * hb_gtInfo( HB_GTI_FONTSIZE))

Т.е. размер окна в пикселях нужно устанавливать не по размеру desktop, а по размеру символа * кол-во символов (в строке/столбце)

Тогда всегда будут .T. хотя-бы под WVT.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 451
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 14.06.15 13:10. Заголовок: Вот так работает и п..


Вот так работает и под WVT и под WVG:

 #include "hbgtinfo.ch"  

proc main

REQUEST HB_GT_WVG_DEFAULT
REQUEST HB_GT_WVT

// REQUEST HB_GT_WVT_DEFAULT
// REQUEST HB_GT_WVG


REQUEST HB_LANG_RU866
HB_LANGSELECT("RU866")
REQUEST HB_CODEPAGE_RU866
hb_cdpSelect( "RU866" )

hb_gtInfo(HB_GTI_FONTNAME, 'Lucida Console')
hb_gtInfo(HB_GTI_FONTQUALITY,3)

@ 0,0 say MySetmode(30,100)
@ 1,0 say hb_NTOS(MAXROW()+1)+"x"+hb_NTOS(MAXCOL()+1)+SPACE(10)
inkey(0)

@ 0,0 say MySetmode(50,150)
@ 1,0 say hb_NTOS(MAXROW()+1)+"x"+hb_NTOS(MAXCOL()+1)+SPACE(10)
inkey(0)

@ 0,0 say MySetmode(40,90)
@ 1,0 say hb_NTOS(MAXROW()+1)+"x"+hb_NTOS(MAXCOL()+1)+SPACE(10)
inkey(0)

@ 0,0 say MySetmode(35,85)
@ 1,0 say hb_NTOS(MAXROW()+1)+"x"+hb_NTOS(MAXCOL()+1)+SPACE(10)
inkey(0)

return

* --------------------- *
Func MySetmode(nRow,nCol)

// устанавливаем заведомо меньше
hb_gtInfo( HB_GTI_FONTWIDTH, 5)
hb_gtInfo( HB_GTI_FONTSIZE, 8)
SetMode(nRow,nCol)

// устанавливаем нужный размер шрифта под запрошенный размер окна программы в символах
hb_gtInfo( HB_GTI_FONTWIDTH, INT(HB_GtInfo(HB_GTI_DESKTOPWIDTH) /nCol))
hb_gtInfo( HB_GTI_FONTSIZE, INT(HB_GtInfo(HB_GTI_DESKTOPHEIGHT)/nRow))

return SetMode(nRow,nCol)


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4896
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.06.15 13:26. Заголовок: Sergy пишет: Func ..


Sergy пишет:

 цитата:
Func MySetmode(nRow,nCol)


Да ты прав ! Все работает как надо Спасибо.
А я начал было мутить с пересозданием окна WVG , тоже работает.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4897
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.06.15 13:33. Заголовок: Sergy Возможно у те..


Sergy
Возможно у тебя есть еще один ответ на вопрос.
Под WVT работает HB_gtInfo( HB_GTI_CLOSABLE, .f. ) // крестик становится не доступен
Под WVG не работает , как то лечится ?

PS
В ранних версиях работает

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 452
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 14.06.15 18:44. Заголовок: Dima пишет: Возможн..


Dima пишет:

 цитата:
Возможно у тебя есть еще один ответ на вопрос.
Под WVT работает HB_gtInfo( HB_GTI_CLOSABLE, .f. ) // крестик становится не доступен
Под WVG не работает , как то лечится ?

PS
В ранних версиях работает



У меня работает так: hb_gtInfo( HB_GTI_CLOSEMODE, 1 )

2013-11-06 23:09 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) 
* include/hbgtinfo.ch
+ added new hb_gtInfo() switch: HB_GTI_CLOSEMODE
It controls close event (i.e. ALT+F4 and/or [x] button in MS-Windows)
behavior:
== 0 - terminate application
>= 1 - generate HB_K_CLOSE
== 2 - disable close button



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4899
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.06.15 21:27. Заголовок: Sergy Да новую фишк..


Sergy
Да новую фишку я видел и да с GTWVT работает а вот с GTWVG нет.
Ранее пахало.


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 453
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 14.06.15 21:32. Заголовок: У меня с GTWVG работ..


У меня с GTWVG работает. И на осенней сборке и на нынешней, июньской.
При нажатии на крестик появляется HB_K_CLOSE.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4900
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.06.15 21:38. Заголовок: Sergy пишет: У меня..


Sergy пишет:

 цитата:
У меня с GTWVG работает


То есть крест такой ?

Это под WVT
Под WVG такого эффекта добиться не получилось......

PS
Harbour 3.2.0dev (r1502260836)

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 454
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 14.06.15 22:40. Заголовок: Dima пишет: Под WVG..


Dima пишет:

 цитата:
Под WVG такого эффекта добиться не получилось......



Сначала тоже не получилось, потом вспомнил: индус, который разработчик - писал, что многие(некоторые?) настройки работают только после того, как WVG подсистема запущена. Т.е. перед установкой CLOSABLE нужно сделать CLS или хотя-бы ? "hello".

Только что попробовал на твоем примере - крестик стал серым под WVG, если написать вызов не в самом начале программы, а после @ SAY:
@ 0,0 say MySetmode(30,100)
@ 1,0 say hb_NTOS(MAXROW()+1)+"x"+hb_NTOS(MAXCOL()+1)+SPACE(10)
@ 2,0 say hb_gtVersion(1)
hb_gtInfo(HB_GTI_CLOSEMODE, 2 )
inkey(0)




Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4901
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.06.15 22:58. Заголовок: Sergy Писец :sm12:..


Sergy
Писец
Работает

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 455
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 14.06.15 23:23. Заголовок: :sm112: ..




Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4936
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.06.15 21:25. Заголовок: Жесть. Сделал в рабо..


Жесть. Сделал в рабочей проге парочку таблиц в 30 строк на 110 колонок , чисто эксперимента ради
и что бы народ поюзал. Было 25 на 80 и окно на весь экран.
Уверен был на 200 % что всем понравится.
Спустя 3 дня начались вопли со стороны бухгалтерии и оптового отдела .......что им мелко и зрение
могут потерять
А ведь шрифт чуть совсем меньше почти и не заметно , зато инфы куда больше влезает.
Не знаю что с ними и делать и это если учесть что руководство мечтает иметь GUI прогу.
Представляю себе ГУЙ с таким шрифтом и размеры контролов , да они замаются с ней работать ))

PS
GTWVG



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4292
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.06.15 21:30. Заголовок: Dima пишет: Не знаю..


Dima пишет:

 цитата:
Не знаю что с ними и делать и это если учесть что руководство мечтает иметь GUI прогу.


Сделай им выбор шрифта и пускай сами решают, каким пользоваться - беречь им зрение или нет. Бухи всегда капризные !

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 139
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 21.06.15 21:34. Заголовок: Пользователи..


Суха теория, а древо жизни вечно зеленеет..
Психология, новолуние, не дали премию , что-то еще..не всегда понятное..
Если им дать быструю горячую клавишу изменения размера шрифта ( типа Ctrl+ в броузере),
может и попривыкнут..


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4937
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.06.15 21:35. Заголовок: Andrey пишет: Сдела..


Andrey пишет:

 цитата:
Сделай им выбор шрифта


Ты имеешь в виду в таблицах , кнопках и других контролах ? Но тогда нужно вероятно
и размеры их рассчитывать соответственно и возможно координаты.
По ходу шрифт в MAIN MENU не укажешь и это только в настройках винды можно сделать.


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 22 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 625
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет