Что нового

Виртуальная клавиатура для быстрого ввода Autoit-выражений и операторов(в SciTE)

WSWR

AutoIT Гуру
Сообщения
941
Репутация
361
Описание:
Виртуальная клавиатура для быстрого ввода самых распространенных операторов, выражений, служебных слов при работе в SciTE.
Код сыроват, необходима конструктивная критика 8)

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$WS_EX_NOACTIVATE = 0x08000000

$iWidth = 150
$iHeight = 530

$Form = GUICreate("AuKlava", $iWidth, $iHeight, -1, -1,$WS_POPUPWINDOW,BitOR($WS_EX_TOPMOST, $WS_EX_NOACTIVATE))
 
$nClose_Button = GUICtrlCreateButton("X", $iWidth - 19, 3, 16, 16) 
GUICtrlSetColor(-1, 0xFFFFFF) 
GUICtrlSetBkColor(-1, 0xFF0000) 
GUICtrlCreateLabel("", 0, 0, $iWidth, 20, $WS_CLIPSIBLINGS, BitOR($WS_EX_DLGMODALFRAME, $GUI_WS_EX_PARENTDRAG)) 
GUICtrlSetBkColor(-1, 0x9D9DFF)

$Button1 = GUICtrlCreateButton("(   )", 8, 64, 65, 33, 0)
$Button2 = GUICtrlCreateButton("( ", 8, 27, 29, 33, 0)
$Button3 = GUICtrlCreateButton(")", 42, 27, 29, 33, 0)
$Button4 = GUICtrlCreateButton("'", 8, 102, 29, 33, 0)
$Button5 = GUICtrlCreateButton('"', 42, 102, 29, 33, 0)
$Button6 = GUICtrlCreateButton("'    '", 8, 139, 65, 33, 0)
$Button7 = GUICtrlCreateButton('"   "', 8, 177, 65, 33, 0)
$Button8 = GUICtrlCreateButton("$", 8, 213, 29, 33, 0)
$Button9 = GUICtrlCreateButton("ap", 42, 213, 29, 33, 0)
$Button10 = GUICtrlCreateButton("<  >", 79, 64, 65, 33, 0)
$Button11 = GUICtrlCreateButton("*", 79, 102, 29, 33, 0)
$Button12 = GUICtrlCreateButton("<", 79, 27, 29, 33, 0)
$Button13 = GUICtrlCreateButton(">", 113, 27, 29, 33, 0)
$Button14 = GUICtrlCreateButton(";", 8, 250, 29, 33, 0)
$Button15 = GUICtrlCreateButton("+", 113, 102, 29, 33, 0)
$Button16 = GUICtrlCreateButton("/", 79, 139, 29, 33, 0)
$Button17 = GUICtrlCreateButton("=", 42, 250, 29, 33, 0)
$Button18 = GUICtrlCreateButton("-", 113, 139, 29, 33, 0)
$Button19 = GUICtrlCreateButton("=<", 79, 177, 65, 33, 0)
$Button20 = GUICtrlCreateButton(">=", 79, 213, 65, 33, 0)
$Button21 = GUICtrlCreateButton("IF", 8, 346, 65, 33, 0)
$Button22 = GUICtrlCreateButton("While", 8, 382, 65, 33, 0)
$Button23 = GUICtrlCreateButton("IF Else", 79, 346, 65, 33, 0)
$Button24 = GUICtrlCreateButton("Sleep()", 8, 456, 65, 33, 0)
$Button25 = GUICtrlCreateButton("FOR", 8, 420, 65, 33, 0)
$Button26 = GUICtrlCreateButton("Func", 9, 493, 65, 33, 0)
$Button27 = GUICtrlCreateButton("Select", 79, 382, 65, 33, 0)
$Button28 = GUICtrlCreateButton("Switch", 80, 420, 65, 33, 0)
$Button29 = GUICtrlCreateButton("#include", 81, 457, 65, 33, 0)
$Button30 = GUICtrlCreateButton("{ }", 79, 250, 65, 33, 0)
$Button31 = GUICtrlCreateButton("[ ]", 79, 288, 65, 33, 0)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $nClose_Button
        Exit
		Case $Button1
		Send("(){LEFT}")	
		Case $Button2
		Send("(")	
		Case $Button3
		Send(")")	
		Case $Button4
		Send("{ASC 39}")	
		Case $Button5
		Send("{ASC 34}")	
		Case $Button6
		Send("{ASC 39}{ASC 39}{LEFT}")
		Case $Button7
		Send(("{ASC 34}{ASC 34}{LEFT}"))	
		Case $Button8
		Send("{ASC 36}")	
		Case $Button9
		Send("{ASC 38}")	
		Case $Button10
		Send("{ASC 60}{ASC 62}")	
		Case $Button11
		Send("{ASC 42}")	
		Case $Button12
		Send("{ASC 60}")	
		Case $Button13
		Send("{ASC 62}")	
		Case $Button14
		Send("{ASC 59}")
		Case $Button15
		Send("{ASC 43}")
		Case $Button16
		Send("{ASC 47}")
		Case $Button17
		Send("{ASC 61}")
		Case $Button18
		Send("{ASC 45}")
		Case $Button19
		Send("{ASC 61}{ASC 60}")
		Case $Button20
		Send("{ASC 62}{ASC 61}")
		Case $Button21
		Send("If Then{ASC 013}{ASC 013}Endif{esc}{up}")
		Case $Button22
		Send("While 1{ASC 010}{ASC 010}{BS}WEnd{esc}{up}{BS}")
		Case $Button23
		Send("If Then{ASC 013}{ASC 013}Else{ASC 013}{ASC 013}Endif{esc}{up 3}")
		Case $Button24
		Send("Sleep(){LEFT}{esc}")
		Case $Button25
		Send("For To{ASC 013}{ASC 013}Next{esc}{up 2}")
		Case $Button26
		Send("Func{ASC 013}{ASC 013}EndFunc{esc}{up 2} {ASC 95}(){LEFT 2}")
		Case $Button27
		Send("Select{ASC 013}Case{ASC 013}{ASC 013}EndSelect{esc}{up 2}{ASC 32}")
		Case $Button28
		Send("Switch{ASC 013}Case{ASC 013}{ASC 013}EndSwitch{esc}{up 3}{ASC 32}")
		Case $Button29 
		Send("{ASC 35}include <>{LEFT}")
		Case $Button30
        Send("{ASC 123}{ASC 125}{LEFT}")
		Case $Button31
        Send("{ASC 91}{ASC 93}{LEFT}")
	EndSwitch
