Автор | Сообщение |
Andrey
|
| постоянный участник
|
Пост N: 1929
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.11.11 21:36. Заголовок: Примеры из Минигуи -ошибки, вопросы..... (продолжение)
Всем привет. Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ? А заодно может и исправить и добавить новые.... Очень красочный пример: \MiniGUI\SAMPLES\Advanced\AVI_Animation - не работает под Win7 (наверно AVI-шки нет в ресурсах) Предложение Григорию: Можно ли добавить еще один пример с отдельным AVI-файлом в ресурсах проекта и показом такого же бегунка ? Пример: \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: 3670
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.11.14 15:16. Заголовок: Привет всем ! Подска..
Привет всем ! Подскажите пожалуйста, как на свою форму вывести всплывающее окно ? Примерно как в примере \MiniGUI\SAMPLES\Advanced\TrayBalloon_2
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3671
Зарегистрирован: 12.09.06
|
|
Отправлено: 02.11.14 19:03. Заголовок: Как убрать в окне ТО..
Как убрать в окне ТОЛЬКО элемент закрытия окна [x] ?
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 675
Зарегистрирован: 11.02.10
|
|
Отправлено: 02.11.14 19:40. Заголовок: Andrey пишет: Как у..
Andrey пишет: цитата: | Как убрать в окне ТОЛЬКО элемент закрытия окна [x] ? |
| Попробуй SetProperty( ThisWindow.Name, 'Closable', .F. )
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3672
Зарегистрирован: 12.09.06
|
|
Отправлено: 02.11.14 20:25. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Попробуй SetProperty( ThisWindow.Name, 'Closable', .F. ) |
| Спасибо БОЛЬШОЕ !!! А как насчет предыдущего вопроса ? Есть такой пример или нет ?
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3675
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.11.14 18:27. Заголовок: Использую функции Ge..
Использую функции GetIni() и WriteIni() для работы с ини-файлами. Как хранить массив в ини-файле ? И как тогда его записывать/считывать ? Типа: Color_1 = {11048235,6174208} Можно конечно массив держать как строку с разделителем Color_1 = 11048235;6174208 и считывать её как aDim := HB_ATOKENS( GetIni( cSection , "Color_1" , "", cFileConfig ) ,";", .T. ) // массив Но тогда массив будет строковый ! А нужно числовой !!! И еще замечание массив должен быть ВСЕГДА однородным, а бывают случаи что нужно содержать - число, строку и вложенный массив. Как быть ? Поделитесь своим опытом.
|
|
|
Dima
|
| |
Пост N: 4240
Зарегистрирован: 17.05.05
|
|
Отправлено: 03.11.14 19:09. Заголовок: Andrey Сохранить мо..
Andrey Сохранить можно так в INI hb_Valtoexp(massiv) а восстановить , считываем из INI этот параметр в переменную C:=&Переменная
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3676
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.11.14 19:32. Заголовок: Dima пишет: Сохрани..
Dima пишет: цитата: | Сохранить можно так в INI |
| Спасибо БОЛЬШОЕ !!! Облегчил ты мне работу ! aDim := {11048235,6174208,12856,"test",{"dim"}, "test2" } WriteIni( cSection, "Color_1" , hb_Valtoexp(aDim), cFileConfig ) aDim := &( GetIni( cSection , "Color_1" , '{}', cFileConfig ) ) // массив А как записать блок кода в ини-файл ?
|
|
|
Dima
|
| |
Пост N: 4241
Зарегистрирован: 17.05.05
|
|
Отправлено: 03.11.14 22:34. Заголовок: hb_Valtoexp тут не п..
hb_Valtoexp тут не поможет так как не допилили его в плане блоков. делай так. c:={|x| x+1} а вот так пиши в ini '{|x| x+1}' , на вскидку более красивого решения пока не вижу.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3689
Зарегистрирован: 12.09.06
|
|
Отправлено: 06.11.14 19:21. Заголовок: Борьба с огромными ш..
Борьба с огромными шрифтами у себя в программе !
|
|
|
Marquis031
|
| |
Пост N: 5
Зарегистрирован: 21.10.14
|
|
Отправлено: 07.11.14 10:07. Заголовок: http://clipper.borda..
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3691
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.11.14 12:25. Заголовок: Marquis031 пишет: ..
Marquis031 пишет: То что нужно ! Спасибо !
|
|
|
|
Haz
|
| |
Пост N: 340
Зарегистрирован: 20.02.11
|
|
Отправлено: 10.11.14 14:03. Заголовок: Зависает TSBROWSE Н..
Зависает TSBROWSE Никак не могу понять где проблема ... Если создать TSBROWSE с количеством колонок примерно 300 в режимеCELL ( GRID ) и гонять его курсор вправо -влево до упора ( нажать стрелку на клавиатуре и держать ), то бровс перестает перерисовывать весь экран, рисует только текущую строку и начинает грузить проц под 100%. При этом задача имеет все признаки зависа . Как бороться с этой не пойму. Складывается впечатление что бровс не успевает отрабатывать нажатие клавиш и мрет Отдельные нажатия на стрелки отрабатывает отлично , виснет только если нажать и держать. Видимо нужна временная задержка , а вот куда ее сунуть не знаю. Мож есть у кого мысли, как победить PS. Вариант не давить на стрелки - отпадает, т.к. пользователям на это пофиг вот пример на всякий случай, собирается с hbsqldd.lib Скрытый текст #include "minigui.ch" #include "tsbrowse.ch" #include "common.ch" REQUEST SQLMIX Procedure Main() Public oBrw1 DEFINE WINDOW Form1 ; AT 0,0 ; WIDTH (RR_GetDesktopArea()[4] * 0.99) ; HEIGHT (RR_GetDesktopArea()[3] * 0.91) ; TITLE "TsBrowse Array Bug Test" ; MAIN ; FONT 'Tahoma' SIZE 9 Test() END WINDOW Form1.Center Form1.ACTIVATE Return *-------------------------------------------------------------- Function Test() local i := 0 local j := 0 Local aStr := {} local cAlias := "TEST" local cBrw := "BRW" local aField := {} PUBLIC &cBrw FOR j := 1 TO 300 AADD( aStr, {"F_" + NTOC(j) , "N", 14, 2 }) END rddSetDefault( "SQLMIX" ) dbCreate( cAlias, aStr,, .T., cAlias ) FOR i := 1 TO 100 (cAlias)->(DbAppend()) FOR j := 1 TO 300 (cAlias)->(FieldPut(j, i*j)) END END rddSetDefault( "SQLMIX" ) DEFINE TBROWSE &cBrw At 50, 5 ALIAS cAlias ; OF Form1 ; WIDTH (Form1.Width - 20) ; HEIGHT (Form1.Height - 70) ; COLORS { CLR_BLACK, CLR_BLUE } ; FONT "MS Sans Serif" ; SIZE 8 ; CELL; SELECTOR .T. END TBROWSE &cBrw:LoadFields( FALSE ) Return Nil
|
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 679
Зарегистрирован: 11.02.10
|
|
Отправлено: 10.11.14 14:57. Заголовок: Haz пишет: Видимо н..
Haz пишет: цитата: | Видимо нужна временная задержка , а вот куда ее сунуть не знаю. |
| Игорь, Попробуй пример ниже - возможно, поможет Скрытый текст
#include "minigui.ch" #include "tsbrowse.ch" REQUEST SQLMIX Procedure Main() DEFINE WINDOW Form1 ; AT 0,0 ; WIDTH (RR_GetDesktopArea()[4] * 0.99) ; HEIGHT (RR_GetDesktopArea()[3] * 0.91) ; TITLE "TsBrowse Array Bug Test" ; MAIN ; FONT 'Tahoma' SIZE 9 END WINDOW Test() Form1.Center Form1.ACTIVATE Return *-------------------------------------------------------------- Function Test() local i := 0 local j := 0 Local aStr := {} local cAlias := "TEST" local cBrw := "BRW" PUBLIC &cBrw FOR j := 1 TO 300 AADD( aStr, {"F_" + NTOC(j) , "N", 14, 2 } ) NEXT rddSetDefault( "SQLMIX" ) dbCreate( cAlias, aStr,, .T., cAlias ) FOR i := 1 TO 100 (cAlias)->( DbAppend() ) FOR j := 1 TO 300 (cAlias)->( FieldPut(j, i*j) ) NEXT NEXT rddSetDefault( "SQLMIX" ) DEFINE TBROWSE &cBrw ; At 20, 5 ; ALIAS cAlias ; OF Form1 ; WIDTH (Form1.Width - 20) ; HEIGHT (Form1.Height - 70) ; COLORS { CLR_BLACK, CLR_BLUE } ; FONT "MS Sans Serif" ; SIZE 8 ; CELL; SELECTOR .T. END TBROWSE &cBrw:LoadFields( FALSE ) FOR i := 1 TO LEN(&cBrw:aColumns) &cBrw:aColumns[ i ]:bGotFocus := {|| ProcessMessages()} NEXT Return Nil
|
|
|
|
Haz
|
| |
Пост N: 343
Зарегистрирован: 20.02.11
|
|
Отправлено: 10.11.14 15:34. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Попробуй пример ниже - возможно, поможет |
| К сожалению не помогает , и по bLostFocus и по bOnChange уже пихал ( ProcessMessages(), SysRefresh(), Millisec(100 ) и пр ) где-то затык , уменя бровс помирает примерно на 60 -63 колонке при скроле в право. Помогает только одно , ДО достижения колонки 60 успеть отжать клавишу стрелка вправо и можно держать еще 60 колонок Понимаю что бессмысленно туда сюда гонять курсор, но уверен что пользователи будут кричать что без этого никак и главное - процесс зависает так что только через диспетчер задач рубится То что что-то с задержкой - понял по запущенному RemoteDesktop , когда он работает - есть у клавиатуры "инерционность" когда он запущен то кнопки отрабатывают с опозданием типа палец отжал, а оно еще двигается зато бровс не виснет
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 680
Зарегистрирован: 11.02.10
|
|
Отправлено: 10.11.14 16:10. Заголовок: Haz пишет: есть у к..
Haz пишет: цитата: | есть у клавиатуры "инерционность" |
| В таком случае попробуй уменьшить частоту повтора символа при нажатии клавиш в настройках Винды
|
|
|
Haz
|
| |
Пост N: 345
Зарегистрирован: 20.02.11
|
|
Отправлено: 10.11.14 16:28. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | В таком случае попробуй уменьшить частоту повтора символа при нажатии клавиш в настройках Винды |
| Это помогает , хоть и напрягает тормоз И НЕКРАСИВОСТЬ РЕШЕНИЯ но НЕ ВИСНЕТ. Можно как то это из программы сделать ?
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 681
Зарегистрирован: 11.02.10
|
|
Отправлено: 10.11.14 17:04. Заголовок: Haz пишет: Можно ка..
Haz пишет: цитата: | Можно как то это из программы сделать ? |
| цитата: | Настройка параметров клавиатуры Формат команды: mode CON: RATE=r DELAY=d Параметры: CON: — указание команде MODE, что она должна настраивать параметры клавиатуры; R АТЕ=d — задание частоты повтора символов после того, как нажатая клавиша клавиатуры удерживается пользователем. Значения параметра d лежат в пределах от 1 до 32. Это соответствует примерно частоте повторения от 2 до 30 символов в секунду. По умолчанию частота повтора установлена равной 20 для клавиатур, совместимых с клавиатурой машин IBM PC/AT, и равной 21 для клавиатур, совместимых с клавиатурой компьютера IBM PS/2. При задании в команде MODE частоты повторения символов необходимо указывать и задержку перед их повтором; DELAY=d — указание времени задержки перед повтором символов после нажатия клавиши. Этот параметр может быть равным следующим числам: 1, 2, 3 и 4. Приведенные значения задержки примерно соответствуют 0.25, 0.50, 0.75 и 1-секундной задержке соответственно. Пример использования: mode con: delay=2 rate=3 После выполнения этой команды для клавиатуры устанавливаются следующие характеристики: - частота повтора символов — 10 символов в секунду; - задержка перед автоповтором — 0.5 с. Общие примечания к команде MODE: В команде MODE при изменении кодовых страниц дисплея не допускается использовать кодовую таблицу, назначенную драйверу DISPLAY.SYS, если он подключен к ОС в файле CONFIG.SYS. Команду MODE в различных вариантах очень удобно использовать в файле AUTOEXEC.BAT для изменения параметров работы устройств вашего компьютера при загрузке ОС. |
|
|
|
|
Dima
|
| |
Пост N: 4256
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.11.14 17:10. Заголовок: KBDSPEED(, ) --&..
KBDSPEED([<nDelay>], [<nFrequency>]) --> lAmended Не ? ;) Упс...она не реализована.
|
|
|
Haz
|
| |
Пост N: 346
Зарегистрирован: 20.02.11
|
|
Отправлено: 10.11.14 17:18. Заголовок: Dima пишет: KBDSPEE..
Dima пишет: цитата: | KBDSPEED([<nDelay>], [<nFrequency>]) |
| Дим привет. не нашел где живет эта функция , есть похожая NF_SetRate() в hbnf.lib но внутри нее только для OS_DOS по любому это заплатка , проблема кроется в классе TSBROWS который судя по всему не успевает отработать автоповтор клавиш про скроллинге по горизонтали и где-то затыкается. Мне бы это "где-то" найти , попробую с внутренним методом :KeyDown() поколдовать
|
|
|
Dima
|
| |
Пост N: 4257
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.11.14 17:20. Заголовок: Haz пишет: не нашел..
Haz пишет: цитата: | не нашел где живет эта функция |
| Это HBCT Ранее юзал ее в Clipper
|
|
|
Ответов - 301
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|