On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
администратор




Пост 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



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 201 , стр: 1 2 3 4 5 6 7 8 9 10 11 All [только новые]





Пост N: 654
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.06.15 21:11. Заголовок: Dima пишет:Не думал ..


Dima пишет:
 цитата:
Не думал я что до такой степени


попробовал простой пример Скрытый текст

ерунда получается со statusbar, да с окном main после modal, похоже разбираться надо по новой c mdi в последних версиях.
Работаем с mdi из версии 4.07 MiniGui и правили кое что под себя - все проги только с mdi интерфейсом и работают на ура.
Пример advanced\TsBrowse (mdi часть) вроде работает, но там только окна mdichild.


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4946
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.06.15 21:30. Заголовок: SergKis пишет: ерун..


SergKis пишет:

 цитата:
ерунда получается со statusbar


да это так , еще и с тулбар тоже.
буду копать дальше пока не надоест ;)

Andrey пишет:

 цитата:
Да не используй MDICHILD и всех делов.


Так и сделаю пока все копья не сломаю ))
Просто зацепили меня MDICHILD так как живут внутри MDI , и это все что было мне надо.

Примерчик твой посмотрел. Код как бы в порядке.
Скрин MDI окна после закрытия MDICHILD окна (все съехало и уехало хз куда)


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 655
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.06.15 22:20. Заголовок: Dima я про это гово..


Dima
я про это говорил, думаю есть еще переменные _HMG_..., которые цепляются modalom и не восстанавливаются (это первая мысль, но может все и не так)
вот к меню C фун. (покрути), делал мой товарищ, он что то использовал, я обошелся. может помогут в дополнение к c_menu.c:
Скрытый текст

описание (очень краткое) Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4948
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.06.15 23:14. Заголовок: SergKis Спасибо..


SergKis Спасибо

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4950
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.06.15 08:52. Заголовок: SergKis Не собрать ..


SergKis
Не собрать однако

obj/mmenu.o:mmenu.c:(.text+0x77): undefined reference to `hb_parc_t'
obj/mmenu.o:mmenu.c:(.text+0xf7): undefined reference to `hb_parc_t'
C:/MinGW12/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/bin/ld.exe: obj/mmenu.o: bad reloc address 0x20 in s
ection `.eh_frame'
C:/MinGW12/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/bin/ld.exe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
hbmk2[sklad]: Error: Running linker. 1

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4951
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.06.15 10:52. Заголовок: SergKis пишет: Sav..


SergKis пишет:

 цитата:
Save_Rest_HMG(aHmg)


А вот эта функция все исцелила чудесным образом и TSBROWSE не падает и ложится куда надо.
Это костыль получается ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 656
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.06.15 11:37. Заголовок: Dima пишет:Не собрат..


Dima пишет:
 цитата:
Не собрать однако


извини, забываю, что у нас внутри все тексты в unicode, а это все конвертации в один байт.
хотел как лучше, но ...


 цитата:
Это костыль получается ?


типа да, родной mdi (minigui) работает с окнами mdichild, с модал запрещено, а без них как то не очень.
Если у тебя есть движение вперед, то обрати внимание на editbox, если окон > 2 фокус после ввода в нем улетал на др.окно (на mdichild мы используем только getbox вместо editbox), побороть это не смогли. А с mdichild окнами получилось так, в работе остаются где то 1-2 окна документа, а остальные разрушаем при потере фокуса (справочники). Еще есть установка SET PROGRAMMATIC OFF, при ней имена mdichild окон как ты задал, при ON имена динамические (добавляется счетчик окон к имени, заданному тобой), на что еще влияет эта установка не смотрел (в нашей версии этого нет).


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4952
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.06.15 13:04. Заголовок: SergKis Спасибо , м..


SergKis
Спасибо , многое прояснил.
Про SET PROGRAMMATIC не знал и пока сам ловлю счетчик окон.


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4953
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.06.15 13:30. Заголовок: SergKis Не могу соб..


SergKis
Не могу собрать Achoice (примерчик)
Не хватает функций
 
undefined reference to `HB_FUN_APPGET'
undefined reference to `HB_FUN_GETCLIENTWIDTH'
undefined reference to `HB_FUN_GETCLIENTHEIGHT'
undefined reference to `HB_FUN_GETTOOLBARHEIGHT'
undefined reference to `HB_FUN_GETTXTWIDTH'
undefined reference to `HB_FUN_FORMINDEX'
undefined reference to `HB_FUN_GETHEGHTBROWSE'
undefined reference to `HB_FUN_CONTROLHANDLE'
undefined reference to `HB_FUN_GETSTATUSBARHEIGHT'


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 659
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.06.15 14:49. Заголовок: Dima пишет:Не хватае..