WEnd
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1 575
Репутация
335
Не, это не дело.
Зачем переключаться на GUI?
Лучше сделай перехват окна SciTe и сделай горячие клавиши.
 

Arei

Скриптер
Сообщения
938
Репутация
115
OffTopic:
Спасибо,но думай лучше привязать к горячим клавишам.И такого рода программы уже были :smile:
 

AZJIO

Меценат
Меценат
Сообщения
2 752
Репутация
1 149
WSWR
Про Panel Function вкурсе? Вобщем то делалась именно с таким уклоном, но вставлять операторы проще с клавиатуры, чем с гуи, а тем более с горячих клавиш. А вот весомые частоиспользуемые куски кода будут кстати. Сначала у меня тоже был кнопочный вариант, но потом я понял что вертикальный список больше вмещает и не требует рассчитывать координаты кнопок при добавлении очередного сэмпла.
 

jilexandr

Знающий
Сообщения
129
Репутация
6
Быстрее и УДОБНЕЕ будет вручную набрать... :whistle:
 
Автор
W

WSWR

AutoIT Гуру
Сообщения
941
Репутация
361
AZJIO
Ну, что сказать, у вас уровень, конечно, выше чем у моей поделки. Нужно развиваться :'(
Однако не согласен, что все нужно затачивать на горячие клавиши - при большом количестве выражений действительно будет проще прямо набирать с клавиатуры, чем вспоминать, какая клавиша отвечает за то или иное выражение.
Кроме того, я часто работаю на планшетном компьютере, у которого нет аппаратной клавиатуры, хоткеи преимущества не дают, а тут ткнул один раз стилусом\пальцем - и готово, целый кус кода. Из-за этого у меня вообще сложился сильный уклон на работу только мышью, курсором и на настольном компе.
 

Viktor1703

AutoIT Гуру
Сообщения
1 535
Репутация
411
Если кому - то пригодится, то вот мой давний вариант виртуальной клавиатуры :smile:

VKeyboard
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 713
Viktor1703 сказал(а):
Если кому - то пригодится, то вот мой давний вариант виртуальной клавиатуры.
MFC71.DLL is missing...
 
Верх