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


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




Пост N:6586
Зарегистрирован:12.09.06
ссылка на сообщение  Отправлено:11.02.20 22:14.Заголовок:SergKis пишет: Буде..


SergKis пишет:

 цитата:
Будет работать посимвольное выделение


Выделение работает, но нельзя вызвать стандартное меню "копировать", приходиться клавишами Ctrl+C пользоваться.
А можно сделать показ стандартного меню ?

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



Пост N:3054
Зарегистрирован:17.02.12
ссылка на сообщение  Отправлено:11.02.20 23:37.Заголовок:Andrey пишет А можно..


Andrey пишет
 цитата:
А можно сделать показ стандартного меню ?


Запусти сервер, запусти\собери клиента, добавив READONLY, как выше, нажми кл. 1
Нажми правую кн. мыши - будет меню стандартное, а выделишь текст (клавишами или мышкой)
будет доступна строка меню Copy
Все есть, ничего не надо делать

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





Пост N:220
Зарегистрирован:05.11.05
ссылка на сообщение  Отправлено:12.02.20 17:23.Заголовок:LISTBOX Хочу получа..


LISTBOX

Хочу получать результат от одинарного клика, двойного клика и Enterа.
ON CHANGE и ON DBLCLICK все это получаю, но еще и от движения стрелок.
Убираю ON CHANGE, стрелки нормально ходят, но и одинарный клик пропадает.

А если ли способ?..

В консольных программах я с подобным боролся с помощью set key и lastkey(). Здесь это, похоже, не работает, по-крайней мере в известном мне виде.

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





Пост N:221
Зарегистрирован:05.11.05
ссылка на сообщение  Отправлено:13.02.20 10:48.Заголовок:Неужели никак нельзя..


Неужели никак нельзя установить на какую клавишу клавиатуры или мыши среагировал listbox?
Или вообще нужно как-то по-другому все делать?
Кстати, странно, почему есть реакция на on dblclick, а просто на on click нет. Но это, наверное, нужно спрашивать в разделе "Чего мне не хватает в МиниГуи".

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



Пост N:3060
Зарегистрирован:17.02.12
ссылка на сообщение  Отправлено:13.02.20 12:33.Заголовок:rvu пишет Неужели ни..


rvu пишет
 цитата:
Неужели никак нельзя установить на какую клавишу клавиатуры или мыши среагировал listbox?


Думаю, что никто в таком ключе с листбох не работает. Поищите в примерах LISTBOX и анализируйте.
Есть что то в Advance\ACHOICE\demo.prg, но что надо смотреть.
Есть механизм
SET EVENTS FUNCTION TO MYEVENTS
свой обработчик сообщений, посмотрите в эту сторону.

Лично у меня ListBox не используется от слова совсем.

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





Пост N:222
Зарегистрирован:05.11.05
ссылка на сообщение  Отправлено:13.02.20 13:34.Заголовок:Понятно. Нужно как-т..


Понятно. Нужно как-то по-другому все делать. Буду смотреть. Но немного жалко, такой удобный инструмент...

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



Пост N:3061
Зарегистрирован:17.02.12
ссылка на сообщение  Отправлено:13.02.20 13:53.Заголовок:rvu Но немного жалко..


rvu
 цитата:
Но немного жалко, такой удобный инструмент...


Есть еще удобные инструменты - GRID, BROWSE, TBrowse для работы с таблицами

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




Пост N:6588
Зарегистрирован:12.09.06
ссылка на сообщение  Отправлено:13.02.20 15:25.Заголовок:SergKis пишет: TBro..


SergKis пишет:

 цитата:
TBrowse для работы с таблицами


Это лучшее решение !
Я тоже раньше боялся его использовать.
Но потом изучил и очень жалею, что сразу им не воспользовался.

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





Пост N:223
Зарегистрирован:05.11.05
ссылка на сообщение  Отправлено:14.02.20 06:58.Заголовок:SergKis пишет: GRID..


SergKis пишет:

 цитата:
GRID, BROWSE, TBrowse



А их можно для моих хотелок приспособить? Или нужно копать в сторону

SergKis пишет:

 цитата:
свой обработчик сообщений

?


SergKis пишет:

 цитата:
Есть что то в Advance\ACHOICE\demo.prg, но что надо смотреть.



Я смотрел его и даже стал на его основе что-то делать, но потом решил, что в listbox уже все есть. Оказалось, что не все.

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




Пост N:1657
Зарегистрирован:11.02.10
ссылка на сообщение  Отправлено:14.02.20 10:51.Заголовок:rvu пишет: можно дл..


