Автор | Сообщение |
|
| |
Пост 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: 99
Зарегистрирован: 05.11.05
|
|
Отправлено: 27.04.17 17:23. Заголовок: Dima пишет: смирись..
Dima пишет: Копаю, копаю... Никак не найду, как меняются цвета данных в активном поле в DEFINE TEXTBOX Там белый на синем по умолчанию видимо?
|
|
|
|
| |
Пост N: 6390
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.04.17 17:28. Заголовок: есть справка вообще ..
есть справка вообще то и примеры вот навскидку C:\MiniGUI\SAMPLES\Advanced\ComboSearchGrid\combosearchgrid.prg
|
|
|
|
| |
Пост N: 100
Зарегистрирован: 05.11.05
|
|
Отправлено: 28.04.17 10:15. Заголовок: Dima пишет: есть сп..
Dima пишет: цитата: | есть справка вообще то и примеры |
| В справке ничего не нашел. А про примеры, мы точно об одном и том же? Я не про BACKCOLOR и FONTCOLOR в TEXTBOX.
|
|
|
|
| |
Пост N: 6391
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.04.17 11:23. Заголовок: rvu Про это речь ? ..
rvu Про это речь ? DEFINE TEXTBOX &( textboxname ) ROW nR Col nC WIDTH nW HEIGHT 24 ONGOTFOCUS SetProperty( ThisWindow.Name, textboxname, "FontColor", RED ) ONLOSTFOCUS SetProperty( ThisWindow.Name, textboxname, "FontColor", GRAY ) END TEXTBOX
|
|
|
|
| |
Пост N: 1099
Зарегистрирован: 20.02.11
|
|
Отправлено: 28.04.17 11:29. Заголовок: Dima пишет: ONGOTFO..
Dima пишет: цитата: | ONGOTFOCUS SetProperty( ThisWindow.Name, textboxname, "FontColor", RED ) ONLOSTFOCUS SetProperty( ThisWindow.Name, textboxname, "FontColor", GRAY ) |
| Все верно, но можно проще если вместо TEXTBOX использовать GETBOX как более "продвинутый" контрол ввода. Там эти цвета встроены по умолчанию [ BACKCOLOR <anBackColor> ] // * or <anBackColor, anReadOnlyBackColor, anAciveBackColor>
|
|
|
|
| постоянный участник
|
Пост N: 1424
Зарегистрирован: 17.02.12
|
|
Отправлено: 28.04.17 12:05. Заголовок: Haz пишет // * or &..
Haz пишет цитата: | [ BACKCOLOR <anBackColor> ] // * or <anBackColor, anReadOnlyBackColor, anAciveBackColor> |
| или новыми командами SET GETBOX FOCUS BACKCOLOR [TO <backcolor>] SET GETBOX FOCUS FONTCOLOR TO <fontcolor> тогда anAciveBackColor не используем
|
|
|
|
| |
Пост N: 101
Зарегистрирован: 05.11.05
|
|
Отправлено: 28.04.17 12:12. Заголовок: Dima пишет: Про это..
Dima пишет: Понятно. Мы о разном. Это работает, если на поле мышкой кликать. А если по полям бегать клавишами Tab или Enter, то активное поле имеет цвет белый на синем. И как эти цвета менять пока не нашел.
|
|
|
|
| |
Пост N: 102
Зарегистрирован: 05.11.05
|
|
Отправлено: 28.04.17 12:30. Заголовок: Haz пишет: GETBOX ..
Haz пишет: Какой там курсор страшный. А можно его размерами управлять? И можно ли его вообще убрать? Наверное, можно. Пошел искать...
|
|
|
|
| |
Пост N: 104
Зарегистрирован: 05.11.05
|
|
Отправлено: 05.05.17 10:19. Заголовок: Посмотрел образцы ку..
Посмотрел образцы курсоров (мышиных). А можно его вообще убрать простым способом? Чтобы при вождении мышью вообще ничего не было видно (в смысле, курсор).
|
|
|
|
| постоянный участник
|
Пост N: 1452
Зарегистрирован: 09.10.06
|
|
Отправлено: 05.05.17 11:24. Заголовок: rvu пишет: А можно ..
rvu пишет: цитата: | А можно его вообще убрать простым способом? |
| Добавить в событие ON MOUSEHOVER | ON MOUSEMOVE (для control/window соответственно) вызов FileCursor('')
|
|
|
|
| |
Пост N: 105
Зарегистрирован: 05.11.05
|
|
Отправлено: 10.05.17 18:19. Заголовок: Петр пишет: ON MOUS..
Петр пишет: Открываю окно, развернутое на весь экран. Если курсор на программе стоит, то это срабатывает. А если он после открытия откуда-то пришел, то вполне себе бегает.
|
|
|
|
|
| постоянный участник
|
Пост N: 1457
Зарегистрирован: 09.10.06
|
|
Отправлено: 10.05.17 19:32. Заголовок: rvu пишет: Если ку..
rvu пишет: цитата: | Если курсор на программе стоит, то это срабатывает. А если он после открытия откуда-то пришел, то вполне себе бегает. |
| И что? Читайте документацию WinAPI (в данном случае SetCursor): FileCursor('') - это эквивалент SetCursor( NULL ). И дальше уже сами определяйтесь, возможно придется обрабатывать события ON GOTFOCUS / ON LOSTFOCUS, откуда я знаю, что и откуда к вам приходит.
|
|
|
|
| постоянный участник
|
Пост N: 1458
Зарегистрирован: 09.10.06
|
|
Отправлено: 10.05.17 19:40. Заголовок: rvu пишет: А можно..
rvu пишет: цитата: | А можно его вообще убрать простым способом? Чтобы при вождении мышью вообще ничего не было видно (в смысле, курсор). |
| Кстати такое поведение не является типичным для програм Windows, сответственно никакой волшебной функции по гашению курсора в MiniGUI нет. И, надеюсь, не будет.
|
|
|
|
| |
Пост N: 106
Зарегистрирован: 05.11.05
|
|
Отправлено: 12.05.17 15:27. Заголовок: Петр пишет: возмож..
Петр пишет: цитата: | возможно придется обрабатывать события ON GOTFOCUS / ON LOSTFOCUS |
| Наверное. Но вообще, спасибо, за подробное объяснение!
|
|
|
|
| постоянный участник
|
Пост N: 1439
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.05.17 17:40. Заголовок: rvu пишет А можно ег..
rvu пишет цитата: | А можно его вообще убрать простым способом? Чтобы при вождении мышью вообще ничего не было видно (в смысле, курсор). |
| Возможно речь о GetBox-ах в состоянии ReadOnly и перевод в рабочее состояние на время ввода ?
|
|
|
|
| |
Пост N: 107
Зарегистрирован: 05.11.05
|
|
Отправлено: 16.05.17 14:06. Заголовок: Нет, тут идея другая..
Нет, тут идея другая была. Захотели подключить второй монитор к компьютеру, как информационное табло для клиентов компании. Типа, мы что-нибудь наберем и пусть оно на втором мониторе отображается, пока не поменяем. Идея любопытная, но я имею опыт работы с несколькими мониторами, постоянно курсор на другой монитор убегает. Ну и что он будет бегать перед клиентами, надо бы его как минимум из видимости убрать.
|
|
|
|
| постоянный участник
|
Пост N: 1444
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.05.17 16:22. Заголовок: rvu пишет Ну и что о..
rvu пишет цитата: | Ну и что он будет бегать перед клиентами, надо бы его как минимум из видимости убрать. |
| Так может разделить окна: 1 - для основного монитора с курсором 2 - для др. мониторов с Getbox ReadOnly Ввели в 1-м данные, отобразили во 2-м. Если это возможно разделить, не имел счастья раб. с неск. мониторами
|
|
|
|
| |
Пост N: 108
Зарегистрирован: 05.11.05
|
|
Отправлено: 16.05.17 16:43. Заголовок: Курсор-то по всему р..
Курсор-то по всему рабочему столу ходит. Я не то что окна, я программы разделил, одна для ввода, другая для показа.
|
|
|
|
| постоянный участник
|
Пост N: 1468
Зарегистрирован: 09.10.06
|
|
Отправлено: 16.05.17 22:16. Заголовок: rvu пишет: Курсор-т..
rvu пишет: цитата: | Курсор-то по всему рабочему столу ходит. |
| Ну тогда вам сюда Дополните c_cursor.c цитата: | #include "hbapiitm.h" extern HB_EXPORT BOOL Array2Rect( PHB_ITEM aRect, RECT * rc ); extern HB_EXPORT PHB_ITEM Rect2Array( RECT * rc ); HB_FUNC( CLIPCURSOR ) { RECT rc; if( Array2Rect( hb_param( 1, HB_IT_ANY ), &rc ) ) hb_retl( ClipCursor( & rc ) ? HB_TRUE : HB_FALSE ); else hb_retl( ClipCursor( NULL ) ? HB_TRUE : HB_FALSE ); } HB_FUNC( GETCLIPCURSOR ) { RECT rc; hb_retl( GetClipCursor( &rc ) ? HB_TRUE : HB_FALSE ); hb_itemParamStoreRelease( 1, Rect2Array( &rc ) ); } |
| и перекомпилируйте библиотеку. Пример использования цитата: | #include "minigui.ch" Function Main local oldRect := {0,0,0,0} local newRect := {0,0,0,0} DEFINE WINDOW Win_1 ; CLIENTAREA 400, 400 ; TITLE 'Hello World!' ; WINDOWTYPE MAIN ; ON INIT ; ( ; GetClipCursor( @oldRect ), ; GetWindowRect( ThisWindow.Handle, @newRect), ; ClipCursor( @newRect ) ; ) ; ON RELEASE ClipCursor( @oldRect ) END WINDOW Win_1.Center Win_1.Activate Return Nil |
|
|
|
|
|
| постоянный участник
|
Пост N: 1469
Зарегистрирован: 09.10.06
|
|
Отправлено: 16.05.17 22:32. Заголовок: rvu пишет: Захотели..
rvu пишет: цитата: | Захотели подключить второй монитор к компьютеру, как информационное табло для клиентов компании. |
| И еще к вам один вопрос - пользуетесь ли вы встроенной в MiniGUI поддержкой работы с несколькими мониторами, насколько она удобна или неудобна?
|
|
|
Ответов - 289
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|