Автор | Сообщение |
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.
|
|
|
Ответов - 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
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3644
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.10.14 20:37. Заголовок: Andrey пишет: Ну то..
Andrey пишет: По поводу этого алгоритма. Переделал индексацию своих баз из хХарбора 1.2.3 под МиниГуи. У меня индексируется 208 баз. Время локальной индексации, на одном компе: под хХарбором 1 мин. под МиниГуи 3.5 мин. По сетке времени еще больше затрачивается: под хХарбором 3 мин. под МиниГуи 13 мин. Вот что значит красоту (авишку и бегунок) наводить... Да и еще INKEYGUI увеличивает время индексации. Надо бы как то ускорить это дело, не гоже юзеру ждать... Не знаю где то читал, что средний пользователь может ожидать отклика от программы в среднем менее 2х минут, потом начинает нервничать...
|
|
|
Dima
|
| |
Пост N: 4227
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.10.14 21:30. Заголовок: Andrey пишет: Вот ч..
Andrey пишет: цитата: | Вот что значит красоту (авишку и бегунок) наводить... |
| Красота требует жертв Andrey пишет: цитата: | Да и еще INKEYGUI увеличивает время индексации. |
| Может в нем таймаут уменьшить........?
|
|
|
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
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3645
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.10.14 06:57. Заголовок: Haz пишет: ЗЫ и не ..
Haz пишет: цитата: | ЗЫ и не пойму зачем там INKEYGUI |
| Без него PROGRESSBAR не отображается правильно !
|
|
|
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() ) может в этом дело ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3646
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.10.14 07:39. Заголовок: Haz пишет: вот кусо..
Haz пишет: цитата: | вот кусок кода IF Int((i)/(nRecCount)*100) <> nGauge |
| Чему равно nGauge ?
|
|
|
PSP
|
| постоянный участник
|
Пост N: 996
Зарегистрирован: 27.01.07
|
|
Отправлено: 09.10.14 07:41. Заголовок: Haz пишет: правда и..
Haz пишет: цитата: | правда использую DO EVENTS ( оно же processMessages() ) может в этом дело ? |
| Конечно в этом
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 669
Зарегистрирован: 11.02.10
|
|
Отправлено: 09.10.14 09:48. Заголовок: Andrey пишет: У мен..
Andrey пишет: цитата: | У меня индексируется 208 баз. |
| Не пойму, зачем периндексировать такое количество баз при старте программы Для этого должен быть отдельный режим переиндексации ВСЕХ баз
|
|
|
Haz
|
| |
Пост N: 324
Зарегистрирован: 20.02.11
|
|
Отправлено: 09.10.14 09:58. Заголовок: gfilatov2002 пишет: ..
Andrey пишет: это статик переменная для отлова изменения целого процента. На большой базе , к примеру 1 000 000 записей значение выражения INT( Recno()/RecCount()*100) будет меняться только через каждые 10 000 записей. Совершенно бесполезно 10 000 раз обновлять прогрессбар одним и тем же значением, это только лишний тормоз.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3647
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.10.14 13:02. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Не пойму, зачем периндексировать такое количество баз при старте программы Для этого должен быть отдельный режим переиндексации ВСЕХ баз |
| Да это и есть мой режим переиндексации ВСЕХ моих баз. Неправильно выразился...
|
|
|
|
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
|
|
|
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() соответственно
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3652
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.10.14 20:59. Заголовок: Dima пишет: Может в..
Dima пишет: цитата: | Может в нем таймаут уменьшить........? |
| Убрал совсем INKEYGUI(), собираю теперь с ключом -mt ! AVI-ка не тормозит, бегунки красиво (до конца) не доходят. Зато быстро стало, аж меньше минуты.
|
|
|
Dima
|
| |
Пост N: 4228
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.10.14 21:09. Заголовок: Andrey пишет: Убрал..
Andrey пишет: цитата: | Убрал совсем INKEYGUI(), собираю теперь с ключом -mt ! |
| Не вижу связи ключа -mt и тормоза что был. Думаю без него будет так же работать. Попробуй.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3653
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.10.14 21:30. Заголовок: Dima пишет: Не вижу..
Dima пишет: цитата: | Не вижу связи ключа -mt и тормоза что был. Думаю без него будет так же работать. Попробуй. |
| Работать будет, АВИшка подвисать будет.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3654
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.10.14 21:37. Заголовок: Столкнулся с еще одн..
Столкнулся с еще одной непоняткой, вот картинка: На рис.1 окно создано с флагом Form_Dim.Sizable := .T. // разрешить растягивание окна Когда перехожу в режим редактирования справочника делаю Form_Dim.Sizable := .F. // NOSIZE - запретить растягивание окна ! Результат на рис.2 - изображение на окне делает "прыг" и справа и снизу появляется свободная область окна Как убрать эту свободную область ? Или можно делать как то по другому ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3663
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.10.14 20:47. Заголовок: Может можно вычислит..
Это что-то TBROWSE "скачет" .... Сделал после смены режима пересчет окна TBROWSE и все нормально стало...
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 670
Зарегистрирован: 11.02.10
|
|
Отправлено: 15.10.14 22:58. Заголовок: Andrey пишет: Может..
Andrey пишет: цитата: | Может можно вычислить ЭТОТ дурацкий отступ ? |
| Отступ по вертикали - GetBorderHeight() Отступ по горизонтали - GetBorderWidth() Пробуй
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3664
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.10.14 23:05. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: Спасибо, попробую !!!
|
|
|
Ответов - 301
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|