Автор | Сообщение |
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.
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|
Dima
|
| |
Пост N: 4484
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.02.15 23:06. Заголовок: gfilatov2002 Понял...
gfilatov2002 Понял. Спасибо
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3947
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.02.15 23:18. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Для этого надо сделать само-нарисованным (Ownerdraw) только этот конкретный участок статусной строки. |
| Блин, а я StatusBar делал самописный из LABEL.... Столько кода написать пришлось для пересчета при изменение размеров окна....
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3948
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.02.15 23:31. Заголовок: А если сделать так: ..
А если сделать так: LOCAL aBackColor := {0,64,80} .... DEFINE WINDOW Win_1 ; BACKCOLOR aBackColor ; ..... Как тогда фон всего STATUSBAR сделать цветом aBackColor ?
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 718
Зарегистрирован: 11.02.10
|
|
Отправлено: 13.02.15 14:25. Заголовок: Andrey пишет: Как т..
Andrey пишет: цитата: | Как тогда фон всего STATUSBAR сделать цветом aBackColor ? |
| Планирую добавить новые свойства BACKCOLOR и FONTCOLOR для STATUSITEM в следующей сборке. Тогда можно будет записать так: #include "minigui.ch" #define APP_TITLE "Hello World!" Function Main LOCAL aBackColor := {0,64,80} DEFINE WINDOW Win_1 ; AT 0,0 ; WIDTH 400 ; HEIGHT 400 ; TITLE APP_TITLE ; MAIN ; BACKCOLOR aBackColor DEFINE STATUSBAR FONT "Arial" SIZE 10 STATUSITEM "Item 0" BACKCOLOR aBackColor STATUSITEM "Item 1" WIDTH 92 BACKCOLOR aBackColor FONTCOLOR YELLOW STATUSITEM "Item 2" WIDTH 92 BACKCOLOR aBackColor END STATUSBAR END WINDOW CENTER WINDOW Win_1 ACTIVATE WINDOW Win_1 Return Nil
|
|
|
Dima
|
| |
Пост N: 4488
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.02.15 14:28. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Планирую добавить новые свойства BACKCOLOR и FONTCOLOR для STATUSITEM |
|
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 719
Зарегистрирован: 11.02.10
|
|
Отправлено: 13.02.15 16:26. Заголовок: Dima Хочу уточнить,..
Dima Хочу уточнить, что я имел в виду следующую сборку 2.4.5, поскольку эти новые свойства требуют дополнительного тестирования. Уже сейчас вижу, что они НЕ совместимы с классом ICON для STATUSITEM
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3951
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.02.15 16:39. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Хочу уточнить, что я имел в виду следующую сборку 2.4.5 |
| Подождем ! Спасибо !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3960
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.02.15 12:14. Заголовок: В терминалке на хХар..
В терминалке на хХарборе использую базы в 866 кодировке. Символы CHR(250)-CHR(253) пишутся в текстовые поля базы нормально ! Пытаюсь то же самое сделать под МиниГуи не выходит, коды другие: Как записать в поле базы символы CHR(250)-CHR(253) ?
|
|
|
nick_mi
|
| |
Пост N: 159
Зарегистрирован: 19.05.05
|
|
Отправлено: 18.02.15 16:24. Заголовок: Repl pole with chr(2..
Repl pole with chr(250)+ chr(253) не пробовал? На всякий случай попробуй
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3981
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.02.15 15:08. Заголовок: Всем привет. Делал о..
Всем привет. Делал окошко для проверки базы с двумя бегунками. Причем второй бегунок использовал два раза ( с разными цветами) на копирование файла ( синий) и переброску записей с одной базы в другую ( зеленый). И столкнулся с непоняткой, при переброске записей ( зеленый цвет) вылазит синий цвет ? Наверно нужно как то объект чистить (хотя пользуюсь только DRAW RECTANGLE ) ... А может и не надо... Подскажите как убрать паразитирующий цвет ( синий) ? Исходник CheckDbf.7z здесь - https://cloud.mail.ru/public/5d315f972a72/MiniGui-Error
|
|
|
Dima
|
| |
Пост N: 4523
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.02.15 18:53. Заголовок: Andrey пишет: И сто..
Andrey пишет: цитата: | И столкнулся с непоняткой, при переброске записей (зеленый цвет) вылазит синий цвет ? |
| Собрал пример и такого эффекта не увидел. Нижний бегунок меняется нормально с синего на зеленый , потом снова синий потом зеленый. Единственно что когда рисуется зеленый бегунок то он дергается как не нормальный ))))) Синий идет красиво. PS Чем принципиально отличается InkeyGUI() от Inkey() ?
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3982
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.02.15 03:13. Заголовок: Dima пишет: Единств..
Dima пишет: цитата: | Единственно что когда рисуется зеленый бегунок то он дергается как не нормальный ))))) |
| Вот это и есть фигня ! Как убрать и в чём дело не знаю !!! Dima пишет: цитата: | Чем принципиально отличается InkeyGUI() от Inkey() ? |
| Inkey() только для задержки форма висит и всё ! А InkeyGUI() нужно использовать чтобы на форме объекты перерисовались.
|
|
|
Dima
|
| |
Пост N: 4524
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.02.15 09:53. Заголовок: Andrey Закоменти в ..
Andrey Закоменти в функции MyCopyBase строки cSay := "БД: " + cFile + " " + HB_NtoS(nJ) + "/" + HB_NtoS(nRecnoAll) + " - прошло ХХ:ХХ / осталось ХХ:ХХ" SetProperty(cStForm,"Label_File2","Value", cSay ) и дергаться перестанет.
|
|
|
Haz
|
| |
Пост N: 468
Зарегистрирован: 20.02.11
|
|
Отправлено: 24.02.15 13:38. Заголовок: Andrey пишет: Вот э..
Andrey пишет: цитата: | Вот это и есть фигня ! Как убрать и в чём дело не знаю |
| Эта фигня возникает из-за "непрофильного" использования DRAW да еще в цикле. По сути происходит следующее : Каждый вызов DRAW помимо того что рисует кусок псевдопрогрессбара на форме, так еще и запоминает в системной переменной MiniGui блок вызова этого самого DRAW с указанными параметрами ( что рисуем, по каким координатам, каким цветом, в каком окне ... ) Это нужно для того чтобы при изменении видимости окна - восстанавливать на нем все эти художества автоматически по сабытиям ( перемещение , прорисовка окна и пр ). Теперь что происходит в программе ( на пальцах): Каждый вызов DRAW - запоминает свой кодовый блок , при выводе Label идет перерисовка области окна и .....автоматом идет выполнение ВСЕХ предыдущих прорисовок DRAW отсюlа и моргание. Достаточно посмотреть исходники h_draw.prg и h_events.prg это в h_draw FUNCTION drawrect( window, row, col, row1, col1, penrgb, penwidth, fillrgb ) ... rectdraw( FormHandle, row, col, row1, col1, penrgb, penwidth, fillrgb, fill ) AAdd ( _HMG_aFormGraphTasks , { || rectdraw( FormHandle,row,col,row1,col1,penrgb,penwidth,fillrgb,fill ) } ) ... RETURN nil это в h_events CASE WM_PAINT FOR EACH r In _HMG_aFormHandles IF _HMG_aFormDeleted [z] == .F. a := _HMG_aFormGraphTasks [z] IF ISARRAY ( a ) .AND. Len ( a ) > 0 AEval ( a, { |x| Eval ( x ) } ) ENDIF ENDIF NEXT убрать просто - использовать штатный прогрессбар, или перед вызовом DRAW влепить костыль вида ASize ( _HMG_aFormGraphTasks [GetFormIndex ( cWindowName )], 0 ), который просто обнуляет массив кодовых блоков DRAW и при этом НЕ ГАРАНТИРУЕТСЯ корректная работа в последующих версиях MiniGui, и соответственно ГАРАНТИРУЕТСЯ гемморой с поддержкой такой программы у заказчика
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3983
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.02.15 16:48. Заголовок: Спасибо БОЛЬШОЕ за р..
Спасибо БОЛЬШОЕ за разъяснения Haz Можно ли тогда в стандартном штатном прогрессбар изменить цвет бегунка ?
|
|
|
Haz
|
| |
Пост N: 470
Зарегистрирован: 20.02.11
|
|
Отправлено: 24.02.15 16:53. Заголовок: Andrey пишет: Можно..
Andrey пишет: цитата: | Можно ли тогда в стандартном штатном прогрессбар изменить цвет бегунка |
| Условно да, вот из справки по Minigui Note: SMOOTH, BACKCOLOR & FORECOLOR has no effect when XP-Style is used
|
|
|
Haz
|
| |
Пост N: 471
Зарегистрирован: 20.02.11
|
|
Отправлено: 24.02.15 17:45. Заголовок: Andrey Если уж хоч..
Andrey Если уж хочется нестандарта - то рекомендую прогрессбар рисовать фоном стандартного элемента LABEL это сработает и даже быстрее чем DRAW как демонстрация поправь в своей проге LABEL_1 ( TRANSPORENT УБРАТЬ ) @ 15,10 LABEL Label_1 ; WIDTH 0 HEIGHT 20 ; // VALUE cTitle BOLD ; FONTCOLOR BLACK ; BACKCOLOR RED ; CENTERALIGN VCENTERALIGN а Перед DRAW в custom progress вставь строку SetProperty( cWindowName, "Label_1", "Width", nFinishCol ) Дальше уверен сам все увидишь
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3984
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.02.15 21:26. Заголовок: Haz пишет: Если уж ..
Haz пишет: цитата: | Если уж хочется нестандарта - то рекомендую прогрессбар рисовать фоном стандартного элемента LABEL это сработает и даже быстрее чем DRAW |
| Спасибо за идею. Буду пробовать. А заодно - насчет нестандарта: а LABEL можно сделать какой нибудь - "заливкой" ? Типа как шапка заголовка в TBROWSE, там 2 цвета используется.
|
|
|
Dima
|
| |
Пост N: 4529
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.02.15 21:53. Заголовок: Andrey пишет: а LAB..
Andrey пишет: цитата: | а LABEL можно сделать какой нибудь - "заливкой" ? |
| Не оно ? @ <nRow> ,<nCol> LABEL <ControlName> [ ID <nId> ] [ OF | PARENT | DIALOG <ParentWindowName> ] VALUE <cValue> [ ACTION | ONCLICK | ON CLICK <ActionProcedureName> | <bBlock> ] [ ON MOUSEHOVER | ONMOUSEHOVER> <OverProcedureName> | <bBlock> [ ON MOUSELEAVE | ONMOUSELEAVE > <LeaveProcedureName> | <bBlock> ] ; [ WIDTH <nWidth> ] [ HEIGHT <nHeight> ] [ AUTOSIZE ] [ FONT <cFontname> SIZE <nFontsize> ] [ BOLD ] [ ITALIC ] [ UNDERLINE ] [ STRIKEOUT ] [ TOOLTIP <cToolTipText> ] [ BACKCOLOR <anBackColort> ] [ FONTCOLOR <anFontColor>] [ BORDER ] [ CLIENTEDGE ] [ HSCROLL ] [ VSCROLL ] [ TRANSPARENT ] [ BLINK ] [ RIGHTALIGN | CENTERALIGN ] [ HELPID <nHelpId> ] [ INVISIBLE ]
|
|
|
Haz
|
| |
Пост N: 472
Зарегистрирован: 20.02.11
|
|
Отправлено: 24.02.15 22:28. Заголовок: Andrey пишет: Типа ..
Andrey пишет: цитата: | Типа как шапка заголовка в TBROWSE |
| ну так и делай прогресс из TsBrowsa... 10 мин потратил на пример, дальше сам ++++++++++++++++++++++++++++++++ #include "minigui.ch" #include "tsbrowse.ch" Procedure Main() Public oBrw1 Public aDatos_origen DEFINE WINDOW Form1 ; AT 0,0 ; WIDTH 840 ; HEIGHT 480 ; TITLE "TsBrowse Progressbar Test" ; MAIN ; FONT 'Tahoma' SIZE 9 Sample1() END WINDOW DEFINE TIMER Timer_1 OF Form1 INTERVAL 100 ACTION TimerProc() ACTIVATE WINDOW Form1 Return *-------------------------------------------------------------- Function Sample1() aDatos_origen := {} AADD( aDatos_origen, {""} ) IF !_IsControlDefined ("oBrw1", "Form1") DEFINE TBROWSE oBrw1 ; AT 60,10 ; OF Form1 ; WIDTH 800 ; HEIGHT 30 ; FONT "Verdana" ; SIZE 9 ; GRID oBrw1:SetArray( aDatos_origen ) oBrw1:nHeightCell := 29 oBrw1:nHeighthEAD := 0 oBrw1:lNoVScroll := .T. oBrw1:lNoHScroll := .T. oBrw1:SetColor( { 2 }, { { Rgb( 255, 250, 205 ), Rgb( 200, 200, 200 ) } } ) oBrw1:SetColor( { 6 }, { { RGB( 43, 149, 168 ), RGB( 0, 74, 104 )} } ) ADD COLUMN TO TBROWSE oBrw1 DATA ARRAY ELEMENT 1 SIZE 1 END TBROWSE ENDIF Return Nil Func TimerProc() oBrw1:SetColSize( 1, oBrw1:aColSizes[1] +5 ) Return nil
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|