On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 53
Зарегистрирован: 15.09.05
ссылка на сообщение  Отправлено: 11.06.09 13:08. Заголовок: Terminal WVT & EXIT PROCEDURE


Привет всем на форуме !

Перекомпилировал один из своих проектов HARBOUR'ом используя терминал WVT
Все работает нормально за изключением то что не срабатывает EXIT PROCEDURE при нажатии крестика для закрытия
окна .
Придется както убирать его или заставить работать EXIT PROCEDURE при нажатии крестика но как .
Может у когото приходилось ето делать , Напишите пожалуста !

сборка харбура взята от сюда : http://cch4clipper.blogspot.com/2009/05/latest-developments-in-harbourby-viktor.html
с применением новой утилитой HBMK2 Виктора .
По моему очень удобная вещь .

В начале программы стоит

REQUEST HB_GT_WVT
REQUEST HB_GT_WVT_DEFAULT

hb_gtInfo(HB_GTI_FONTSIZE, 28)
hb_gtInfo(HB_GTI_FONTWIDTH, 14)

компилирую так :
---------------------------------------------
c:\harbour\bin\HBMK2 CCH.HBP -comp=bcc

а CCH.HBP содержит:
--------------------------
-oCCH
-gtWVT

K.PRG
K11.PRG
K12.PRG

ASSI.PRG
CALC87.PRG
LOCKS.PRG
TEXTBROW.PRG
INSTOGLE.PRG
SHADOW.PRG

fttext.c
------------------------------------------------






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


постоянный участник


Пост N: 677
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 11.06.09 13:22. Заголовок: Проще всего запретит..


Проще всего запретить этот самый крестик
hb_GtInfo( HB_GTI_CLOSABLE, .f. )

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


Пост N: 196
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 11.06.09 13:28. Заголовок: hb_gtinfo( HB_GTI_NO..


hb_gtinfo( HB_GTI_NOTIFIERBLOCK, bCodeBlock )
устанавливает кодоблок bCodeBlock, выполняющийся при нажатии крестика. Если блок возвращает 0, приложение завершается, если другое число - продолжает работу.

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




Пост N: 54
Зарегистрирован: 15.09.05
ссылка на сообщение  Отправлено: 11.06.09 13:28. Заголовок: Спасибо за ответ !


Спасибо за ответ Петр и вам Александр !

а где можно почитать об етих функциях , неужели только копаясь в изходниках Харбура

Еще раз спасибо !

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


Пост N: 197
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 11.06.09 13:32. Заголовок: Увы ... Именно так я..


Увы ...
Именно так я это сейчас и нашел ...
Можно еще, конечно, порыться в архивах майл-листов или comp.lang.xharbour

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





Пост N: 327
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 12.06.09 01:30. Заголовок: alkresin пишет: hb_..


alkresin пишет:

 цитата:
hb_gtinfo( HB_GTI_NOTIFIERBLOCK, bCodeBlock )


Жаль, что нельзя запретить закрытие программы по кресту в оконном режиме терминала GTWIN...

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




Пост N: 1248
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.06.09 08:05. Заголовок: Лукашевский пишет: ..


Лукашевский пишет:

 цитата:
Жаль, что нельзя запретить закрытие программы по кресту в оконном режиме терминала GTWIN



Ня ;)

SetConsoleTitle("TEST")
do WHILE ( hWnd:= FindWindow( "TEST" ) ) == 0
ENDdo
DeleteCloseButton( hWnd)


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





Пост N: 328
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 12.06.09 10:39. Заголовок: Dima пишет: SetCons..


Dima пишет:

 цитата:
SetConsoleTitle()
FindWindow()
DeleteCloseButton()


На все функции - Unresolved external при линковке.
Откуда брал?

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




Пост N: 1249
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.06.09 10:41. Заголовок: Лукашевский #PRAGM..


Лукашевский
 
#PRAGMA BEGINDUMP

#include "hbapi.h"
#include "Windows.h"

HB_FUNC( SETCONSOLETITLE )
{
hb_retl( SetConsoleTitle( hb_parc( 1 ) ) ) ;
}
HB_FUNC( FINDWINDOW )
{
hb_retnl( (LONG)FindWindow( NULL, hb_parc( 1 ) ) ) ;
}

HB_FUNC( DELETECLOSEBUTTON )
{
DeleteMenu(GetSystemMenu( (HWND)hb_parnl( 1 ),
FALSE), SC_CLOSE,
MF_BYCOMMAND ) ;
DrawMenuBar( (HWND)hb_parnl( 1 ) );
}
#PRAGMA ENDDUMP




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





Пост N: 329
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 12.06.09 10:58. Заголовок: Dima, спасибо огромн..


Dima, спасибо огромное!!!

А может быть, ты ещё знаешь, как в полноэкранном режиме GTWIN убрать курсор мыши (хотя бы сделать его невидимым)? Это одна из последних нерешённых проблем, которая у меня осталась в xHarbour'е...

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




Пост N: 1250
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.06.09 11:02. Заголовок: Лукашевский request..


Лукашевский
request HB_NOMOUSE


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





Пост N: 330
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 12.06.09 11:09. Заголовок: Dima пишет: request..


Dima пишет:

 цитата:
request HB_NOMOUSE


Сказка! Фантастика! Удалось!

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





Пост N: 331
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 12.06.09 20:15. Заголовок: Dima пишет: SetCons..


Dima пишет:

 цитата:
SetConsoleTitle()
FindWindow()
DeleteCloseButton()



Рано я обрадовался... Началась как раз фантастика:

1. Использование SetConsoleTitle() каким-то образом отменяет SetConsoleDisplayMode(1). Причём не важно, где они стоят по отношению друг к другу - до или после. Просто вот если используем SetConsoleTitle(), то SetConsoleDisplayMode(1) - переход в полноэкранный режим выполнения - уже не срабатывает, по крайней мере при установленном в ярлыке запуска режиме совместимости с Win'95.

2. После SetConsoleTitle('ООО "Привет+"') не срабатывает
FindWindow('ООО "Привет+"'). Для латиницы FindWindow() работает, для кириллицы - увы, нет...

Больше всего, конечно, напрягает пункт 1...

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




Пост N: 1251
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.06.09 20:27. Заголовок: Лукашевский пишет: ..


Лукашевский пишет:

 цитата:
Для латиницы FindWindow() работает, для кириллицы - увы, нет


Так и есть.


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




Пост N: 1252
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.06.09 20:41. Заголовок: Лукашевский Бумс.....


Лукашевский
Бумс...
а так ?

local nStdOut := Hb_GetStdOut()
nResult := SetConsoleDisplayMode(nStdOut, CONSOLE_FULLSCREEN)



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





Пост N: 332
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 12.06.09 21:31. Заголовок: Dima пишет: CONSOLE..


Dima пишет:

 цитата:
CONSOLE_FULLSCREEN


Откуда берём?

В папке INCLUDE ни в одном файле такого нет, в BCC55 - тоже нет, и в скачанных SOURCE'ах - тоже... Ну да ладно, заменил на 1. Ничего не изменилось - как запускается свёрнутым, так и остаётся, пока мышью не тыкнешь. Но когда тыкнешь мышью - да, запускается в полном экране.

Может, проблема немного в другом - окно программы при запуске мало того что свёрнуто, так ещё и неактивно. Какую функцию можно использовать для активизации терминального окна?
Хотя, с другой стороны - без SetConsoleTitle() окно прекрасно активизируется и разворачивается во весь экран функцией SetConsoleDisplayMode(1), вот в чём фокус.

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




Пост N: 1253
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.06.09 09:48. Заголовок: Лукашевский пишет: ..


Лукашевский пишет:

 цитата:
Откуда берём?


#define CONSOLE_WINDOWMODE 0
#define CONSOLE_FULLSCREEN 1


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





Пост N: 333
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 13.06.09 10:56. Заголовок: Dima пишет: #define..


Dima пишет:

 цитата:
#define CONSOLE_FULLSCREEN 1


Понятно. Я так и написал - SetConsoleDisplayMode(nStdOut, 1). Видимый эффект отсутствует.

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




Пост N: 1254
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.06.09 11:35. Заголовок: Лукашевский пишет: ..


Лукашевский пишет:

 цитата:
Видимый эффект отсутствует.


У меня ведь работает.
Значит ты не там где нужно вставил эту строку.

Пробни так
nResult := SetConsoleDisplayMode(nStdOut, CONSOLE_FULLSCREEN)
SetMode(25,80)

Пример тут
http://clipper.borda.ru/?1-4-0-00000354-000-0-0-1223578034


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





Пост N: 334
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 13.06.09 12:38. Заголовок: Dima пишет: Пробни ..


Dima пишет:

 цитата:
Пробни так



Всё то же:
nStdOut = 1
nResult = 1

Dima пишет:

 цитата:
Значит ты не там где нужно вставил эту строку.


Что значит "не там где нужно"? А где её нужно вставлять?

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




Пост N: 1255
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.06.09 12:50. Заголовок: Лукашевский пишет: ..


Лукашевский пишет:

 цитата:
Что значит "не там где нужно"? А где её нужно вставлять?


Кусок текста покажи.

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

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