Форум » [x]Harbour » Помогите советом начинающему... » Ответить

Помогите советом начинающему...

Urri: Тут вот надумал переползти на xHarbour. Возникла следующая проблема: имена всех функций и подпрограмм дополняются префиксом HB_FUN_. А можно ли этого избежать так, чтобы остались родные, начальные имена. У меня весь софт построен на скриптах, в которых уже стоят вызовы функций и процедур по привычным, родным именам. И перелопатить везде в 5000 текстовых файлах-скриптах вызовы функций и поменять на новые - задача крайне утомительная с непонятной перспективой на успех.

Ответов - 294, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

Dima: Urri пишет: Неужели у всех под GTWIN работает переключение раскладки клавиатуры под w9x и только я один попался на проблему? Не знаю как под Win9x , так как уже давно нет таких пользователей а вот в XP работает нормально как и в Windows , по крайней мере у меня. Urri пишет: А еще юзеры привыкли, что вокруг экрана бордюр показывает раскладку (зеленый, желтый, синий) Да не плохо было бы такую штуку реализовать.

Urri: Под XP у меня тоже работает. Хорошо тем, у которых нет пользователей под win9x. А у меня таких большинство и измеряется сотней

alkresin: Urri пишет: А еще юзеры привыкли, что вокруг экрана бордюр показывает раскладку (зеленый, желтый, синий). А, может, дело именно в этом ? Судя по тому, что у вас бордюр показывает раскладку, вы пользуетесь не стандартными клавиатурными драйверами Windows, а какими-то специальными, еще из мира MS DOS - а они, возможно, несовместимы с 32-разрядными Windows - приложениями. Попробуйте поменять драйвер клавиатуры.


Urri: Драйверы экрана и клавиатуры из "мира MS DOS" (UNIKBD & UNISCR) совсем отключил, но это не помогло переключаться раскладке при запущенной программе на xHarbour. После выхода их программы - все переключается.

alkresin: Чем переключаются ? Т.е. у вас UNIKBD & UNISCR запускаются поверх виндовских ( как таь они называются - уже не помню ) ? Для интереса - качните http://kresin.belgorod.su/down/dbch3_5.zip - это моя утилита DBC, скомпилированная Harbour с gtwin. Сегодня проверял ее на работе на компах с Win98 - раскладка переключалась.

Лукашевский: Urri пишет: Драйверы экрана и клавиатуры из "мира MS DOS" (UNIKBD & UNISCR) совсем отключил, но это не помогло переключаться раскладке при запущенной программе на xHarbour А системный русификатор настроить пробовал? Ну это в WIN'9x когда в CONFIG.SYS пишешь: DEVICE=C:\WINDOWS\COMMAND\DISPLAY.SYS CON=(EGA,,1) COUNTRY=007,866,C:\WINDOWS\COMMAND\COUNTRY.SYS а в AUTOEXEC.BAT пишешь: MODE CON CODEPAGE PREPARE=((866) C:\WINDOWS\COMMAND\EGA3.CPI) MODE CON CODEPAGE SELECT=866 KEYB RU,866,C:\WINDOWS\COMMAND\KEYBRD3.SYS И после перезагрузки компа переключение идёт по Ctrl Shift (справа - на русский, слева - на латинский), приятно попискивая при этом. :sm12 Я это к тому, что в GTWINе переключение раскладки работает DOSовское, а в GTWVT - уже виндосовское.

Urri: Лукашевский пишет: А системный русификатор настроить пробовал? Ну это в WIN'9x когда в CONFIG.SYS пишешь: Ясное дело, пробовал. Из autoexec.bat убирал все, что относится к UNI... Перегружался... До запуска программы - раскладка переключается CtrlShift и индикатор в правом нижнем углу об этом говорит, запускаю программу - не переключается, снимаю программу - опять переключается. Это все с GTWIN, а с GTWVT все нормально Лукашевский пишет: Я это к тому, что в GTWINе переключение раскладки работает DOSовское, а в GTWVT - уже виндосовское. Хм. Странно. У меня на XP с GTWIN переключение раскладки виндовское... Хорошо вам тут всем, кто работает только на ХР, а у меня тут такая бодяга с w9x...

