![]() |
|
#1
|
|||
|
|||
![]() здраствуйте.
подскажите как должен выглядеть код. задача такая. вводим текст в tedit жмём кнопку таймер отсрочит выполнение на 5 сек а дальше эмуляция нажатия клавиатуры по тексту tedit. с задержкой 200мс на каждый символ может есть где исходник? Зарание спасибо. |
#2
|
||||
|
||||
![]() Код должен выглядеть красиво и удобочитаемо.
По твоему вопросу, см. справку по SendMessage |
#3
|
|||
|
|||
![]() http://delphisources.ru/forum/showpo...57&postcount=9
эмуляция по горячим клавишам Цитата:
![]() Последний раз редактировалось Pyro, 21.05.2012 в 14:19. |
#4
|
||||
|
||||
![]() Вот ф-нц для эмуляции нажатия клавиш: keybd_event.
If end Then begin; |
#5
|
|||
|
|||
![]() и ещё 1 вопрос
почему в конце исполнения зависает программа? Код:
procedure TForm1.Timer1Timer(Sender: TObject); var text: string; i2:integer; begin text:=edit1.Text; i2:= Length(text) ; While i2=i do timer1.Interval:=0; i:=i+1; if text[i]='d' then edit2.Text:=edit2.Text+'8' else edit2.Text:=edit2.Text+'4'; end; Последний раз редактировалось Admin, 21.05.2012 в 17:14. |
#6
|
||||
|
||||
![]() Зацикливается потому что.
|
#7
|
|||
|
|||
![]() почему?
если конец строки таймер должен отключится...... |
#8
|
||||
|
||||
![]() не должен:
Код:
While i2=i do timer1.Interval:=0; Пишу программы за еду. __________________ |
#9
|
||||
|
||||
![]() Дак потому.
Код:
while (1) do foo(bar); // вот эта строчка будет крутиться бесконечно baz(); // на эту уже никогда не попадем Учите мат часть. |
#10
|
|||
|
|||
![]() зделал проще...
Код:
procedure TForm1.Timer1Timer(Sender: TObject); var text: string; i2:integer; begin text:=edit1.Text; i2:= Length(text) ; if i2=i then timer1.Interval:=0 ; i:=i+1; if text[i]='d' then edit2.Text:=edit2.Text+'8' else edit2.Text:=edit2.Text+'4'; end; хотя так и не понял почему зацикливается Последний раз редактировалось lmikle, 21.05.2012 в 17:52. Причина: дополнение |
#11
|
||||
|
||||
![]() Код писал в текстовике т.к на работе нет Delpi исправте синтаксис если есть ошибки.
Код:
var S: String; i: Integer; begin Sleep(5000); S:= Edit1.Text; For i:= 1 To Length(S) Do begin Application.ProcessMessages; keybd_event(Ord(S[i]), 0, 0, 0);. keybd_event(Ord(S[i]), 0, KEYEVENTF_KEYUP, 0); Sleep(200); end; end; If end Then begin; |