Форум » GUI » Примеры из Минигуи -ошибки, вопросы..... (продолжение) » Ответить

Примеры из Минигуи -ошибки, вопросы..... (продолжение)

Andrey: Всем привет. Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ? А заодно может и исправить и добавить новые.... Очень красочный пример: \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.

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

Andrey: Меня тут спрашивают: Просто я хочу сделать чтоб По клику на объекте 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

Andrey: Andrey пишет: Ну тогда окончательный вариант - http://file.qip.ru/file/SOZpSDp3/demo2en.html Можно размещать в библиотеке. По сетке работает без ошибок и очень шустро ! По поводу этого алгоритма. Переделал индексацию своих баз из хХарбора 1.2.3 под МиниГуи. У меня индексируется 208 баз. Время локальной индексации, на одном компе: под хХарбором 1 мин. под МиниГуи 3.5 мин. По сетке времени еще больше затрачивается: под хХарбором 3 мин. под МиниГуи 13 мин. Вот что значит красоту (авишку и бегунок) наводить... Да и еще INKEYGUI увеличивает время индексации. Надо бы как то ускорить это дело, не гоже юзеру ждать... Не знаю где то читал, что средний пользователь может ожидать отклика от программы в среднем менее 2х минут, потом начинает нервничать...

Dima: Andrey пишет: Вот что значит красоту (авишку и бегунок) наводить... Красота требует жертв Andrey пишет: Да и еще INKEYGUI увеличивает время индексации. Может в нем таймаут уменьшить........?


Haz: 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

Andrey: Haz пишет: ЗЫ и не пойму зачем там INKEYGUI Без него PROGRESSBAR не отображается правильно !

Haz: Andrey пишет: Без него PROGRESSBAR не отображается правильно ! всегда без него делаю вот кусок кода IF Int((i)/(nRecCount)*100) <> nGauge nGauge := Int((i)/(nRecCount)*100) SetProperty("WList", "ProgressBar_MT", "Value", nGauge ) END processMessages() правда использую DO EVENTS ( оно же processMessages() ) может в этом дело ?

Andrey: Haz пишет: вот кусок кода IF Int((i)/(nRecCount)*100) <> nGauge Чему равно nGauge ?

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

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

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

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

Andrey: 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

Haz: 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() соответственно

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

Dima: Andrey пишет: Убрал совсем INKEYGUI(), собираю теперь с ключом -mt ! Не вижу связи ключа -mt и тормоза что был. Думаю без него будет так же работать. Попробуй.

Andrey: Dima пишет: Не вижу связи ключа -mt и тормоза что был. Думаю без него будет так же работать. Попробуй. Работать будет, АВИшка подвисать будет.

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

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

gfilatov2002: Andrey пишет: Может можно вычислить ЭТОТ дурацкий отступ ? Отступ по вертикали - GetBorderHeight() Отступ по горизонтали - GetBorderWidth() Пробуй

Andrey: gfilatov2002 пишет: Пробуй Спасибо, попробую !!!



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