Я начал с этого, только Edit вижу как поле внутри TMyComboBox, и ещё я индекс указывал, а не надо было:
Код: Выделить всё
/ef "tcm(314,1) delay(50) sendmsg(findwnd(TMyComboBox, ,findwnd(TCOMBOINPUT)), $0C, 0, `>блабла`)"

Пытаюсь написать макрос:
Код: Выделить всё
set_wait=loop(@<=if_empty(#5,5) && if(findwnd(#2)+findwnd(#3),sendmsg(findwnd(#2,,findwnd(#3),#4),$0C,0,#1)*0,delay(30)))
Вызов:
Код: Выделить всё
/ef tcm(314,1) eval(set_wait(`>блабла`,TMyComboBox,TCOMBOINPUT))
/ef tcm(508,1) eval(set_wait(`7z:"Test.7Z"`,TAltEdit,TDLGZIP))
Но цикл раньше прерывается. Если в delay пишу 50 вместо 30, то срабатывает, но это то же самое, что и без макроса.
Сокращаю макрос:
Код: Выделить всё
set_wait=loop(@<=if(findwnd(#2)+findwnd(#3),sendmsg(findwnd(#2,,findwnd(#3),#4),$0C,0,#1)*0,delay(20)))
Срабатывает, значит, работает шустрее, т.к. при установке delay(10) - тишь. Что я не так делаю?
Вот так ещё с меньшими delay:
Код: Выделить всё
set_wait=loop(@<=if(findwnd(#2)+findwnd(#3),sendmsg(findwnd(#2))*sendmsg(findwnd(#3))*sendmsg(findwnd(#2,,findwnd(#3),#4),$0C,0,#1)*0,delay(10)))
, но опять-таки зависит от скорости появления окна.
И как быть с окнами, где есть комбобоксы без Edit и/или другие подокна у контролов?:
Код: Выделить всё
/ef tcm(508,1) eval(set_wait(`7z`,TMyComboBox,TDLGZIP,1))
/ef tcm(2400,1) eval(set_wait(`[N]blabla`,TMyComboBox,TMultiRename,6))