On-line: tnsr2, гостей 1. Всего: 2 [подробнее..]
АвторСообщение
постоянный участник




Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 10.04.06 08:39. Заголовок: Передвижение между объектами ввода


Как в MiniGUI сделать так что передвижение между объектами ввода работало как в CLIPPERe
а именно со стрелками Вниз / Вверх а не только через TAB / Shift+TAB

Спасибо: 0 
Профиль
Ответов - 3 [только новые]


модератор




Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 10.04.06 10:22. Заголовок: Re:


Посмотри ниже рабочий пример:

/*
* CAS - webcas@bol.com.br
* Create: 14/11/2003
* Modify: 26/8/2004 00:58am
* : backcolor,fontcolor in textbox
* : backcolor,fontcolor in label
*/

#include "minigui.ch"

Function Main

set navigation extended

c_txt_back = {0,0,255}
c_txt_color= {0,128,128}

c_lbl_back = {255,255,0}
c_lbl_color= {0,255,0}

DEFINE WINDOW Form_cas ;
AT 0,0 WIDTH 400 HEIGHT 400 ;
TITLE 'Press UP or DOWN or ENTER - by CAS' MAIN ;
BACKCOLOR {0,255,255}

ON KEY DOWN ACTION InsertTab()
ON KEY UP ACTION InsertShiftTab()

for cas_n=1 to 10
cas_var = 'TEXT_' + alltrim(str(cas_n))
cas_lbl = 'LBL_' + alltrim(str(cas_n))

@ cas_n*30 , 30 LABEL &cas_lbl value cas_lbl ;
width 95 height 25 backcolor c_lbl_color


m_col = form_cas.&cas_lbl.col + form_cas.&cas_lbl.width + 20

@ cas_n*30 , m_col TEXTBOX &cas_var value cas_var width 200 ;
ON LOSTFOCUS cas_func(1) ;
ON GOTFOCUS cas_func() ;
BACKCOLOR c_txt_color ;
FONTCOLOR {255,255,255}
next


END WINDOW

Form_cas.Center
Form_cas.Activate

Return Nil

*............................................................................*

func cas_func

var_label = 'LBL_' + substr(this.name,6)
var_text = this.name

if pcount() # 0
form_cas.&var_label.fontbold := .f.
form_cas.&var_label.fontsize := 9

form_cas.&var_label.backcolor := c_lbl_color
form_cas.&var_text.backcolor := c_txt_color

else

form_cas.&var_label.fontbold := .t.
form_cas.&var_label.fontsize := 12

form_cas.&var_label.backcolor := c_lbl_back
form_cas.&var_text.backcolor := c_txt_back

form_cas.&var_text.caretpos := 0
* caretpos = 0, foi colocado para nгo selecionar todo o texto
* caretpos = 0, it was put for not selecting the whole text

endif

return

Спасибо: 0 
Профиль





Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 11.04.06 11:39. Заголовок: Re:


gfilatov пишет:

 цитата:
ON KEY DOWN ACTION InsertTab()
ON KEY UP ACTION InsertShiftTab()



А как вернуть обратно назначение стрелок , чтобы в Browse они работали в своем режиме

ON KEY DOWN ACTION {|| if(ASCAN(ArNameText,ThisWindow.FocusedControl)>0,InsertTab(),???????????) }
ON KEY UP ACTION {|| if(ASCAN(ArNameText,ThisWindow.FocusedControl)>0,InsertShiftTab(),?????????) }


Спасибо: 0 
Профиль





Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 12.04.06 13:00. Заголовок: Re:


Сергей Р пишет:

 цитата:
А как вернуть обратно назначение стрелок , чтобы в Browse они работали в своем режиме



Пробовал использовать InsertUp() и InsertDown() , но стелки не работали
(Напомню : проблема , если в одном окне Browse и TextBox (или другие поля ввода ) )
Заметил что , если после стрелки нажать Alt или Control , то движение происходит ( это я про Browse )
Сразу скажу , что Си я не знаю , написал по образу и подобию (но работает )

ArNameText - массив имен контролов .

ON KEY DOWN ACTION {|| if(ASCAN(ArNameText,ThisWindow.FocusedControl)>0,InsertTab(),InsertDown_New()) }
ON KEY UP ACTION {|| if(ASCAN(ArNameText,ThisWindow.FocusedControl)>0,InsertShiftTab(),InsertUp_New()) }
*******************

#pragma BEGINDUMP
#include <windows.h>
HB_FUNC ( INSERTUP_NEW )
{
keybd_event(
VK_CONTROL, // virtual-key code
0, // hardware scan code
0, // flags specifying various function options
0 // additional data associated with keystroke
);

keybd_event(
VK_UP, // virtual-key code
0, // hardware scan code
0, // flags specifying various function options
0 // additional data associated with keystroke
);

keybd_event(
VK_CONTROL, // virtual-key code
0, // hardware scan code
KEYEVENTF_KEYUP,// flags specifying various function options
0 // additional data associated with keystroke
);

}
HB_FUNC ( INSERTDOWN_NEW )
{
keybd_event(
VK_CONTROL, // virtual-key code
0, // hardware scan code
0, // flags specifying various function options
0 // additional data associated with keystroke
);

keybd_event(
VK_DOWN, // virtual-key code
0, // hardware scan code
0, // flags specifying various function options
0 // additional data associated with keystroke
);

keybd_event(
VK_CONTROL, // virtual-key code
0, // hardware scan code
KEYEVENTF_KEYUP,// flags specifying various function options
0 // additional data associated with keystroke
);

}
#pragma ENDDUMP



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