PDA

Показать полную графическую версию : [решено] Edit 4 — Выделить всё...


semiono
10-06-2010, 04:11
http://a.imagehost.org/0128/Snap2.png
Как мне выделить текст в поле Edit 4 ? Двойным кликом нельзя так как символ '-' мешает.

http://a.imagehost.org/0870/Snap3.png
Мне выделенный текст нужно скопировать в память и вставить потом кнопкой "Paste" в другом окне,
здесь для меня тоже сложность, так как переменную $var на кнопку "Paste" ведь не положишь. А как тогда?

FlatX007
10-06-2010, 07:14
Как мне выделить текст в поле Edit 4 ? » - Симулировать комбинацию клавиш Ctrl + A ??

madmasles
10-06-2010, 08:04
semiono,
Выделить можно так:#include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <GuiEdit.au3>

$handle = ControlGetHandle (http://www.autoitscript.com/autoit3/docs/functions/ControlGetHandle.htm)($sTitle, "", "Edit4")
_GUICtrlEdit_SetSel (http://dundats.mvps.org/help/html/libfunctions/_guictrledit_setsel.htm)($handle, 0, 32)Но, ИМХО, лучше сделать так:$sSerial = ControlGetText (http://www.autoitscript.com/autoit3/docs/functions/ControlGetText.htm)($sTitle, '', '[CLASS:Edit; INSTANCE:4]')
ClipPut (http://www.autoitscript.com/autoit3/docs/functions/ClipPut.htm)($sSerial)А потом активируйте второе окно и кликайте по кнопке "Paste".

ArPi
10-06-2010, 12:33
подскажите, пожалуйста, а как сделать чтобы по нажаитю некой ctrlbutton в GUI AutoIT строка хранящая в данный момент в буфере обмена вида "^A0^B№ 4452/3^C20100430^Dуч. аб.^H6645000420829^X" была преобразована в соотвествующими правилами

1)в части строки "^B№ 4452/3" номер после "/" необходимо увеличить на единицу.
2) часть строки после "^H", а точнее 13 символов, необходимо удалить.

таким образом должна получиться строка вида "^A0^B№ 4452/4^C20100430^Dуч. аб.^H^X"
а ее нужно занести обратно в буфер обмена.

madmasles
10-06-2010, 16:33
ArPi,
Попробуйте так. Наверное, с помощью регулярных выражений это можно сделать изящнее.
;$sString = ClipGet() ;вернуть строку из буфера
$sString = '"^A0^B№ 4452/3^C20100430^Dуч. аб.^H6645000420829^X"'
$sNewString = StringLeft (http://www.autoitscript.com/autoit3/docs/functions/StringLeft.htm)(StringReplace (http://www.autoitscript.com/autoit3/docs/functions/StringReplace.htm)($sString, StringMid (http://www.autoitscript.com/autoit3/docs/functions/StringMid.htm)($sString, StringInStr (http://www.autoitscript.com/autoit3/docs/functions/StringInStr.htm)($sString, '/') + 1, 1), _
StringMid (http://www.autoitscript.com/autoit3/docs/functions/StringMid.htm)($sString, StringInStr (http://www.autoitscript.com/autoit3/docs/functions/StringInStr.htm)($sString, '/') + 1, 1) + 1, 1), _
StringInStr (http://www.autoitscript.com/autoit3/docs/functions/StringInStr.htm)($sString, '.', 0, -1) + 2) & '^X"'
;ClipPut($sNewString) ;записать новую строку в буфер
MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(0, "", $sNewString)

semiono
10-06-2010, 19:59
madmasles, Вы мне реально помогли, работает! http://forum.oszone.ru/images/buttons/resolved.gif :)




© OSzone.net 2001-2012