Автор | Сообщение |
|
| постоянный участник
|
Пост 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.
|
|
|
Ответов - 230
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
All
[только новые]
|
|
|
| постоянный участник
|
Пост N: 2861
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.09.19 19:23. Заголовок: PS можешь применить ..
PS можешь применить коэффициент, если надо уменьшить\увеличить размер nW := 0; AEval(aText, {|ct| nW := Max(nW, GetFontWidth( 'Font_1', Len(ct) ) * 0.8 /* 1.05 */ })
|
|
|
|
| постоянный участник
|
Пост N: 2862
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.09.19 20:21. Заголовок: Andrey пишет Помогит..
Andrey пишет цитата: | Помогите сделать такие универсальные функции ! |
| Для реальных размеров текста можно такую ф-ю Скрытый текст
*----------------------------------------------------------------------------* FUNCTION GetTextWidthHeight( aTxt, FontName, FontSize ) *----------------------------------------------------------------------------* LOCAL hFont, lFont, nWidth := 0, nHeigth := 0, cTxt DEFAULT aTxt := { 'W' }, FontName := App.FontName, FontSize := App.FontSize IF VALTYPE( aTxt ) == 'C' aTxt := { aTxt } ENDIF hFont := GetFontHandle( FontName ) IF ( lFont := hFont == 0 ) hFont := InitFont( FontName, FontSize ) ENDIF FOR EACH cTxt IN aTxt IF Len(cTxt) == 0 cTxt := 'W' ENDIF nWidth := Max( nWidth, GetTextWidth( 0, cTxt, hFont ) ) IF nHeight == 0 nHeight := GetTextHeight( 0, cTxt, hFont ) ENDIF NEXT IF lFont DeleteObject( hFont ) EndIf RETURN { nWidth, nHeight }
|
|
|
|
|
| постоянный участник
|
Пост N: 2863
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.09.19 20:23. Заголовок: PS Фонты с BOLD и др..
PS Фонты с BOLD и др. атрибутами надо регистрировать DEFINE FONT ...
|
|
|
|
| постоянный участник
|
Пост N: 6450
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.09.19 23:37. Заголовок: SergKis пишет: доба..
SergKis пишет: цитата: | добавить NOSHOW, а в ON INIT This.Show() |
| Это относится к окну. Понял. Спасибо большое ! У меня проблема большая... по Tab. Показываю окно с Tab карточкой юзеру. На медленных компах видно как этот Tab дергается, т.е. на Tab вывожу объекты Label и GetBox. Там их много, порядка 150 объектов. Вот и дергается Tab. Можно как то это "дерганье" убрать ? Код почти такой же как в примере MiniGUI\SAMPLES\BASIC\COLORED_TAB Вот мой код Скрытый текст
DEFINE TAB Tab_1 OF Form_Card ; ......... ON CHANGE SizePageBack( Form_Card.Tab_1.Value ) _HMG_ActiveTabBottom := .F. // lBottomStyle FOR nI := 1 TO LEN( aTabName ) IF aStatCheckTabView[nI] // показ вкладки разрешено ! PAGE aTabName[ nI ] //IMAGE cResTabImage cNameLabel := 'Page_' + hb_ntos( nI ) @ 24, 2 LABEL &cNameLabel VALUE "" WIDTH 0 HEIGHT 0 BACKCOLOR aTabColor[nI] // вывести поля карточки ShowPageCard( nI, nRowTab, aTabColor[ nI ], aDimCard[ nI ],; aFontNames, aFontFields, lEditPrg, nFSizeTab ) END PAGE ENDIF NEXT END TAB // Assign the colors to the Tab bookmarks Form_Card.Tab_1.Cargo := aTabColor
|
|
|
|
|
| постоянный участник
|
Пост N: 2914
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.09.19 23:57. Заголовок: Andrey пишет Это отн..
Andrey пишет цитата: | Это относится к окну. Понял. Спасибо большое ! |
| Перенеси, обязательно, This.Center как в пред. версии hmg цитата: | Там их много, порядка 150 объектов. Вот и дергается Tab. |
| Попробуй окну NOSHOW и в ON INIT This.Show, как выше
|
|
|
|
| постоянный участник
|
Пост N: 6451
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.09.19 12:51. Заголовок: SergKis пишет: Поп..
SergKis пишет: цитата: | Попробуй окну NOSHOW и в ON INIT This.Show, как выше |
| Нет, окну не могу. Нужно для объекта Tab.
|
|
|
|
| постоянный участник
|
Пост N: 2915
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.09.19 14:22. Заголовок: Andrey Приведенный ..
Andrey Приведенный тобой код, он в каком месте работает, в ON INIT ... или до END WINDOW ?
|
|
|
|
| постоянный участник
|
Пост N: 2916
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.09.19 14:27. Заголовок: Andrey пишет Нет, ок..
Andrey пишет цитата: | Нет, окну не могу. Нужно для объекта Tab. |
| Почему ? В чем причина ? Можно показать готовое окно из hide и не видеть как мелькает при формировании.
|
|
|
|
| постоянный участник
|
Пост N: 6452
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.09.19 21:12. Заголовок: SergKis пишет: Поче..
SergKis пишет: цитата: | Почему ? В чем причина ? Можно показать готовое окно из hide и не видеть как мелькает при формировании. |
| Я окно карточки делаю набегающим, т.е. в цикле увеличиваю размеры окна карточки (мини анимация). Это делаю всё в ON INIT { || MyInitCard(cTableForm,lEditPrg,hCursorTable),; ResizeCardForm(cTableForm) , SizePageBack(1) } ; Построение DEFINE TAB Tab_1 OF Form_Card до END WINDOW: SetTab_1Card(nRowTab,nFWidth,nFHeight,cFNameTab,nFSizeTab,lEditPrg,aBackColor,; aTabName, aTabColor, aDimCard, aFontNames, aFontFields, aTabFColor2 ) ON KEY ESCAPE OF Form_Card ACTION ThisWindow.Release ON KEY PRIOR OF Form_Card ACTION MyPageUpCard(cTableForm) // это PageUp ON KEY NEXT OF Form_Card ACTION MyPageDownCard(cTableForm) // это PageDown END WINDOW ACTIVATE WINDOW Form_Card Можно ли скрыть построение TAB Tab_1 а потом его показать ?
|
|
|
|
| постоянный участник
|
Пост N: 2917
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.09.19 22:23. Заголовок: Andrey пишет Можно л..
Andrey пишет цитата: | Можно ли скрыть построение TAB Tab_1 а потом его показать ? |
| Если найдешь хандле всех дочерних окон - page, то, наверно, сможешь. Сделай 2а окна, с tab -> hide, 2ое для анимации, т.е. заполняешь первое, размеры меняешь у второго. Потом 1му -> размеры 2го и выводишь из hide+topmost+-, второму release. Вроде, были примеры на анимацию окна, но не помню так ли.
|
|
|
|
| постоянный участник
|
Пост N: 2918
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.09.19 22:31. Заголовок: Andrey пишет ..
Andrey пишет цитата: | ON INIT { || MyInitCard(cTableForm,lEditPrg,hCursorTable),; ResizeCardForm(cTableForm) , SizePageBack(1) } ; |
| Все как в примере colored_tab, на глаз видно передергивание (маленькое) перерисовки Сделал NOSHOW + ON INIT ( ..., This.Show() ), все чистенько стало. А так, ты сам елку (анимацию) сделал
|
|
|
|
|
| постоянный участник
|
Пост N: 6453
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.09.19 21:00. Заголовок: Всем привет ! Попро..
Всем привет ! Попросил сделать пример с TAB объектом на C# для WinForm. Чуток по другому дергается для большлого кол-ва вкладок с TextBox. Видать это особенность Win-api для WinForm. Но есть одна особенность, в C# можно скрыть объект, а после прорисовки его показать ! Тогда "дерганья" не видно вообще ! Посмотрел хелп по МиниГуи. Для TAB нет свойства INVISIBLE. Для других объектов есть, а для TAB нет. Если бы был, то тогда было бы всё отлично ! Строим скрытый объект TAB, а потом можно было бы сделать в ON INIT { || Form_Card.Tab_1.Show ..... Григорий, можно ли добавить для TAB свойство INVISIBLE ?
|
|
|
|
| постоянный участник
|
Пост N: 1560
Зарегистрирован: 27.01.07
|
|
Отправлено: 23.09.19 21:32. Заголовок: Andrey пишет: Если ..
Andrey пишет: цитата: | Если бы был, то тогда было бы всё отлично ! Строим скрытый объект TAB, а потом можно было бы сделать в ON INIT { || Form_Card.Tab_1.Show ..... |
| Я, конечно, могу ошибаться, но разве Сергей тебе не то же самое предложил? SergKis пишет: цитата: | Сделал NOSHOW + ON INIT ( ..., This.Show() ), все чистенько стало. |
|
|
|
|
|
| постоянный участник
|
Пост N: 6454
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.09.19 21:59. Заголовок: PSP пишет: Я, конеч..
PSP пишет: цитата: | Я, конечно, могу ошибаться, но разве Сергей тебе не то же самое предложил? |
| У объекта TAB по хелпу нет свойства NOSHOW. Сергей предложил сделать NOSHOW для всего окна. Для меня показ окна обязателен. Предложения с подменой окон уж очень сложен.
|
|
|
|
| moderator
|
Пост N: 1587
Зарегистрирован: 11.02.10
|
|
Отправлено: 24.09.19 10:27. Заголовок: Andrey пишет: можно..
Andrey пишет: цитата: | можно ли добавить для TAB свойство INVISIBLE ? |
| Для этого у всех контролов есть методы Hide/Show Попробуй цитата: | *-----------------------------------------------------------------------------* PROCEDURE Hide_CLick *-----------------------------------------------------------------------------* Form_1.Tab_1.Visible := .F. RETURN *-----------------------------------------------------------------------------* PROCEDURE Show_CLick *-----------------------------------------------------------------------------* Form_1.Tab_1.Visible := .T. RETURN |
|
|
|
|
|
| постоянный участник
|
Пост N: 6455
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.09.19 13:37. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Для этого у всех контролов есть методы Hide/Show |
| А как этот метод заставить работать сразу при построение Tab_1 ? Если делать так: DEFINE TAB Tab_1 OF Form_Card ; ......... ON CHANGE SizePageBack( Form_Card.Tab_1.Value ) Form_Card.Tab_1.Visible := .F. _HMG_ActiveTabBottom := .F. // lBottomStyle FOR nI := 1 TO LEN( aTabName ) IF aStatCheckTabView[nI] // показ вкладки разрешено ! PAGE aTabName[ nI ] //IMAGE cResTabImage cNameLabel := 'Page_' + hb_ntos( nI ) @ 24, 2 LABEL &cNameLabel VALUE "" WIDTH 0 HEIGHT 0 BACKCOLOR aTabColor[nI] // вывести поля карточки ShowPageCard( nI, nRowTab, aTabColor[ nI ], aDimCard[ nI ],; aFontNames, aFontFields, lEditPrg, nFSizeTab ) END PAGE ENDIF NEXT END TAB То происходит вылет программы. Нужно строить объект DEFINE TAB сразу скрытым. Как это сделать ?
|
|
|
|
| постоянный участник
|
Пост N: 6456
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.09.19 20:18. Заголовок: Всем привет ! Сделал..
Всем привет ! Сделал тестовый пример, показ из массива 20 вкладок по 25 объектов LABEL + 25 объектов GetBox Построение на TAB происходит моментально, без "дерганья". Значит эффект "дерганья" происходит тогда, когда считываются значения полей из базы. Буду дальше пилить тестовый пример.
|
|
|
|
| постоянный участник
|
Пост N: 6458
Зарегистрирован: 12.09.06
|
|
Отправлено: 02.10.19 12:45. Заголовок: Наконец то смог зако..
Наконец то смог закончить проверку "дерганья" карточки в TAB. Мой косяк, делаю перерисовку всех объектов TAB в SizeTest. Сам виноват, не там нужно было делать. И вот это: Form_1.Tab_1.Visible := .F. Form_1.Tab_1.Visible := .T. помогло убрать "дерганье" карточки в TAB ! Спасибо всем подсказчикам !
|
|
|
|
| постоянный участник
|
Пост N: 6506
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.11.19 18:04. Заголовок: Всем привет ! Stand..
Всем привет ! Standard Window: @ <nRow> ,<nCol> FRAME <ControlName> [ ID <nId> ] [ OF | PARENT | DIALOG <ParentWindowName> ] [ CAPTION <cCaption> ] [ WIDTH <nWidth> ] [ HEIGHT <nHeight> ] [ FONT <cFontName> ] [ SIZE <nFontSize> ] [ BOLD ] [ ITALIC ] [ UNDERLINE ] [ STRIKEOUT ] [ BACKCOLOR <anBackColor> ] [ FONTCOLOR <anFontColor> ] [ OPAQUE ] [ TRANSPARENT ] [ INVISIBLE ] [ ON INIT <bInit> ] Использую это объект. Заголовок всегда черным цветом. Можно ли его сделать другим цветом ? Попробовал разные варианты, у меня не получилось.
|
|
|
|
| постоянный участник
|
Пост N: 6507
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.11.19 17:30. Заголовок: Посмотрел тест на ХР..
Посмотрел тест на ХР и Win8.1 - цвет заголовка FRAME тоже черный ! Думал опять какая то бодяга в Win8.1.. Смотрел ppo файл - цвет передается нормально ! _BeginFrame ( cObj,, nY, nX, nWFrm, nHFrm , aObjFrm[nI,2] , , , .F. , .F., .F., .F., .F. , aBackColor , {255, 0, 0} , .F. , .F. , , ) Значит в МиниГуи что-то сломалось.... Поставил проверку в h_frame.prg на строки _HMG_aControlType [k] := "FRAME" _HMG_aControlNames [k] := ControlName _HMG_aControlHandles [k] := ControlHandle ............... _HMG_aControlBkColor [k] := backcolor _HMG_aControlFontColor [k] := fontcolor ? "_HMG_aControlFontColor["+HB_NtoS(K)+"]", HB_ValToExp( _HMG_aControlFontColor[k] ) Цвет передаётся нормально: _HMG_aControlFontColor[27] {255, 0, 0} А дальше не знаю где смотреть.... Посмотрите/попробуйте пожалуйста объект FRAME, это только у меня или везде так ЧЕРНЫМ цветом
|
|
|
Ответов - 230
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
All
[только новые]
|
|