Автор | Сообщение |
|
| |
Пост 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 а окно уже не такое как было при первом вызове и намного меньше. Что не так делаю ? Помогите разобраться. Спасибо.
|
|
|
Ответов - 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.
|
|
|
|
| |
Пост 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
|
|
|
|
| |
Пост 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.
|
|
|
|
| |
Пост 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
|
|
|
|
| |
Пост N: 4893
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.06.15 13:57. Заголовок: WVT http://f5.s.qip...
WVT WVG Это по поводу цвета
|
|
|
|
| |
Пост N: 4894
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.06.15 14:59. Заголовок: что интересно первый..
что интересно первый вызов под WVG cрабатывает всегда wvt_setmode(30,110) // .t. при следующих вызовах возвращается .f. Возможно нужно выполнить некий сброс окна который выполняется до первого вызова wvt_setmode но мне о нем ни чего не известно. Есть мысли у кого ?
|
|
|
|
| |
Пост 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. Это сняло вопрос с "бледностью цветов".
|
|
|
|
| |
Пост 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.
|
|
|
|
| |
Пост 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)
|
|
|
|
| |
Пост N: 4896
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.06.15 13:26. Заголовок: Sergy пишет: Func ..
Sergy пишет: цитата: | Func MySetmode(nRow,nCol) |
| Да ты прав ! Все работает как надо Спасибо. А я начал было мутить с пересозданием окна WVG , тоже работает.
|
|
|
|
| |
Пост N: 4897
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.06.15 13:33. Заголовок: Sergy Возможно у те..
Sergy Возможно у тебя есть еще один ответ на вопрос. Под WVT работает HB_gtInfo( HB_GTI_CLOSABLE, .f. ) // крестик становится не доступен Под WVG не работает , как то лечится ? PS В ранних версиях работает
|
|
|
|
|
| |
Пост 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
|
|
|
|
| |
Пост N: 4899
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.06.15 21:27. Заголовок: Sergy Да новую фишк..
Sergy Да новую фишку я видел и да с GTWVT работает а вот с GTWVG нет. Ранее пахало.
|
|
|
|
| |
Пост N: 453
Зарегистрирован: 08.07.06
|
|
Отправлено: 14.06.15 21:32. Заголовок: У меня с GTWVG работ..
У меня с GTWVG работает. И на осенней сборке и на нынешней, июньской. При нажатии на крестик появляется HB_K_CLOSE.
|
|
|
|
| |
Пост N: 4900
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.06.15 21:38. Заголовок: Sergy пишет: У меня..
Sergy пишет: То есть крест такой ? Это под WVT Под WVG такого эффекта добиться не получилось...... PS Harbour 3.2.0dev (r1502260836)
|
|
|
|
| |
Пост 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)
|
|
|
|
| |
Пост N: 4901
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.06.15 22:58. Заголовок: Sergy Писец :sm12:..
Sergy Писец Работает
|
|
|
|
| |
Пост N: 455
Зарегистрирован: 08.07.06
|
|
Отправлено: 14.06.15 23:23. Заголовок: :sm112: ..
|
|
|
|
| |
Пост N: 4936
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.06.15 21:25. Заголовок: Жесть. Сделал в рабо..
Жесть. Сделал в рабочей проге парочку таблиц в 30 строк на 110 колонок , чисто эксперимента ради и что бы народ поюзал. Было 25 на 80 и окно на весь экран. Уверен был на 200 % что всем понравится. Спустя 3 дня начались вопли со стороны бухгалтерии и оптового отдела .......что им мелко и зрение могут потерять А ведь шрифт чуть совсем меньше почти и не заметно , зато инфы куда больше влезает. Не знаю что с ними и делать и это если учесть что руководство мечтает иметь GUI прогу. Представляю себе ГУЙ с таким шрифтом и размеры контролов , да они замаются с ней работать )) PS GTWVG
|
|
|
|
| постоянный участник
|
Пост N: 4292
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.06.15 21:30. Заголовок: Dima пишет: Не знаю..
Dima пишет: цитата: | Не знаю что с ними и делать и это если учесть что руководство мечтает иметь GUI прогу. |
| Сделай им выбор шрифта и пускай сами решают, каким пользоваться - беречь им зрение или нет. Бухи всегда капризные !
|
|
|
Ответов - 22
, стр:
1
2
All
[только новые]
|
|