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




Пост N: 2432
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.11.12 16:20. Заголовок: PROGRESSBAR и INKEY ....


Подскажите как задержка в INKEY() может влиять на показ PROGRESSBAR ?
Просто непонятно как в МиниГуи делать бегунки....

Сделал отдельную програмку для просмотра бегунка и опытным методом вычислил, что если
INKEY(0.5) - бегунок добегает до конца, а если меньше, то не добегает..... Мистика какая-то !

Или нельзя в МиниГуи пользоваться INKEY() ???

Пример здесь. Задержку в INKEY() - править в copy_file.ini -> параметр Delay_test = 0.?
http://files.mail.ru/V0NJCQ


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


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




Пост N: 41
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 27.11.12 20:04. Заголовок: Andrey пишет:Или нел..


Andrey пишет:
 цитата:
Или нельзя в МиниГуи пользоваться INKEY() ???


Мы используем такую:
 
HB_FUNC( INKEYHMG )
{
LONG TimeOut=0;
if( ISNUM(1) ){
TimeOut = hb_parni(1);

TimeOut = WaitForInputIdle( GetCurrentProcess(), (DWORD) TimeOut );

}
hb_retni( TimeOut );
}


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




Пост N: 2436
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.11.12 20:17. Заголовок: SergKis пишет: Мы и..


SergKis пишет:

 цитата:
Мы используем такую:



Вставил к себе в программу:
Скрытый текст


Только теперь проект не собирается.
Ошибка, нет функции:
Error: Unresolved external '_ISNUM' referenced from W:\COPY_FILE_RUN1\COPY_FILE.OBJ

Где взять ?
А почему нет ТАКОЙ - INKEYHMG() функции в самом МиниГуи ?

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




Пост N: 42
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 27.11.12 21:06. Заголовок: Andrey пишетОшибка, ..


Andrey пишет
 цитата:
Ошибка, нет функции


Нашел такие define, возможно ISNUM тоже
Скрытый текст


Попробуй без ISNUM:
Скрытый текст



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




Пост N: 2437
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.11.12 22:57. Заголовок: Ерунда получается. Ф..


Ерунда получается.
Форма на экране запускается и тут же уходит. Промелькнула и все.
Увеличил задержку Delay_test = 80 - тоже ерунда.
А вообще программа раз на третий запускается ! Вообще стабильности нет.



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




Пост N: 43
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.11.12 11:16. Заголовок: Andrey пишет:Ерунда ..


Andrey пишет:
 цитата:
Ерунда получается


Попробуй из hbwin.lib wapi_sleep(<dwMilliseconds>)

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




Пост N: 44
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.11.12 12:15. Заголовок: Andrey пишет:Увеличи..


Andrey пишет:
 цитата:
Увеличил задержку Delay_test = 80 - тоже ерунда.
А вообще программа раз на третий запускается ! Вообще стабильности нет.


Это я был неправ, не дал пояснений и бегло глянул на пример (в нем нет реального копирования).
InkeyHmg(<dwMilliseconds>) делает приостановку кода программы для обработки очереди сообщений, на время <dwMilliseconds>. Если очередь пуста, то приостановки нет, если очередь не успела обработаться, за указанное время, выполнение InkeyHmg прерывается и выполняется код программы дальше. Применение данной функции позволяет, например, снять программу по крестику.
wapi_sleep(<dwMilliseconds>) делает приостановку кода программы, но очередь сообщений не обрабатывается (фактически окно не доступно - не управляется) и нельзя , например, снять программу по крестику !!!
Пример:Test InkeyHmg



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




Пост N: 2555
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.11.12 12:26. Заголовок: millisec() можно заю..


millisec() или hb_idleSleep() можно заюзать

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




Пост N: 45
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.11.12 14:21. Заголовок: Dima пишет:hb_idleSl..


Dima пишет:
 цитата:
hb_idleSleep() можно заюзать


Можно (в параметре секунды), но очередь сообщений она не обрабатывает, т.е. длиная оперция
COPY TO AAAA FOR {|| hb_IdleSleep(0.5), .T.} бесмыслена, а
COPY TO AAAA FOR {|| InkeyHmg(100), .T.} не заморозит окно


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



Пост N: 149
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 29.11.12 14:50. Заголовок: А это так надо в Min..


А это так надо в MiniGui чтоб End был до ACTIVATE ?

.........................
END WINDOW

CENTER WINDOW Form_1

ACTIVATE WINDOW Form_1



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




Пост N: 46
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.11.12 16:06. Заголовок: fil пишет: А это так..


fil пишет:

 цитата:
А это так надо в MiniGui чтоб End был до ACTIVATE ?


см. i_window.ch там описания для препроцессора, ну и другие ch тоже, потом по функциям см. source miniGui.
между DEFINE WINDOW ... END WINDOW находятся контролы

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




Пост N: 47
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.11.12 16:37. Заголовок: Andrey если еще акту..


Andrey если еще актуален аналог INKEY (как в 5.2) в MiniGui, то мои товарищ сделел
Текст в примере http://zalil.ru/34015042

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




