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




Пост N: 4326
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.12.14 16:59. Заголовок: Пара простых вопросов ;)


1. Как узнать что путь к папке из которой запускается программа имеет символы кирилицы ?
На ум приходит такой способ
 
proc main()
local a
REQUEST HB_LANG_RU866
HB_LANGSELECT("RU866")
REQUEST HB_CODEPAGE_RU866
hb_cdpSelect( "RU866" )
a:=curdir()

? a
if hb_oemtoansi(a)#a
? "Есть кирилица"
endif

wait

RETURN NIL

Есть еще метода ?

2. Как узнать что путь к папке из которой запускается программа имеет длинные имена ?
На вскидку приходит вариант разбить на токены с разделителем "\" и затем чекать длины
всех токенов.
Есть еще метода ?


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


администратор




Пост N: 4733
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.04.15 22:34. Заголовок: В программе стоит та..


В программе стоит такой вызов FT_OnTick({|| TEST()},500) // срабатывание TEST каждые 30 секунд
Функция TEST опрашивает некую базу и в случае обнаружения в одном из полей значения .T.
вываливает на экран какое то сообщение.
Пока сообщение висит прога кушает примерно 25 % ресурсов проца.
Можно эту проблему победить что бы не "жрало" столько ресурсов ?
Пробовал перед выводом сообщения вешать FT_OnTick() а после закрытия
сообщения FT_OnTick({|| TEST()},500) , не помогло.

PS
FT_OnTick это из HBNF и реализован c помощью Hb_idleadd , Hb_idleDel

PS1
В Clipper такой же аналог не приводил к загрузке проца.

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




Пост N: 578
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.04.15 07:42. Заголовок: Dima если использов..


Dima
если использовать не idle, а on timer и сообщение вешать в потоке ?

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




Пост N: 4734
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.04.15 08:27. Заголовок: SergKis С потоком н..


SergKis
С потоком нельзя. Работаю с ADS. Лет 5 назад проводил тесты , падает прога
в разных потоках при работе с ADS , при чем непредсказуемо.

В принципе есть исходник OnTick.c из Nanfor for Clipper
https://searchcode.com/codesearch/view/4467408/
Может его можно как то под Harbour переписать ?

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




Пост N: 580
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.04.15 08:31. Заголовок: Dima пишет:С потоком..


Dima пишет:
 цитата:
С потоком нельзя


тогда используй отдельный запуск - монитор опроса (можно использовать приоритет задания) и сообщением в tray

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




Пост N: 4735
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.04.15 09:00. Заголовок: SergKis Кажется пон..


SergKis
Кажется понял почему такая загрузка. Дело в INKEY. Попробовал твою функцию INKEYGUI и кажется загрузки нет.
Счас потестю.

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




Пост N: 581
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.04.15 09:35. Заголовок: Dima пишет: Дело в I..


Dima пишет:
 цитата:
Дело в INKEY


ну да, inkey "морозит" обработку сообщений, InkeyGui - обрабатывае очередь и выделяет нажатия клавишь, но в wvt использовать, даже не подумал

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




Пост N: 4736
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.04.15 10:05. Заголовок: SergKis В общем да ..


SergKis
В общем да нормально , не тормозит ни чего но вылезла новая проблема.
В функции TEST что выше писал которая сидит в IDLE вызывается MEMOEDIT
на просмотр (без редактирования)
 
memoedit(prime,11,21,18,59,.f.,"k2mmem_ff_prm",38)
.........
.........
Функция обработки педалей
Если в ней юзать INKEY , текст сообщения я вижу сразу , но грузит проц.
Если вместо нее юзать INKEYGUI(100) , проц не грузит но не вижу сообщения ,
пока какую то кнопку не нажму.
func k2mmem_ff_prm()
local nxkey:=0
local local_time:=seconds()

do while (nxkey:=INKEY(0.01))==0
if seconds()-local_time>10
TestKillUser()
local_time:=seconds()
endif
enddo
if nxkey==27
ft_putkey(nxkey)
endif
return 0



До кучи.
Вставил в свой бровс вместо nkey:=inkey(0.01) -> nkey:=inkeygui(100)
и функция пользователя больше не реагирует на функциональные клавиши.
Enter обрабатывается.

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




Пост N: 582
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.04.15 10:32. Заголовок: Dima сравни коды nk..


Dima
сравни коды nkey после инкеев в gui VK_..., если правильно помню ...


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




Пост N: 583
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.04.15 10:35. Заголовок: PS ? 'test'..


PS
? 'test'
inkeygui(3000)
видно или как ?


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




Пост N: 4737
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.04.15 10:47. Заголовок: Да ESC , ENTER , Про..


Да ESC , ENTER , Пробел совпадают , функциональные нет , насчет буквенно цифровых не проверял.


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




Пост N: 4738
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.04.15 10:51. Заголовок: SergKis пишет: ? &#..


SergKis пишет:

 цитата:
? 'test'
inkeygui(3000)
видно или как ?


Видно

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




Пост N: 4739
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.04.15 10:59. Заголовок: Кажется понял чего н..


Кажется понял чего надо. Нужен переходник из кодов INKEYGUI в обычные не расширенные коды INKEY.
При чем с учетом раскладки клавы.
Вопрос как это без напряга сделать !

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




Пост N: 585
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.04.15 11:06. Заголовок: Dima пишетНужен пере..


Dima пишет
 цитата:
Нужен переходник из кодов INKEYGUI


где то видел, но непомню и заменяя inkey, inkeygui - аналог inkey clipper 5.2e и еще мышь не отрабатывает

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




Пост N: 4740
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.04.15 11:11. Заголовок: Странно что в самом ..


Странно что в самом Harbour нет аналога типа INKEYIDLE , потому как если опрашивать клаву
в IDLE фоновой задачи ( НЕ в потоке ), c помощью INKEY то грузит проц.
Если в основном потоке идет опрос с помощью INKEY , проц не грузит.

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


Пост N: 1056
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 16.04.15 11:26. Заголовок: Использовать в цикле..


Использовать в цикле hb_ReleaseCPU() не подойдет?

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




Пост N: 4741
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.04.15 11:33. Заголовок: PSP пишет: Использо..


PSP пишет:

 цитата:
Использовать в цикле hb_ReleaseCPU() не подойдет?


Нет , уже тестил.
Похоже для конвертации нужно что то типа
https://msdn.microsoft.com/en-us/library/system.windows.input.keyinterop.keyfromvirtualkey%28v=vs.110%29.aspx
Но в сях я валенок

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




Пост N: 587
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.04.15 12:51. Заголовок: Dima мой товарищь п..


Dima
мой товарищь посоветовал делать так:
nKey := InkeyGui( ... )
nKey подать в hb_gt_wvt_Info(...)
gtwwt.c
добавить свою константу в case
static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
например
case HB_GTI_VK_TO_INKEY
используя
hb_gt_wvt_KeyEvent(...) в которой hb_gt_wvt_TranslateKey(...)
произвести перекодировку
но надо пересобрать gtwwt.obj


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




Пост N: 4742
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.04.15 13:10. Заголовок: SergKis Спасибо ! Д..


SergKis
Спасибо !
Думал есть способ проще , без переделки сырцов.
Попробую.

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




Пост N: 589
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.04.15 14:48. Заголовок: Dima пишет:Думал ест..


Dima пишет:
 цитата:
Думал есть способ проще , без переделки сырцов


вытащить из gtwvt.c эти функции (они static), сделать не static, переименовать ...
повторить все - вряд ли это проще

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




Пост N: 4744
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.04.15 13:22. Заголовок: В сишный код я точно..


В сишный код я точно не полезу , так как должен понимать что делаю.


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

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