rvu пишет:

 цитата:
можно для моих хотелок приспособить?


Да, вот готовое определение ListBox с помощью TBrowse:

 цитата:
Function TestLbx() 

Local oBrw, ;
aItems := { Padr("One", 12), Padr("Two", 12), Padr("Three", 12) }

DEFINE WINDOW Form_15 At 140,160 ;
WIDTH 300 HEIGHT 250 ;
TITLE "TSBrowse Like a ListBox" ;
ICON "Demo.ico";
CHILD

@ 20, 50 TBROWSE oBrw ITEMS aItems WIDTH 100 HEIGHT 100 COLOR CLR_BLACK, CLR_HGRAY EDITABLE

oBrw:aEditCellAdjust[3] := -2 // correction of cell width
oBrw:lNoVScroll := .T.

oBrw:bKeyDown := { |nKey| If( nKey == VK_DELETE, oBrw:Del(), If( nKey == VK_INSERT, oBrw:Insert( Padr("New", 12) ), Nil )) }

END WINDOW
ACTIVATE WINDOW Form_15

Return Nil


Обработчик для всех клавиш находится в блоке :bKeyDown

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



Пост N:3062
Зарегистрирован:17.02.12
ссылка на сообщение  Отправлено:14.02.20 11:16.Заголовок:rvu пишет А их можно..


rvu пишет
 цитата:
А их можно для моих хотелок приспособить?


Не очень понятны они, в плане что потом хотите делать, с тем же левый одинарный клик,
в таблицах, как правило это переставить фокус на строку\колонку (от режима CELL зависит).
Но поймать переключение и сделать что то вполне можно, пример Advanced\Tsb_Basic_2\demo5.prg
Смотрите примеры Advanced\Tsb_* + Advanced\OOP_* все основное показано

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





Пост N:225
Зарегистрирован:05.11.05
ссылка на сообщение  Отправлено:14.02.20 11:43.Заголовок:SergKis пишет: Не о..


SergKis пишет:

 цитата:
Не очень понятны они, в плане что потом хотите делать



Есть список документов, есть программа, которая с ним работает. Там просмотр документа делается одним кликом или Enterом. Программа устарела, я сейчас делаю аналогичную. Стараюсь максимально сохранить интерфейс, опыт с только двойным кликом показал, что пользователи путаются, тупят, привычка она такая.

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



Пост N:3063
Зарегистрирован:17.02.12
ссылка на сообщение  Отправлено:14.02.20 12:09.Заголовок:rvu пишет Там просмо..


rvu пишет
 цитата:
Там просмотр документа делается одним кликом или Enterом


Примерно так будет выглядеть замена стандартного поведения одинарного клика
 
... тут создание TBrowse в переменной oBrw
oBrw:bEvents := {|ob,nMsg,nWParam,nLParam| iif( nMsg == WM_LBUTTONDOWN, ob:PostMsg(WM_KEYDOWN, VK_RETURN, 0), ), .T. })
т.е. левый клик будет заменен на нажатие Enter
На VK_ENTER повесите процедуру карточки


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



Пост N:3064
Зарегистрирован:17.02.12
ссылка на сообщение  Отправлено:14.02.20 17:06.Заголовок:SergKis пишет Пример..


SergKis пишет
 цитата:
Примерно так будет выглядеть замена стандартного поведения одинарного клика


А вариант работающий так
 
:bLButtonUp := {|| DoEvents(), PostMessage(oBrw:hWnd, WM_KEYDOWN, VK_RETURN, 0 ) }
:bLDblClick := {|| DoEvents(), oBrw:PostMsg( WM_KEYDOWN, VK_RETURN, 0 ) }
:UserKeys( VK_RETURN, {|ob| MsgBox(ob:cParentWnd+'.'+ob:cControlName, 'INFO'), .F. } )


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



Пост N:3065
Зарегистрирован:17.02.12
ссылка на сообщение  Отправлено:15.02.20 10:17.Заголовок:rvu SergKis пишет Н..


rvu
SergKis пишет
 цитата:
Но поймать переключение и сделать что то вполне можно, пример Advanced\Tsb_Basic_2\demo5.prg


У меня этот пример немного отличается от базового (в нем нет обработки смены колонки)
Вот мой вариант примера Скрытый текст

Команды
 
oBrw:bChange := {|ob| _wPost(1, ob, ob) }

FOR EACH o IN oBrw:aColumns
o:bGotFocus := {|no,nc,ob| _wPost(1, ob, ob) }


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

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