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




Пост N: 1929
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.11.11 21:36. Заголовок: Примеры из Минигуи -ошибки, вопросы..... (продолжение)


Всем привет.
Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ?
А заодно может и исправить и добавить новые....

Очень красочный пример: \MiniGUI\SAMPLES\Advanced\AVI_Animation - не работает под Win7 (наверно AVI-шки нет в ресурсах)
Предложение Григорию:
Можно ли добавить еще один пример с отдельным AVI-файлом в ресурсах проекта и показом такого же бегунка ?


Пример: \MiniGUI\SAMPLES\Advanced\DisplayMode - не работает под ХР и далее....


Пример: \MiniGUI\SAMPLES\Advanced\Tsb_filter - вылетает на ХР
--------------------------------------------------------------------------------
Harbour MiniGUI Errorlog File
Harbour MiniGUI Extended Edition 2.0.1 - 2011.09.21
--------------------------------------------------------------------------------
Date: 11/15/2011 Time: 22:13:24
Error BASE/1124 Argument error: LEFT

Called from LEFT(0)
Called from SCANSOFT(195)
Called from MAIN(84)


Пример: \MiniGUI\SAMPLES\BASIC\MsgEdit - не собирается...
Z:\MiniGUI\SAMPLES\BASIC\MsgEdit>call ..\..\..\batch\compile.bat demo /L shell32
Harbour 3.1.0dev (Rev. 17042)
Copyright (c) 1999-2011, http://harbour-project.org/
Compiling 'demo.prg'...
Lines 20133, Functions/Procedures 30
Generating C source output to 'demo.c'... Done.
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
demo.c:
Error E2141 demo.prg 993: Declaration syntax error
*** 1 errors in Compile ***

C compile error.



Спасибо: 0 
Профиль
Ответов - 301 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All [только новые]


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




Пост N: 3642
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.10.14 15:45. Заголовок: HYPERLINK для объекта IMAGE ?


Меня тут спрашивают:
Просто я хочу сделать чтоб По клику на объекте IMAGE запускался браузер и открывалась указанная страгичка в Интернете .
Наподобие HYPERLINK .....


Вот как я сделал у себя:
DEFINE IMAGE Image_MiniGUI
Row 5
Col 5
WIDTH 50
HEIGHT 50
PICTURE "MINIGUI"
ACTION ShellExecute( 0, "open", "http://hmgextended.com/" )
OnMouseHover RC_CURSOR( "MINIGUI_FINGER" )
END IMAGE



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




Пост N: 3644
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.10.14 20:37. Заголовок: Andrey пишет: Ну то..


Andrey пишет:

 цитата:
Ну тогда окончательный вариант - http://file.qip.ru/file/SOZpSDp3/demo2en.html
Можно размещать в библиотеке.
По сетке работает без ошибок и очень шустро !



По поводу этого алгоритма.
Переделал индексацию своих баз из хХарбора 1.2.3 под МиниГуи.
У меня индексируется 208 баз.
Время локальной индексации, на одном компе:
под хХарбором 1 мин.
под МиниГуи 3.5 мин.
По сетке времени еще больше затрачивается:
под хХарбором 3 мин.
под МиниГуи 13 мин.

Вот что значит красоту (авишку и бегунок) наводить...
Да и еще INKEYGUI увеличивает время индексации.

Надо бы как то ускорить это дело, не гоже юзеру ждать...
Не знаю где то читал, что средний пользователь может ожидать отклика от программы в среднем менее 2х минут, потом начинает нервничать...

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4227
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.10.14 21:30. Заголовок: Andrey пишет: Вот ч..


Andrey пишет:

 цитата:
Вот что значит красоту (авишку и бегунок) наводить...


Красота требует жертв

Andrey пишет:

 цитата:
Да и еще INKEYGUI увеличивает время индексации.


Может в нем таймаут уменьшить........?

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 322
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 08.10.14 21:49. Заголовок: Andrey пишет: Надо ..


Andrey пишет:

 цитата:
Надо бы как то ускорить это дело,



Андрей, в NtxProcess незачем выводить каждое значение nComplete . Нужно только измененное т.к. экранный вывод и в консоли и в гуи операция не быстрая
У себя делаю примерно так

Static n := 0
nComplete := INT((RECNO()/LASTREC()) * 100)
IF n <> nComplete
n := nComplete
cRecno := "(" + HB_NTOS(RECNO()) + "/" + HB_NTOS(LASTREC()) + ") - "
Form_Index.PrgBar_1.Value := nComplete
Form_Index.Label_1.Value := "Completed " + cRecno + HB_NTOS(nComplete) + "%"
END


ЗЫ и не пойму зачем там INKEYGUI

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




Пост N: 3645
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.10.14 06:57. Заголовок: Haz пишет: ЗЫ и не ..


Haz пишет:

 цитата:
ЗЫ и не пойму зачем там INKEYGUI


Без него PROGRESSBAR не отображается правильно !

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 323
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 09.10.14 07:15. Заголовок: Andrey пишет: Без н..


Andrey пишет:

 цитата:
Без него PROGRESSBAR не отображается правильно !


всегда без него делаю

вот кусок кода

IF Int((i)/(nRecCount)*100) <> nGauge
nGauge := Int((i)/(nRecCount)*100)
SetProperty("WList", "ProgressBar_MT", "Value", nGauge )
END
processMessages()

