Форум » GUI » Вопросы новичка [MiniGUI] » Ответить

Вопросы новичка [MiniGUI]

Dima: MAIN окно не получило фокус ввода при запуске , почему ? Пример самодостаточный. [pre2] #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 [/pre2]

Ответов - 137, стр: 1 2 3 4 5 6 7 All

rvu: Петр пишет: пользуетесь ли вы встроенной в MiniGUI поддержкой работы с несколькими мониторами А я ничего про нее не знаю. Где посмотреть можно описание или примеры? Или какие команды смотреть?

Петр: MiniGui\SAMPLES\BASIC\Multi_Monitor Процедуру ShowTxt можете изменить так [pre2]PROCEDURE ShowTxt( cText ) DEFINE WINDOW Form_1 ; CLIENTAREA 800, 600 ; TITLE 'Show output' ; MODAL ; ON INIT WindowToMonitor( ThisWindow.Handle, EnumDisplayMonitors()[1/*2*/][1] ) [/pre2] Что ж вы ChangeLog.txt не читаете

rvu: А я в пикселях задавал расположение. Если монитор 2-й, а у первого ширина 1280 пикселей, то начинаю окно с 1281.

rvu: Петр пишет: Дополните c_cursor.c Спасибо! Не знаю, то ли это, что в итоге потребуется, но очень здорово!

rvu: Опять у меня вопрос, наверняка простой, но никак не найду способ. Высвечиваю переменную на экране: @ 100,10 LABEL LABEL_D1 VALUE var1 потом она меняется, как ее на экране перерисовать? Окно закрывать и делать снова? Наверняка есть более простой способ.

Dima: какой то рефреш надо сделать ему ) типа Setproperty("SPR_REC","Message4","value",alltrim((o1:cAlias)->naim) )

SergKis: rvu пишет потом она меняется, как ее на экране перерисовать? По мне, лучше сразу разделять, генерация формы (контролы на оке) и заполнение их значениями, т.е. @ 100,10 LABEL LABEL_D1 VALUE "" WIDTH nWidth @ 100+This.LABEL_D1.Height+2 LABEL LABEL_D2 VALUE "" WIDTH nWidth ... FUNC Refr( cForm ) Default cForm := ThisWindow.Name _SetValue( "LABEL_D1", cForm, cValToChar((o1->cAlias)->NAIM) ) или _SetValue( "LABEL_D2", cForm, cValToChar((o1->cAlias)->EDIZM) ) или SetProperty( cForm, "LABEL_D1", "Value", cValToChar((o1->cAlias)->NAIM) ) SetProperty( cForm, "LABEL_D2", "Value", cValToChar((o1->cAlias)->EDIZM) ) и так по всем контролам формы, тогда в любом нужном месте вызываете Refr(cForm) RETURN Nil

Alex_Cher: Мужики, а так разве не проще - FORM_MAIN.LABEL_D1.VALUE := var2 где FORM_MAIN - имя текущего окна, var2 - новая переменная.

SergKis: Alex_Cher пишет а так разве не проще Вы привязались к конкретному названию окна, если окон много и все они содержат (в той или иной степени) одни и те же контролы, то проще This.LABEL_D1.Value := xValue, но иногда препроцессор, что то не понимает и приходится писать функциями, поэтому чтобы не заморачиваться, сразу пишешь функции. А при повторяющихся действиях собираешь в общую ф-ию и передаешь в нее имя окна. Все по ситуации.

Dima: Есть таймер DEFINE TIMER Timer_1 OF Form1 INTERVAL 100 ACTION TimerProc() Как на лету сменить INTERVAL со 100 на 300 скажем ?

Andrey: Попробуй через [pre2] SetProperty("Form1", "Timer_1", "Interval", 300 )[/pre2]

Dima: Andrey Не работает , уже чекал так Можно конечно убить таймер и снова создать но с новым Interval

Петр: Dima пишет: Есть таймер DEFINE TIMER Timer_1 OF Form1 INTERVAL 100 ACTION TimerProc() Как на лету сменить INTERVAL со 100 на 300 скажем ? Form1.Timer_1.Value := 300 MiniGUI "убьет" таймер и создат новый сама

Dima: Петр пишет: Form1.Timer_1.Value := 300 Упало на _SETVALUE PS MiniGUI Extended Edition 16.10

gfilatov2002: Dima пишет: Упало на _SETVALUE Это не так Проверил на простом примере ниже [pre2]#include "minigui.ch" Function Main DEFINE WINDOW Form_1 ; AT 0,0 ; WIDTH 400 ; HEIGHT 400 ; TITLE 'Timer Test' ; MAIN @ 10,10 LABEL Label_1 DEFINE TIMER Timer_1 ; INTERVAL 1000 ; ACTION Form_1.Label_1.Value := Time() DEFINE TIMER Timer_2 ; INTERVAL 2500 ; ACTION PlayBeep() END WINDOW Form_1.Timer_1.Value := 300 Form_1.Center Form_1.Activate Return Nil [/pre2]

Andrey: Dima пишет: PS MiniGUI Extended Edition 16.10 Наверное у него старая версия...

Dima: Andrey пишет: Наверное у него старая версия... Так и есть.



полная версия страницы