Автор | Сообщение |
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
[только новые]
|
|
Andrey
|
| постоянный участник
|
Пост N: 5114
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.09.16 16:57. Заголовок: Вопрос насчёт курсор..
Вопрос насчёт курсора. Имеется таблица. При нажатии Enter или мышкой открывается карточка. Открытие карточки бывает с задержкой (комп тормознутый, да и пока поля из базы по сетке прочитаешь)... Как прикрутить курсор ожидания ? Пробовал делать ДО создания окна карточки (не работает!): SetWaitCursor( Thiswindow.Handle ) или SetWaitCursor( Application.Handle ) А восстановление курсора делаю в последней строчке ON INIT окна карточки: SetArrowCursor( Thiswindow.Handle ) Разъясните пожалуйста как нужно правильно делать операции с курсором.
|
|
|
Dima
|
| |
Пост N: 6041
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.09.16 17:12. Заголовок: А если в Init окна п..
А если в Init окна первой строкой...
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5115
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.09.16 20:46. Заголовок: Dima пишет: А если ..
Dima пишет: цитата: | А если в Init окна первой строкой... |
| Да без разницы. Нет мышки-курсора ожидания, вообще. Нужно чтобы сразу после нажатия в таблице - появлялся курсор ожидания. Не получается у меня это. Как это сделать ?
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1010
Зарегистрирован: 11.02.10
|
|
Отправлено: 30.09.16 21:38. Заголовок: Andrey пишет: Как э..
Andrey пишет: Посмотри рабочий пример ниже (процедура ONDBLCLICK() ) Скрытый текст
#include "hmg.ch" Function Main SET CENTURY ON DEFINE WINDOW Form_1 ; AT 0,0 ; WIDTH 640 HEIGHT 480 ; TITLE 'MiniGUI Browse Demo' ; MAIN NOMAXIMIZE ; ON INIT OpenTables() ; ON RELEASE CloseTables() DEFINE MAIN MENU POPUP 'File' ITEM 'Set Browse Value' ACTION Form_1.Browse_1.Value := 10 ITEM 'Get Browse Value' ACTION MsgInfo ( Form_1.Browse_1.Value ) ITEM 'Refresh Browse' ACTION Form_1.Browse_1.Refresh() ITEM 'Show Browse' ACTION Form_1.Browse_1.Show() ITEM 'Hide Browse' ACTION Form_1.Browse_1.Hide() ITEM 'Enable Browse' ACTION Form_1.Browse_1.Enabled := .t. ITEM 'Disable Browse' ACTION Form_1.Browse_1.Enabled := .f. SEPARATOR ITEM 'Exit' ACTION Form_1.Release() END POPUP POPUP 'Help' ITEM 'About' ACTION MsgInfo ("MiniGUI Browse Demo") END POPUP END MENU DEFINE STATUSBAR STATUSITEM 'HMG Power Ready!' END STATUSBAR DEFINE TAB Tab_1 ; AT 10,10 ; WIDTH 600 ; HEIGHT 400 - Form_1.Statusbar.Height ; VALUE 1 ; FONT 'Arial' SIZE 10 PAGE '&Browse ' DEFINE BROWSE Browse_1 COL 25 ROW 40 WIDTH 555 HEIGHT 350 - Form_1.Statusbar.Height HEADERS { 'Code' , 'First Name' , 'Last Name', 'Birth Date', 'Married' , 'BioGraphy' } WIDTHS { 150 , 150 , 150 , 150 , 150 , 150 } WORKAREA Test FIELDS { 'Test->Code' , 'Test->First' , 'Test->Last' , 'Test->Birth' , 'Test->Married' , 'Test->Bio' } VALUE 1 ONDBLCLICK ONDBLCLICK() ONHEADCLICK { {|| MsgInfo('Header 1 Clicked !')} , { || MsgInfo('Header 2 Clicked !')} , { || MsgInfo('Header 3 Clicked !')}, { || MsgInfo('Header 4 Clicked !')}, { || MsgInfo('Header 5 Clicked !')}, { || MsgInfo('Header 6 Clicked !')}} END BROWSE END PAGE PAGE '&More' @ 55,90 LABEL Label_1 ; VALUE 'Label !!!' ; WIDTH 100 HEIGHT 27 @ 80,90 CHECKBOX Check_1 ; CAPTION 'Check 1' ; VALUE .T. ; TOOLTIP 'CheckBox' @ 115,85 SLIDER Slider_1 ; RANGE 1,10 ; VALUE 5 ; TOOLTIP 'Slider' @ 45,240 FRAME TabFrame_2 WIDTH 125 HEIGHT 110 OPAQUE @ 50,260 RADIOGROUP Radio_1 ; OPTIONS { 'One' , 'Two' , 'Three', 'Four' } ; VALUE 1 ; WIDTH 100 ; TOOLTIP 'RadioGroup' END PAGE END TAB END WINDOW CENTER WINDOW Form_1 Form_1.Browse_1.SetFocus() ACTIVATE WINDOW Form_1 Return Nil Procedure OpenTables() Use Test Return Procedure CloseTables() Use Return Procedure ONDBLCLICK SetWaitCursor( GetControlHandle( 'Browse_1', 'Form_1' ) ) SetCursorSystem( IDC_WAIT ) InkeyGUI( 1000 ) SetArrowCursor( GetControlHandle( 'Browse_1', 'Form_1' ) ) SetCursorSystem( IDC_ARROW ) MsgInfo('DoubleClick!!') Return
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5117
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.10.16 03:01. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Посмотри рабочий пример ниже (процедура ONDBLCLICK() |
| Чуток понял. Вопрос остался... Скрытый текст
Procedure ONDBLCLICK SetWaitCursor( GetControlHandle( 'Browse_1', 'Form_1' ) ) SetCursorSystem( IDC_WAIT ) MyCardBrowse( .... ) //SetArrowCursor( GetControlHandle( 'Browse_1', 'Form_1' ) ) //SetCursorSystem( IDC_ARROW ) //MsgInfo('DoubleClick!!') Return Function MyCardBrowse(....) DEFINE WINDOW Form_Card ; ........... MODAL NOSYSMENU NOSIZE ; ON INIT { || MyInitCard(...),; Function MyInitCard(...) // доп. прорисовка ......... // вот здесь нужно отключить курсор ожидания ! SetArrowCursor( GetControlHandle( 'Browse_1', 'Form_1' ) ) SetCursorSystem( IDC_ARROW ) // вот так можно ? или нельзя ? RETURN NIL
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5122
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.10.16 18:53. Заголовок: Григорий, всё получи..
Григорий, всё получилось ! Спасибо большое !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5123
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.10.16 22:21. Заголовок: Всем привет. Вопрос ..
Всем привет. Вопрос назрел давно уже. Имею кнопки объекта BUTTONEX типа такого: Есть ли функции, которые позволяют определить, ширину название кнопки и поместилась ли нормально название на саму кнопку ? Если задать шрифт BOLD, то название кнопки иногда не помещается, обрезается по краям... Как можно рассчитать такую ситуацию ?
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1304
Зарегистрирован: 09.10.06
|
|
Отправлено: 08.10.16 13:10. Заголовок: Andrey пишет: Как м..
Andrey пишет: цитата: | Как можно рассчитать такую ситуацию ? |
| Сбросьте где-то на форму и попробуйте, сначала как есть, потом раскомментируйте строку Form1.Button2.Width cCaptionLong := "Click here for update Data" cCaptionShort := "Click here.." @ 90,150 BUTTON Button2 CAPTION "?!" TOOLTIP "?!" // Form1.Button2.Width := GetTextWidth( , cCaptionLong, ) + 20 Form1.Button2.Caption := If( GetTextWidth( , cCaptionLong, ) >= Form1.Button2.Width, cCaptionShort, cCaptionLong ) IF Form1.Button2.Caption == cCaptionLong SetToolTip( Form1.Button2.Handle, cCaptionShort, GetFormToolTipHandle( "Form1" ) ) ELSE SetToolTip( Form1.Button2.Handle, cCaptionLong, GetFormToolTipHandle( "Form1" ) ) ENDIF Поищите в примерах и исходниках применение GetTextWidth. Если мне не изменяет память, вы уже и задавали подобный вопрос. А может и не вы..
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1305
Зарегистрирован: 09.10.06
|
|
Отправлено: 08.10.16 13:26. Заголовок: Можете так попробова..
Можете так попробовать выкрутиться cCaptionLong := "Click here for update Data" @ 90, 150 BUTTON Button2 CAPTION cCaptionLong TOOLTIP cCaptionLong DO WHILE GetTextWidth( , cCaptionLong, ) > ( Form1.Button2.Width - GetTextWidth( , "..", ) ) cCaptionLong := Left( cCaptionLong, Len( cCaptionLong ) - 1 ) ENDDO Form1.Button2.Caption := cCaptionLong + ".."
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5128
Зарегистрирован: 12.09.06
|
|
Отправлено: 10.10.16 18:10. Заголовок: Петр пишет: Если мн..
Петр пишет: цитата: | Если мне не изменяет память, вы уже и задавали подобный вопрос. |
| Да может и задавал. Только до сих пор не решил этот вопрос, из-за этого ещё раз задаю вопрос. Петр пишет: цитата: | Поищите в примерах и исходниках применение GetTextWidth. |
| Этой функцией пользуюсь, только в таком синтаксисе не пробовал: GetTextWidth( , cCaptionLong, ) Просто хотелось бы знать, на какой размер шрифта помещается в название кнопки, т.е. когда название обрезается и потом уже самостоятельно буду уменьшать размер шрифта кнопки.
|
|
|
Softlog86
|
| |
Пост N: 328
Зарегистрирован: 03.12.08
|
|
Отправлено: 11.10.16 19:03. Заголовок: FUNCTION GetTxtWidth..
FUNCTION GetTxtWidth( cText, nFontSize, cFontName ) // get the width of the text LOCAL hFont, nWidth IF Valtype(cText) == 'N' cText := Replicate('A', cText) ENDIF DEFAULT cText := Replicate('A', 2), ; cFontName := _HMG_DefaultFontName, ; nFontSize := _HMG_DefaultFontSize hFont := InitFont(cFontName, nFontSize) nWidth := GetTextWidth(0, cText, hFont) DeleteObject (hFont) RETURN nWidth
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5130
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.10.16 00:30. Заголовок: GetTextWidth( , cCap..
GetTextWidth( , cCaptionLong, ) - не всегда верно даст результат. Например я на форме устанавливаю один размер шрифта, а на кнопках другой. Я это имел ввиду. И саму функция мне не нужно приводить. Я понял как мне делать ! Спасибо за подсказки !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5149
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.10.16 01:44. Заголовок: Всем привет. Есть л..
Всем привет. Есть ли в самой библиотеки МиниГуи окно без ожиданием ? Как в примере MiniGUI\SAMPLES\BASIC\WAIT_WINDOW\demo2.prg Делаю тестовые примеры, а тащить в свой проект отдельную функцию НЕ ХОЧУ ! Иначе теряется простота примера.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5170
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.11.16 13:48. Заголовок: Всем трудоголикам пр..
Всем трудоголикам привет ! Как определить - запущено ли MAIN окно ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 1295
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.11.16 14:03. Заголовок: Andrey пишет Как опр..
Andrey пишет цитата: | Как определить - запущено ли MAIN окно ? |
| Самое простое If empty(_HMG_MainHandle) MsgBox("Not found main window", "INFO") EndIf
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5206
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.12.16 15:49. Заголовок: Как цвет из BLUE, RE..
Как цвет из BLUE, RED и т.д. перевести в число ? Есть функция в МиниГуи, или самому ваять нужно (хотя делал уже такую) ?
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1363
Зарегистрирован: 09.10.06
|
|
Отправлено: 04.12.16 17:59. Заголовок: Andrey пишет: Есть ..
Andrey пишет: Есть, RGB() называется. Также макрос в bostaurus.ch #define ArrayRGB_TO_COLORREF(aRGB) RGB(aRGB[1],aRGB[2],aRGB[3])
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5210
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.12.16 18:07. Заголовок: Хотел укоротить конс..
Хотел укоротить конструкцию: aClr := BLUE oText:Font:Color = RGB(aClr[1],aClr[2],aClr[3]) Сделал как раньше у себя: oText:Font:Color = MyRGB(BLUE)
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 5307
Зарегистрирован: 12.09.06
|
|
Отправлено: 31.01.17 17:12. Заголовок: Проект не трогал, по..
Проект не трогал, под новой версией МиниГуи стала появляться ошибка: Error BASE/5056 MiniGUI Error: _SETFONTHANDLE Called from _SETFONTHANDLE(0) Called from _DEFINEOWNERBUTTON(497) Called from METRO3BUTTON(69) Один раз меню работает, второй раз вылетает. Что это за ошибка ? функция METRO3BUTTON(69) DEFINE BUTTONEX &cObject PARENT &cForm ..... FONTNAME cFont FONTSIZE nFontSize ...... END BUTTONEX // вот эта 69 строка
|
|
|
Петр
|
| постоянный участник
|
Пост N: 1407
Зарегистрирован: 09.10.06
|
|
Отправлено: 31.01.17 21:19. Заголовок: Andrey пишет: Что э..
Andrey пишет: Функция _SetFontHandle() в качестве второго параметра требует валидный хэндл шрифта. Почему этот хэндл не валидный, по приведенному щедрому отрывку кода установить не имеется возможности. Для инкапсуляции ошибки в файле h_button.prg строку 496 IF FontHandle != 0 замените на IF ( GetObjectType( FontHandle ) == 6 ) и перекомпилируйте библиотеку.
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|