Автор | Сообщение |
|
| |
Пост N: 4905
Зарегистрирован: 17.05.05
|
|
Отправлено: 17.06.15 10:51. Заголовок: Вопросы новичка [MiniGUI]
MAIN окно не получило фокус ввода при запуске , почему ? Пример самодостаточный. #include "minigui.ch" REQUEST HB_CODEPAGE_RU1251, HB_CODEPAGE_RU866, HB_LANG_RUWIN REQUEST HB_LANG_RUWIN REQUEST HB_LANG_RU866 Func Main() DEFINE WINDOW Form_0 AT 321 , 491 WIDTH 558 HEIGHT 175 TITLE "Почему окно не в фокусе при запуске ?" ; MAIN NOSIZE NOSYSMENU TOPMOST ON INIT {|| MdiMain()} DEFINE BUTTONex Button_1 ROW 32 COL 424 WIDTH 110 HEIGHT 28 CAPTION "Вход" ACTION { || ret:=.t., DoMethod("Form_0","Hide") , DoMethod("Form_1","show") } FONTBOLD .t. END BUTTONex DEFINE BUTTONex Button_2 ROW 71 COL 424 CAPTION "Отмена" ACTION { || DoMethod("Form_0","Release") } WIDTH 110 HEIGHT 28 FONTBOLD .t. END BUTTONex END WINDOW Form_0.Activate Form_0.Setfocus return nil ***************************** Func Mdimain() DEFINE WINDOW Form_1 at 0,0 ; WIDTH 200 HEIGHT 300 TITLE "MDI windows" ; MDI ; NOSHOW END WINDOW Form_1.Center Form_1.Activate Form_0.Release return
|
|
|
Ответов - 289
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|
|
| |
Пост N: 4998
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.06.15 17:41. Заголовок: gfilatov2002 Спасиб..
gfilatov2002 Спасибо ! Все работает !
|
|
|
|
| |
Пост N: 5000
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.06.15 21:38. Заголовок: gfilatov2002 Не ухо..
gfilatov2002 Не уходя далеко от вопроса о StatusBar , хотел узнать в том же ключе. В справке пишется что бы изменить высоту этого контрола юзать надо SetProperty ( <ParentWindowName>,<ControlName>, Height , nHeight ) Так и сделал ......не работает в рантайм . Хотел было добраться к остальным параметрам конкретного ITEM , через SetProperty с 5-ю параметрами по аналогии с шириной итема (SetProperty( cFormName, cControlName,"Width",nitem,nWidth )) , не получилось. Добраться к некоторым из них удалось только через _HMG_aControlCaption _HMG_aControlBkColor _HMG_aControlSpacing _HMG_aControlFontColor к шрифту добраться не получилось через _HMG_aControlFontAttributes Не знаю фича это или косяк... Спасибо за работу !!!
|
|
|
|
| moderator
|
Пост N: 767
Зарегистрирован: 11.02.10
|
|
Отправлено: 30.06.15 22:08. Заголовок: Dima пишет: В справ..
Dima пишет: цитата: | В справке пишется что бы изменить высоту этого контрола |
| Мы не можем установить высоту StatusBar, т.к. она устанавливается автоматически в зависимости от выбранного для StatusBar шрифта. Dima пишет: цитата: | Хотел было добраться к остальным параметрам конкретного ITEM |
| Для установки свойства Caption конкретного ITEM надо использовать SetProperty( cFormName, cControlName,"Item",nitem, cCaption ) Для установки новой иконки конкретного ITEM надо использовать SetProperty( cFormName, cControlName,"Icon",nitem,"iconname" ) Для изменения действия по клику мыши можно использовать следующую команду цитата: | #command DEFINE STATUSITEM <n> ; OF <Form> ; ACTION <action> ; => ; _SetStatusItemAction( <n>, <{action}>, GetFormHandle(<"Form">) ) |
| Изменение остальных свойств в рантайм НЕ предусмотрено, они назначаются при определении этого ITEM
|
|
|
|
| |
Пост N: 5001
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.06.15 22:45. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Мы не можем установить высоту StatusBar, т.к. она устанавливается автоматически в зависимости от выбранного для StatusBar шрифта. |
| Точно , мой косяк....виноват. Про остальное понял. Спасибо !
|
|
|
|
| |
Пост N: 5002
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.06.15 22:58. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Изменение остальных свойств в рантайм НЕ предусмотрено, они назначаются при определении этого ITEM |
| У меня получилось , исходник могу выложить. Имею в виду цвет шрифта , фон для итема , align .
|
|
|
|
| moderator
|
Пост N: 768
Зарегистрирован: 11.02.10
|
|
Отправлено: 30.06.15 23:09. Заголовок: Dima пишет: исходни..
Dima пишет: Конечно, выложи Любые доработки в минигуи приветствуются
|
|
|
|
| |
Пост N: 5003
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.07.15 09:28. Заголовок: gfilatov2002 Вот и ..
gfilatov2002 Вот и пример , Америку я конечно не открыл , но возможно кому то будет полезно. Скрытый текст #include "minigui.ch" Function Main() Private n:=1 DEFINE WINDOW Form_1 ; AT 0,0 ; WIDTH 800 ; HEIGHT 600 ; MAIN; TITLE 'MY WINDOW' ; NOSIZE DEFINE BUTTONEX Button_1 ROW 20 COL 70 WIDTH 110 HEIGHT 30 CAPTION "Change With SB" ACTION {|| TestSB()} END BUTTONEX DEFINE STATUSBAR OF Form_1 STATUSITEM "Status-1" FONTCOLOR BLACK STATUSITEM "Status-2" WIDTH 100 FONTCOLOR BLACK STATUSITEM "Status-3" WIDTH 100 FONTCOLOR BLACK STATUSITEM "Status-4" WIDTH 100 FONTCOLOR BLACK STATUSITEM "Status-5" WIDTH 100 FONTCOLOR BLACK STATUSITEM "Status-6" WIDTH 100 FONTCOLOR BLACK END STATUSBAR END WINDOW CENTER WINDOW Form_1 ACTIVATE WINDOW Form_1 Return Nil ************************* FUNC MySetSb( cFormName,cControlName,nWidth,nitem,aProperty ) LOCAL h, i ,j Local ParentHandle:=GetControlHandle ( cControlName ,cFormName ) hb_default(@nWidth,GetProperty( cFormName, cControlName,"Width",nitem)) hb_default(@nitem,1) if ParentHandle==0 return nil endif SetProperty( cFormName, cControlName,"Width",nitem,nWidth ) // ширину получилось сменить только так FOR EACH h In _HMG_aControlContainerHandle i := h:__enumIndex() IF _HMG_aControlType [ i ] == "ITEMMESSAGE" .AND. h == ParentHandle if i==nitem+2 for each j in aProperty j[1]:=j[2] next endif ENDIF NEXT InvalidateRect( _HMG_MainHandle, 0 ) // в принципе не нужна строка так как всегда срабатывает // SetProperty( cFormName, cControlName,"Width",nitem,nWidth ) RETURN Nil ****************** Func TestSb() if n==1 n:=2 MysetSb("Form_1", "StatusBar",200,2,; {{_HMG_aControlCaption,"111"},; {_HMG_aControlBkColor,nRGB2Arr(RGB( 255,255,159))},; {_HMG_aControlSpacing,1},; {_HMG_aControlFontColor,BLACK}}) InkeyGUI(500) MysetSb("Form_1", "StatusBar",,1,; {{_HMG_aControlCaption,"222"},; {_HMG_aControlBkColor,nRGB2Arr(RGB( 155,255,159))},; {_HMG_aControlSpacing,1},; {_HMG_aControlFontColor,RED}}) InkeyGUI(500) MysetSb("Form_1", "StatusBar",,5,; {{_HMG_aControlBkColor,nRGB2Arr(RGB( 155,155,159))},; {_HMG_aControlFontColor,RED}}) InkeyGUI(500) elseif n==2 n:=1 MysetSb("Form_1", "StatusBar",Form_1.Width,1,; {{_HMG_aControlCaption,"Hello WORD ;)"},; {_HMG_aControlBkColor,nRGB2Arr(RGB( 255,255,159))},; {_HMG_aControlSpacing,1},; {_HMG_aControlFontColor,BLACK}}) endif return nil
|
|
|
|
|
| |
Пост N: 34
Зарегистрирован: 18.06.15
|
|
Отправлено: 09.02.17 15:21. Заголовок: SergKis пишет: FUN..
SergKis пишет: цитата: | FUNCTION GetWndMDIChildAll() // Получить массивом все имена доступных дочерних окон LOCAL i, k, aNames:={} k := Len( _HMG_aFormNames ) FOR i := 1 TO k IF _HMG_aFormType=='Y' AAdd(aNames, _HMG_aFormNames ) ENDIF NEXT RETURN aNames |
| SergKis - функция не работает Выдает ошибку - "Error BASE/1070 Argument error: ==" может чего не хватет ..?
|
|
|
|
| |
Пост N: 35
Зарегистрирован: 18.06.15
|
|
Отправлено: 09.02.17 15:22. Заголовок: SergKis пишет: FUN..
SergKis пишет: цитата: | FUNCTION GetWndMDIChildAll() // Получить массивом все имена доступных дочерних окон LOCAL i, k, aNames:={} k := Len( _HMG_aFormNames ) FOR i := 1 TO k IF _HMG_aFormType=='Y' AAdd(aNames, _HMG_aFormNames ) ENDIF NEXT RETURN aNames |
| SergKis - функция не работает Выдает ошибку - "Error BASE/1070 Argument error: ==" может чего не хватет ..?
|
|
|
|
| постоянный участник
|
Пост N: 1359
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.02.17 19:44. Заголовок: Alex_Cher пишет може..
Alex_Cher пишет такой текст FUNCTION GetWndMDIChildAll() // Получить массивом все имена доступных дочерних окон LOCAL i, k, aNames:={} k := Len( _HMG_aFormNames ) FOR i := 1 TO k IF _HMG_aFormType[ i ]=='Y' AAdd(aNames, _HMG_aFormNames[ i ] ) ENDIF NEXT RETURN aNames
|
|
|
|
| |
Пост N: 36
Зарегистрирован: 18.06.15
|
|
Отправлено: 10.02.17 08:31. Заголовок: SergKis пишет: тако..
SergKis пишет: SergKis - посоветуй, я наверное не там капаю, задача - при переходе с дочернего окна на родительское дочернее должно закрываться само. Функция GetWndMDIChildAll() при любом раскладе дает пустой массив.
|
|
|
|
|
| постоянный участник
|
Пост N: 1360
Зарегистрирован: 17.02.12
|
|
Отправлено: 10.02.17 12:34. Заголовок: Alex_Cher пишет посо..
Alex_Cher пишет 1. GetWndMDIChildAll() для MDI MAIN окна 2. В вашем случае, думаю, надо в родительском окне сделать DEFINE WINDOW WndOwner ... ON GOTFOCUS OwnerGotFocus() ... DEFINE WINDOW WndChild_1 ... Func OwnerGotFocus() If IsWindowDefined(WndChild_1) WndChild_1.Release EndIf Return Nil
|
|
|
|
| |
Пост N: 37
Зарегистрирован: 18.06.15
|
|
Отправлено: 11.02.17 08:05. Заголовок: SergKis пишет: В ва..
SergKis пишет: SergKis - еще раз огромное Вам спасибо, все оказывается так просто ...
|
|
|
|
| |
Пост N: 96
Зарегистрирован: 05.11.05
|
|
Отправлено: 24.04.17 09:07. Заголовок: Добрался до Минигуи,..
Добрался до Минигуи, всё очень круто, особенно примеры, большое спасибо за них! Но вот такая ситуация: есть поля для ввода данных, переключение между ними по умолчанию клавишей Tab. Хочу сделать Enter. В консоли все было просто: set key to... и процедура с keyboard(). Предполагаю, что и здесь должно быть как-то не сложно, но пока не нашел ничего очевидного.
|
|
|
|
| moderator
|
Пост N: 1090
Зарегистрирован: 11.02.10
|
|
Отправлено: 24.04.17 09:59. Заголовок: Благодарю за добрые ..
Благодарю за добрые слова в адрес библиотеки! rvu пишет: цитата: | переключение между ними по умолчанию клавишей Tab. Хочу сделать Enter |
| Это вохможно сделать, если добавить следующую команду в начало программы: Кстати, полный список новых команд, добавленных в Минигуи, можно см. в файле Doc\Commands.txt
|
|
|
|
| |
Пост N: 97
Зарегистрирован: 05.11.05
|
|
Отправлено: 24.04.17 11:41. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: В самом деле очень просто. Спасибо!
|
|
|
|
| |
Пост N: 98
Зарегистрирован: 05.11.05
|
|
Отправлено: 24.04.17 18:03. Заголовок: Интересно, а можно у..
Интересно, а можно убрать самую верхнюю строчку? В которой пишется TITLE, где крестик для закрытия программы.
|
|
|
|
| |
Пост N: 352
Зарегистрирован: 03.12.08
|
|
Отправлено: 24.04.17 21:19. Заголовок: rvu Изучайте классы ..
rvu Изучайте классы : свойства и методы . Есть MiniGUI.chm - там всё описано достаточно неплохо для Вашего вопроса : DEFINE WINDOW <WindowName> [ AT <nRow> ,<nCol> ] [ ROW <nRow> ] [ COL <nCol> ] [ WIDTH <nWindth> ] [ HEIGHT <nHeight> ] [ CLIENTAREA <nClientWidth> , <nClientHeight> ] [ VIRTUAL WIDTH <nVirtualWindth> ] [ VIRTUAL HEIGHT <nVirtualHeight> ] [ TITLE <cTitle> ] [ NOMINIMIZE ] - не допускать сворачивание окна (соответственно и значёк этой команды недоступен в шапке ) [ NOMAXIMIZE ] - не допускать разворачивание во весь экран [ NOSIZE ] - не допускать изменение размера [ NOSYSMENU ] - не показывать системное меню окна [ NOCAPTION ] - окно без заголовка ( просто рамка)
|
|
|
|
| |
Пост N: 6386
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.04.17 21:29. Заголовок: rvu Изучать придетс..
rvu Изучать придется много , так что смирись и копай , абы как не получится и Softlog86 прав !
|
|
|
|
| |
Пост N: 353
Зарегистрирован: 03.12.08
|
|
Отправлено: 25.04.17 19:53. Заголовок: Сам до сих пор регул..
Сам до сих пор регулярно "туплю" ..... Век живи - век учись . Чем мне и нравится MiniGui - очень богатый инструментарий !
|
|
|
Ответов - 289
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|