Лукашевский: Urri пишет: Хорошо вам тут всем, кто работает только на ХР У меня ноутбук работает под Win'ME (это продолжение линейки 9x), а на домашнем компе обе системы - и 98-й, и XP - и везде всё на GTWIN прекрасно работает с системным русификатором. Вопрос: ты GTWIN пользуешь переработанный местными умельцами, в виде GTWIN.OBJ ? Если нет, то очень зря - может быть, дело как раз в этом.

Urri: Лукашевский пишет: Вопрос: ты GTWIN пользуешь переработанный местными умельцами, в виде GTWIN.OBJ ? Если нет, то очень зря - может быть, дело как раз в этом. Я бы пользовался, если бы некоторые господа-товарищи поделились этим самым GTWIN.OBJ (а можно и с исходником)... Дай, пожалуйста... А где вообще пробегают новинки, переработанный местными умельцами, и есть ли цельный комплект сборки xHarbour со внесенными изменениями? Или на CVS по крохам собирать?

Лукашевский: Urri пишет: Дай, пожалуйста... Куда выслать? Urri пишет: А где вообще пробегают новинки, переработанный местными умельцами А где-то примерно здесь и пробегают надо только знать, что искать - а тема соотв. была - сыр-бор разгорелся вроде из-за того, что в стандартной GTWIN вместо русской "р" что-то другое печаталось...

Dima: Лукашевский пишет: Куда выслать? urrisoft@dneprogaz.dp.ua

Urri: Dima пишет: urrisoft@dneprogaz.dp.ua Да, на этот адрес шлите пожалуйста. А есть кто-нибудь собиратель итогов бурного обсуждения и достижений народных умельцев?

Urri: Спасибо Андрею Лукашевскому: прислал мне исправленный GTWIN.С... И было бы все хорошо, если бы до этого в наших дискуссиях Pasha любезно не прислал мне кусок исправлений, которые мне решили проблему с ф-цией KBDSTATE. А в присланном Андреем GTWIN.C эти исправления не учтены. Я могу конечно повторить корректировку, но через 2-3 такие ситуации можно будет запутаться. Поэтому и спрашиваю: есть ли тот, который выполняет благородную и нужную задачу собирания всех исправлений и получения одного-единого комплекта для всего сообщества (с этого сайта, например) , пользующегося xHarbour. А то у каждого свой вариант и это наверное неправильно...

Лукашевский: Urri пишет: есть ли тот Скорее всего, нет. Поэтому я, например, держу у себя в отдельном PRG-модуле программы ВСЕ необходимые сишные изменения и дополнения. И ничего пока не путается. Urri пишет: проблему с ф-цией KBDSTATE А что ты ею делаешь? Если определяешь нажатие Alt, например, то посмотри мою переделку функции FT_ALT() в теме ASM - она частично решает проблему (к сожалению, кроме отлавливания комбинаций Alt с русскими буквами посредством SET KEY).

Urri: Лукашевский пишет: Поэтому я, например, держу у себя в отдельном PRG-модуле программы ВСЕ необходимые сишные изменения и дополнения. Может поделишься?