Пост N: 2440
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.11.12 16:49. Заголовок: SergKis пишет: Andr..


SergKis пишет:

 цитата:
Andrey если еще актуален аналог INKEY


Конечно актуален. Спасибо БОЛЬШОЕ !
Буду пробовать.

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




Пост N: 2454
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.12.12 21:52. Заголовок: SergKis пишет: Andr..


SergKis пишет:

 цитата:
Andrey если еще актуален аналог INKEY (как в 5.2) в MiniGui, то мои товарищ сделел


Функция СУПЕР ! Просто необходима. И в код добавляется очень просто. Буду пользоваться.
Код программы здесь http://files.mail.ru/U8S0ZG

Товарищу БОЛЬШОЕ СПАСИБО !

А Григорию предложение, может все таки добавить в МиниГуи эту функцию: INKEY_HMG() !



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




Пост N: 49
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.12.12 15:54. Заголовок: Вот модифицированный..


Вот модифицированный код INKEY_HMG() ( с учетом клавиши Alt ), у себя мы переименовали в InkeyGui(...):
 
HB_FUNC( INKEYGUI )
{
MSG Msg;
BOOL lNoLoop=FALSE;

UINT dwTimer, nRet=0, uTimeout=10;

if( HB_ISNUM(1) ) uTimeout = hb_parni(1);

if( uTimeout==0 ) uTimeout = 0x0FFFFFFF;


dwTimer = SetTimer( NULL, 0, uTimeout, NULL);


while( GetMessage(&Msg, NULL, 0, 0) )
{

switch( Msg.message )
{
case WM_KEYDOWN :
case WM_SYSKEYDOWN : { nRet = Msg.wParam; lNoLoop = TRUE; break; }
case WM_TIMER : { lNoLoop = Msg.wParam == dwTimer; break; }
}

if( lNoLoop )
{
KillTimer( NULL, dwTimer );
hb_retni( nRet );
return ;
}

else
{
TranslateMessage( &Msg ); // Translates virtual key codes
DispatchMessage( &Msg ); // Dispatches message to window

}

}

}



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




Пост N: 2461
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.12.12 20:54. Заголовок: SergKis Спасибо БОЛ..


SergKis
Спасибо БОЛЬШОЕ !

А сделайте лучше счет как в настоящем INKEY() ?
А то путаница происходит INKEY() а счет на сотни идет, непорядок....
Только ограничение 0.01 убрать, чтобы можно было ставить типа 0.001 ?

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




Пост N: 50
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.12.12 14:00. Заголовок: Andrey пишет: Только..


Andrey пишет:

 цитата:
Только ограничение 0.01 убрать, чтобы можно было ставить типа 0.001 ?


Реализация INKEY() сделана на функции создания виртуального таймера SetTimer( NULL, 0, uTimeout, NULL), которая через указанное время, посылает сообщение WM_TIMER в очередь сообщений:
1. сообщение WM_TIMER является низкоприоритетным
2. несмотря на указания интервалов времени в миллисекундах, реальная дискретность таймера определяется периодом прерываний, посылаемых таймером.
Исходя из этого задержки с меньшим временем надо производить иначе, например используя функцию wapi_sleep(...), т.е. написать свою типа:
 
FUNC ImkeyA(n)
LOCAL i,k := 0
n := iif(n==NIL,0.001,n*1000)
if n >= 100
k := InkeyGui(n)
else
wapi_sleep(n)
endif
Return k







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




Пост N: 2465
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.12.12 15:25. Заголовок: Спасибо БОЛЬШОЕ ! :..


Спасибо БОЛЬШОЕ !

Ан нет, ошибочку выдает...
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_HB_FUN_WAPI_SLEEP' referenced from W:\HB_PROJECT\UTIL_MINIGUI.OBJ


Где взять эту функции в МиниГуи ?

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




Пост N: 2471
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.12.12 17:19. Заголовок: Объясните непонятном..


Объясните непонятному, может я что-то не так делаю...

С главной формы тыкаю кнопочку:
идет вызов моей функции StartFormCopy()
Скрытый текст


Сама форма построена IDE-дизайнером в отдельном файле StatusCopy.fmg
Вот примерно его содержание:
Скрытый текст
В функции StartConvert() // сама обработка
происходит сама обработка, чтение директории, подсчет кол-ва файлов и показ бегунка
Скрытый текст

Так вот при нажатии на кнопку, форма с бегунком появляется и ВИСИТ !!!
Где и в чем я не прав ?

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




Пост N: 2566
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.12.12 17:50. Заголовок: Andrey пишет: Error..


Andrey пишет:

 цитата:
Error: Unresolved external '_HB_FUN_WAPI_SLEEP


Hbwin.lib прилинкуй

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




Пост N: 2474
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.12.12 17:53. Заголовок: Dima пишет: Hbwin.l..


Dima пишет:

 цитата:
Hbwin.lib прилинкуй


Не хотелось бы.. И так у меня не работает прога, еще и эту либу тащить нужно...

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

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