Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.05.2012, 13:35
Arsi Arsi вне форума
Прохожий
 
Регистрация: 21.05.2012
Сообщения: 4
Репутация: 10
По умолчанию нужна помощь

здраствуйте.
подскажите как должен выглядеть код.
задача такая.
вводим текст в tedit
жмём кнопку
таймер отсрочит выполнение на 5 сек
а дальше эмуляция нажатия клавиатуры по тексту tedit.
с задержкой 200мс на каждый символ
может есть где исходник?

Зарание спасибо.
Ответить с цитированием
  #2  
Старый 21.05.2012, 14:02
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код должен выглядеть красиво и удобочитаемо.
По твоему вопросу, см. справку по SendMessage
Ответить с цитированием
  #3  
Старый 21.05.2012, 14:02
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

http://delphisources.ru/forum/showpo...57&postcount=9
эмуляция по горячим клавишам
Цитата:
Код должен выглядеть красиво и удобочитаемо.
хороший код – как хороший анекдот – не нуждается в разъяснении (к ссылке выше отношения не имеет)

Последний раз редактировалось Pyro, 21.05.2012 в 14:19.
Ответить с цитированием
  #4  
Старый 21.05.2012, 14:13
Аватар для AND_REY
AND_REY AND_REY вне форума
Активный
 
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
По умолчанию

Вот ф-нц для эмуляции нажатия клавиш: keybd_event.
__________________
If end Then begin;
Ответить с цитированием
  #5  
Старый 21.05.2012, 15:32
Arsi Arsi вне форума
Прохожий
 
Регистрация: 21.05.2012
Сообщения: 4
Репутация: 10
По умолчанию

и ещё 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  
Старый 21.05.2012, 15:42
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Зацикливается потому что.
Ответить с цитированием
  #7  
Старый 21.05.2012, 15:49
Arsi Arsi вне форума
Прохожий
 
Регистрация: 21.05.2012
Сообщения: 4
Репутация: 10
По умолчанию

почему?
если конец строки таймер должен отключится......
Ответить с цитированием
  #8  
Старый 21.05.2012, 16:00
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

не должен:
Код:
While i2=i do
 timer1.Interval:=0;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #9  
Старый 21.05.2012, 16:01
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Дак потому.
Код:
while (1) do
  foo(bar); // вот эта строчка будет крутиться бесконечно
baz(); // на эту уже никогда не попадем

Учите мат часть.
Ответить с цитированием
  #10  
Старый 21.05.2012, 16:04
Arsi Arsi вне форума
Прохожий
 
Регистрация: 21.05.2012
Сообщения: 4
Репутация: 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  
Старый 21.05.2012, 16:49
Аватар для AND_REY
AND_REY AND_REY вне форума
Активный
 
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
По умолчанию

Код писал в текстовике т.к на работе нет 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;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:43.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025