Лукашевский: Urri пишет: Может поделишься? Извини, я немного погорячился в предыдущем сообщении: в этом модуле у меня не все сишные функции, а только те, что могут повторяться. GTWIN.OBJ в связи с этим тоже прилепляется отдельно, на этапе линковки. * (x)Harbour'ные функции (включая Cишные) #include "gtinfo.ch" #include "mypublic.ch" #include "wrdconst.ch" #include "xlsconst.ch" Function SETLASTKEY(par) return HB_SETLASTKEY(par) Function DosIDLE() return NIL #pragma BEGINDUMP #include "windows.h" #include "hbapi.h" #include "hbapiitm.h" #define HB_OS_WIN_32_USED #define _WIN32_WINNT 0x0400 HB_FUNC ( SETWCLIPBOARD ) { HGLOBAL hglbCopy; char * lptstrCopy; char * cStr = hb_parc( 1 ); int nLen = strlen( cStr ); if ( !OpenClipboard( GetActiveWindow() ) ) return; EmptyClipboard(); hglbCopy = GlobalAlloc( GMEM_DDESHARE, (nLen+1) * sizeof(TCHAR) ); if (hglbCopy == NULL) { CloseClipboard(); return; } // Lock the handle and copy the text to the buffer. lptstrCopy = (char*) GlobalLock( hglbCopy ); memcpy( lptstrCopy, cStr, nLen * sizeof(TCHAR)); lptstrCopy[nLen] = (TCHAR) 0; // null character GlobalUnlock(hglbCopy); // Place the handle on the clipboard. SetClipboardData( CF_TEXT, hglbCopy ); CloseClipboard(); } HB_FUNC ( WCLIPBOARD ) { if ( !OpenClipboard( GetActiveWindow() ) ) return; hb_retc(GetClipboardData( CF_TEXT )); CloseClipboard(); } HB_FUNC ( SETFILEAPIS ) // Имена файлов в кодировке OEM { SetFileApisToOEM(); } HB_FUNC ( FT_ALT ) { hb_retl( GetKeyState( VK_LMENU ) + GetKeyState( VK_RMENU ) < 0 ); } HB_FUNC ( FT_CTRL ) { hb_retl( GetKeyState( VK_LCONTROL ) + GetKeyState( VK_RCONTROL ) < 0 ); } HB_FUNC ( FT_SHIFT ) { hb_retl( GetKeyState( VK_LSHIFT ) + GetKeyState( VK_RSHIFT ) < 0 ); } HB_FUNC ( ISEXERUNNING ) // ( cExeNameCaseSensitive ) --> lResult { HANDLE hMutex = CreateMutex( NULL, TRUE, (LPTSTR) hb_parc(1) ); hb_retl( GetLastError() == ERROR_ALREADY_EXISTS ); ReleaseMutex( hMutex ); } #pragma ENDDUMP

Pasha: Urri пишет: Спасибо Андрею Лукашевскому: прислал мне исправленный GTWIN.С... И было бы все хорошо, если бы до этого в наших дискуссиях Pasha любезно не прислал мне кусок исправлений, которые мне решили проблему с ф-цией KBDSTATE. А в присланном Андреем GTWIN.C эти исправления не учтены. Я могу конечно повторить корректировку, но через 2-3 такие ситуации можно будет запутаться. Поэтому и спрашиваю: есть ли тот, который выполняет благородную и нужную задачу собирания всех исправлений и получения одного-единого комплекта для всего сообщества (с этого сайта, например) , пользующегося xHarbour. А то у каждого свой вариант и это наверное неправильно... Юрий, я добавил патч с русской "р", и отправил по почте

Urri: Лукашевский пишет: Вопрос: ты GTWIN пользуешь переработанный местными умельцами, в виде GTWIN.OBJ ? Если нет, то очень зря - может быть, дело как раз в этом. При трансляции полученного .С модуля ругается о том, что Undefined symbol hb_cdp_page. Ни в одном .H или .СH, входящих в пакет bcc55 или xHarbour определения этого символа нет. В чем дело и где решение проблемы искать?

Urri: alkresin пишет: Полноэкранный режим с gtwvt исключен. Но можно сделать окошко побольше, поиграв с цифрами при установке размера шрифта А как заставить окно программы открываться в нужном месте экрана? А то при запуске программы показывается только правая половина и я уже задолбался двигать каждый раз при запуске программы это самое окно на середину... Среди параметров hb_gtinfo не удалось найти нужных

alkresin: Urri пишет: А то при запуске программы показывается только правая половина Не знаю, у меня такого не было никогда, окно всегда открывается в пределах экрана. Возможно, вы установили слишком большой шрифт, оно не помещается целиком на экране и отсюда такие фокусы ...



полная версия страницы