Dima пишет:
 цитата:
Не хватает функций


тут: Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 660
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.06.15 15:13. Заголовок: Dima вот так правил..


Dima
вот так правильней будет (в пред. тексте была еще функция, я ее заменил, но не удачно):

FUNCTION GetStatusBarHeight( cForm ) // высота StatusBar
DEFAULT cForm := _HMG_aFormNames [ _HMG_MainIndex ] // т.к. StatusBar на mdimain
RETURN GetWindowHeight(GetControlHandle('STATUSBAR', cForm))


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4954
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.06.15 15:49. Заголовок: SergKis пишет: вот ..


SergKis пишет:

 цитата:
вот так правильней будет


Понял. Копаю пока дальше. Сенкс !

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4958
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.06.15 21:27. Заголовок: SergKis Функция Sav..


SergKis
Функция Save_Rest_HMG то что надо
Но вылез нежданчик ))
Если в MDI или MDICHILD окне создать окно MODAL свое или вызвать что то типа функций MSG....() то
это модальное окно живет в других программах . Такого эффекта нет , если окно простое не MDI..
Что то можно подкрутить в этом плане (чую сырец надо переделывать) ?

ЗЫ
Чисто интереса ради юзанул FiveWin c MDI , там нет такой бяки , все норм с MODAL + MDI...

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 661
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.06.15 22:04. Заголовок: Dima попробуй HB_FU..


Dima
попробуй HB_FUNC( SETPARENT ) (в С текстах с меню выше)
поставь своему модал поставить handle родителя mdichild

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4959
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.06.15 22:20. Заголовок: SergKis пишет: пост..


SergKis пишет:

 цитата:
поставь своему модал поставить handle родителя mdichild


Понял , пока не пробовал , а что делать с системными функциями Минигуи типа MSG...()
там же тоже модальное окно и эффект тот же ?
Объясню: есть модальное окно и в нем вызываю ну скажем MSGINFO() , ну все красиво ,
все вызвалось. Затем его не закрывая тихонько так переключаюсь совсем на другую
программу и с удивлением обнаруживаю в ней на переднем плане MSGINFO() из моей
задачи.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 662
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.06.15 22:52. Заголовок: Dima пишет:MSGINFO()..


Dima пишет:
 цитата:
MSGINFO() из моей задачи.


по цепочке там заканчивается:
MessageBoxIndirect( <ТУТ>, cMessage, cTitle, nStyle, nIcon )
первым параметром дай handle parent нужного окна

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4960
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.06.15 22:56. Заголовок: SergKis Понял , то ..


SergKis
Понял , то есть сырец править , да ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 663
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.06.15 23:07. Заголовок: Dima Напиши свой ан..


Dima
Напиши свой аналог MsgBox(), Msg..., используя тексты из h_msgbox.prg как "рыбу"

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4961
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.06.15 08:09. Заголовок: SergKis пишет: попр..


SergKis пишет:

 цитата:
попробуй HB_FUNC( SETPARENT )


Попробовал.
Перед тем как создать MODAL окно , считал handle родителя
вот так GetActiveMdiHandle() (в переменую HTEST к примеру)
Далее создаю MODAL окно и в конце
ACTIVATE WINDOW Mchoice
SETPARENT(ThisWindow.Handle,HTEST)
и ни чего , MODAL живет без привязки.
Что я сделал не так ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 664
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.06.15 11:25. Заголовок: Dima пишет:ACTIVATE ..


Dima пишет:
 цитата:
ACTIVATE WINDOW Mchoice
SETPARENT(ThisWindow.Handle,HTEST)


после ACTIVATE команды сработают только после закрытия окна (ACTIVATE цикл ожидания сообщений)
между END WINDOW и ACTIVATE This... команды не пашут.
SETPARENT(ThisWindow.Handle,HTEST) надо в ON INIT или LOSTFOCUS, попробовал у себя ..., фигню получил, стал смотреть, что сам делаю - да ничего не делаю
Dima пишет:
 цитата:
Если в MDI или MDICHILD окне создать окно MODAL свое или вызвать что то типа функций MSG....() то
это модальное окно живет в других программах


у меня такого нет, окна привязаны к своему приложению и на чужие не лезут, что modal, что msg. То, что уменя hb2.0, MiniGui 4.07 и msvc влиять не должно. Не знаю что сказать ...



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 201 , стр: 1 2 3 4 5 6 7 8 9 10 11 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 674
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет