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




Пост 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 
ПрофильЦитата Ответить
Ответов - 160 , стр: 1 2 3 4 5 6 7 8 All [только новые]


постоянный участник




Пост N: 4261
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.06.15 11:35. Заголовок: Dima пишет: Form_0...


Dima пишет:

 цитата:
Form_0.Release


А зачем ты это делаешь ?

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




Пост N: 4906
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.06.15 11:41. Заголовок: Andrey пишет: А зач..


Andrey пишет:

 цитата:
А зачем ты это делаешь ?


Случайно вкралось. Но вопроса это не решило.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4263
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.06.15 11:43. Заголовок: Dima пишет: NOSHOW ..


Dima пишет:

 цитата:
NOSHOW


Не знаю правильно ли это сделано. Если окно не показывать - то фокус на нём и не будет !
Т.е. это окно скрытое, без показа !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4264
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.06.15 12:00. Заголовок: Попробуй ON INIT {&#..


Попробуй ON INIT {|| MdiMain(), Form_0.Setfocus }

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


Пост N: 575
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 17.06.15 12:02. Заголовок: Dima пишет: MAIN ок..


Dima пишет:

 цитата:
MAIN окно не получило фокус ввода при запуске , почему



Потому что в майн окне есть он инит , при выполнении которого выполняется Form_1.Activate.
Activate работает так ( упрощенно ) - дает окну ФОКУС ( в нашем случае Form_1 ) и вызывает состояние ожидания пока окно не закроется

Для решения вопроса нужно просто закоментить две строки
//Form_1.Activate
//Form_0.Release

Теперь зачем в коде Form_0.Release было - для того что бы после закрытия окна Form_1 автоматом закрывалось и майн окно . Теперь, когда две строки закомментили
фокус у майн будет , но после закрытия Form_1 задача не завершится и будет висеть в памяти ( окно то не видно , а в процессах есть ). Для решения этой проблемы в описании Form_1 нужно добавить ON INTERACTIVECLOSE {|| Domethod("Form_0","Release"), .T.}



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


Пост N: 576
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 17.06.15 12:05. Заголовок: Andrey пишет: Попро..


Andrey пишет:

 цитата:
Попробуй ON INIT {|| MdiMain(), Form_0.Setfocus }


не поможет

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




Пост N: 4907
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.06.15 13:12. Заголовок: Haz Да заработало ..


Haz
Да заработало

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




Пост N: 4912
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 18.06.15 21:41. Заголовок: Есть MAIN MENU , хоч..


Есть MAIN MENU , хочу в ниспадающее меню (в RUNTIME) добавлять и удалять пункты меню.
Пробовал _InsertMenuItem но оно добавляет не туда куда надо.
Хотел при открытии окон , "корректировать" эту менюшку ....то есть когда много
окошек открыто можно было тупо зайти в главное меню и выбрать нужное окошко
с переходом фокуса ввода на него. Окна открываются из MDI окна , окно не MAIN ,
окошки открываю MDICHILD.
Пример нужен или я понятно выразился ? ))

PS
MRU меню не предлагать так как создает MRU.INI там где прога живет.
А прога по идее жить будет на серваке , в папке только для чтения.


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




Пост N: 761
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 18.06.15 22:56. Заголовок: Dima пишет: MRU мен..


Dima пишет:

 цитата:
MRU меню не предлагать так как создает MRU.INI там где прога живет


Просто к сведению.
Команда MRU имеет дополнительный класс FILENAME <имя файла> для задания имени и пути для ини-файла, который можно создавать во временной папке, открытой для записи

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




Пост N: 4914
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 18.06.15 23:11. Заголовок: gfilatov2002 Понял ..


gfilatov2002
Понял , попробую. А если без MRU , как добавить корректно пункт в выпадающее меню.

PS
Сразу видно что ответил человек которому и пример не нужен и сразу понял мысль
Респект !

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



Пост N: 648
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 18.06.15 23:12. Заголовок: Dima Можно в status..


Dima
Можно в statusbar иметь icon, по клику делать окно (можно modal) со списком для выбора и перехода

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




Пост N: 4917
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.06.15 10:22. Заголовок: Меню с MRU заявлено ..


Меню с MRU заявлено так
 
.........
END POPUP

POPUP "Окна" NAME OPENWIND
MRU FILENAME System.TempFolder + "\temp.ini"

END POPUP

END POPUP

END MENU


В совершенно другом окне при его создании , добавляю
пунктик в MRU меню (Главного окна) так:
 
Func MyMditool(cforma,ctitle)
_InsertMenuItem ( "OPENWIND" , "Form_1" , ctitle , ;
{||DoMethod(mymenuhash[cforma],"Restore"),DoMethod(mymenuhash[cforma],"Setfocus")})
..........

И получаю следующий бред.
Картинка


Нужные пункты добавились и в MRU меню и в горизонтальное между
пунктом Настройки и Окна (о чем прогу я не просил собственно).
Кроме того добавленный мною Action срабатывает только в этих
не заявленных мною пунктах. Если те же пункты в MRU клацать
в пункте Окна то ни какой реакции.
По картинке (до кучи) хорошо видно что используется SET MENUSTYLE EXTENDED
и на добавленных в RunTime пунктах это свойство теряется.



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



Пост N: 649
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.06.15 10:57. Заголовок: Dima SergKis пишет:..


Dima
SergKis пишет:
 цитата:
Можно в statusbar иметь...


суть та же, а дизайн свой (отличный от mru). список можно делать горизонтально, вертикально, окно по краю или за пределами Mdi, по on change списка переключать mdichild окна сразу на показ ...

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




Пост N: 4918
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.06.15 10:59. Заголовок: SergKis В самплесах..


SergKis
В самплесах есть примерчик ?
Интересует не только добавление в меню но и удаление из него ( при закрытии нужных окон )

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



Пост N: 650
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.06.15 11:18. Заголовок: Dima в качестве спи..


Dima
в качестве списка может быть array TsBrowse, Grid (с картинками), примеры есть
при формировании окна modal надо отключить режим mdi по завершении работы окна включить снова
за базу можно взять и пример basic\msgmenu\*.*. Вот обрывки у меня из mdi надергал по быстрому:
Скрытый текст


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



Пост N: 651
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.06.15 11:44. Заголовок: может еще это: FUNCT..


может еще это:Скрытый текст


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




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


SergKis
Спасибо , буду разбираться !

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




Пост N: 4925
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.06.15 12:47. Заголовок: DEFINE CONTEXT MENU ..


DEFINE CONTEXT MENU OF FORM_1
его можно убить через RELEASE CONTEXT MENU OF Form_1
А как убить DEFINE CONTEXT MENU CONTROL StatusBar OF FORM_1
способ RELEASE CONTEXT MENU OF Form_1 не катит

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




Пост N: 4945
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.06.15 17:31. Заголовок: Есть MDI окно , в AC..


Есть MDI окно , в ACTION статусбара висит функция , которая создает MODAL окно и в котором живет GRID.
Это работает. Стоит вместо GRID сунуть туда TSBROWSE , при вызове функция падает и пишет нет парента ;)
Едем дальше.
Из MDI окна создаем MDICHILD окно. Снова топчем мышей по статус бару и если в функции живет GRID ,
то все работает. Если там живет TSBROWSE , тогда он начинает жить не в окне MODAL как ему и предписано
а в MDICHILD.
Григорий писал что MDI это темная история ;)
Не думал я что до такой степени ;)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4299
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.06.15 18:38. Заголовок: Да не используй MDIC..


Да не используй MDICHILD и всех делов.
Я тоже от них отказался...

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

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