правда использую DO EVENTS ( оно же processMessages() ) может в этом дело ?


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




Пост N: 3646
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.10.14 07:39. Заголовок: Haz пишет: вот кусо..


Haz пишет:

 цитата:
вот кусок кода
IF Int((i)/(nRecCount)*100) <> nGauge



Чему равно nGauge ?

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


Пост N: 996
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 09.10.14 07:41. Заголовок: Haz пишет: правда и..


Haz пишет:

 цитата:
правда использую DO EVENTS ( оно же processMessages() ) может в этом дело ?


Конечно в этом

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 669
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.10.14 09:48. Заголовок: Andrey пишет: У мен..


Andrey пишет:

 цитата:
У меня индексируется 208 баз.


Не пойму, зачем периндексировать такое количество баз при старте программы
Для этого должен быть отдельный режим переиндексации ВСЕХ баз

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 324
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 09.10.14 09:58. Заголовок: gfilatov2002 пишет: ..


Andrey пишет:

 цитата:
Чему равно nGauge ?


это статик переменная для отлова изменения целого процента.
На большой базе , к примеру 1 000 000 записей значение выражения INT( Recno()/RecCount()*100) будет меняться только через каждые 10 000 записей. Совершенно бесполезно 10 000 раз обновлять прогрессбар одним и тем же значением, это только лишний тормоз.



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




Пост N: 3647
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.10.14 13:02. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Не пойму, зачем периндексировать такое количество баз при старте программы
Для этого должен быть отдельный режим переиндексации ВСЕХ баз



Да это и есть мой режим переиндексации ВСЕХ моих баз.
Неправильно выразился...

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




Пост N: 3648
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.10.14 13:05. Заголовок: Haz пишет: вот кусо..


Haz пишет:

 цитата:
вот кусок кода

IF Int((i)/(nRecCount)*100) <> nGauge
nGauge := Int((i)/(nRecCount)*100)
SetProperty("WList", "ProgressBar_MT", "Value", nGauge )
END
processMessages()



Тогда может так нужно было написать ?
nGauge := Int((i)/(nRecCount)*100)
IF Int((i)/(nRecCount)*100) <> nGauge
SetProperty("WList", "ProgressBar_MT", "Value", nGauge )
END



Спасибо: 0 
Профиль
Haz
администратор




Пост N: 325
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 09.10.14 14:03. Заголовок: Andrey пишет: Тогда..


Andrey пишет:

 цитата:
Тогда может так нужно было написать ?


нет не нужно
тогда nGauge всегда будет равно Int((i)/(nRecCount)*100) и в тело IF не войдет никогда.

в моем варианте изначально nGauge = 0 и как только Int((i)/(nRecCount)*100) станет равно 1% условие IF Int((i)/(nRecCount)*100) <> nGauge выполнится, в теле IF этот 1% присвоится новым значением в nGauge и все сначала пока не тикнет 2%. Переменная nGauge - STATIC переменная и сохраняет свое значение между вызовами функции.

По завершении прогрессбара nGauge останется 100 , но при повторном вызове функции 0% <> 100 и все повториться


PS для простоты в примере i следует рассматривать как Reno() а nRecCount - RecCount() соответственно



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




Пост N: 3652
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.10.14 20:59. Заголовок: Dima пишет: Может в..


Dima пишет:

 цитата:
Может в нем таймаут уменьшить........?



Убрал совсем INKEYGUI(), собираю теперь с ключом -mt !
AVI-ка не тормозит, бегунки красиво (до конца) не доходят.
Зато быстро стало, аж меньше минуты.




Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4228
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.10.14 21:09. Заголовок: Andrey пишет: Убрал..


Andrey пишет:

 цитата:
Убрал совсем INKEYGUI(), собираю теперь с ключом -mt !


Не вижу связи ключа -mt и тормоза что был.
Думаю без него будет так же работать. Попробуй.

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




Пост N: 3653
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.10.14 21:30. Заголовок: Dima пишет: Не вижу..


Dima пишет:

 цитата:
Не вижу связи ключа -mt и тормоза что был.
Думаю без него будет так же работать. Попробуй.


Работать будет, АВИшка подвисать будет.

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




Пост N: 3654
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.10.14 21:37. Заголовок: Столкнулся с еще одн..


Столкнулся с еще одной непоняткой, вот картинка:


На рис.1 окно создано с флагом Form_Dim.Sizable := .T. // разрешить растягивание окна
Когда перехожу в режим редактирования справочника делаю
Form_Dim.Sizable := .F. // NOSIZE - запретить растягивание окна !
Результат на рис.2 - изображение на окне делает "прыг" и
справа и снизу появляется свободная область окна

Как убрать эту свободную область ?
Или можно делать как то по другому ?

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




Пост N: 3663
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.10.14 20:47. Заголовок: Может можно вычислит..


Это что-то TBROWSE "скачет" ....
Сделал после смены режима пересчет окна TBROWSE и все нормально стало...

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 670
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 15.10.14 22:58. Заголовок: Andrey пишет: Может..


Andrey пишет:

 цитата:
Может можно вычислить ЭТОТ дурацкий отступ ?


Отступ по вертикали - GetBorderHeight()
Отступ по горизонтали - GetBorderWidth()

Пробуй

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




Пост N: 3664
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.10.14 23:05. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Пробуй


Спасибо, попробую !!!

Спасибо: 0 
Профиль
Ответов - 301 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 251
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет