Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Как вставлять текст в (rich)edit с задержкой времени   Найти похожие ветки 

 
mpdasa ©   (2012-06-27 09:49) [0]

У меня такая программа. Из текстового файла загружаю санскритско-английский словарь (в richedit, он невидим).
Потом с помощью комманды copy в левое окошко копирую санскритское слово, а в правое английский перевод.
И всё это у меня циркулирует в Timer.

Так вот, хочеться, чтобы после того, как в левом окошке появилось санскритское слово, была задержка времени перед вставкой перевода, чтобы я мог попробовать отгадать перевод.

Я пробовал команду sleep(2000); Не помогает, задержка происходит для всей формы.
Попробовал по-другому. Вставку в правое окно вынес в отдельную кнопку. И эту кнопку взял в Timer, выставил задержку времени. Тоже работает для всей формы а не для отдельной кнопки.
Почему так? Как решить эту задачку?


 
И. Павел ©   (2012-06-27 10:01) [1]

Сделайте один таймер. Добавьте глобальную переменную (или член класса формы) — например, isEnglish: boolean = false;
В обработчике события таймера смотрите: если isEnglish = true, то выводите английское слово, если false — то на санскрите. В конце обработчика пишите isEnglish := not isEnglish (чтобы при следующем срабатывании таймера выводилось другое слово).


 
AV ©   (2012-06-27 10:25) [2]

как вариант

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Edit2: TEdit;
   Button1: TButton;
   Timer1: TTimer;
   procedure Timer1Timer(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private     { Private declarations }
 public      { Public declarations }
   procedure SleepEx2(M: integer);
 end;

var
 Form1: TForm1;
   A: array [0..1] of string = ("Âàñÿ", "Êîëÿ");
   B: array [0..1] of string = ("ßâàñ", "ßëîê");

implementation

{$R *.dfm}

procedure TForm1.SleepEx2(M: integer);
var
 i: Integer;
begin
 i := 0;
 repeat
   i := i + 1;
   Sleep(100);
   Application.HandleMessage;
 until i > M
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
 i: Integer;
begin
 Timer1.Enabled := False;
 for i := 0 to 1 do
 begin
   Edit2.Text := "";
   Edit1.Text := A[i];
   Edit1.Repaint;
   SleepEx2(10);
   Edit2.Text := B[i];
   Edit2.Repaint;
   SleepEx2(10);
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Timer1.Enabled := True;
end;



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.126 c
3-1283500093
6ruse
2010-09-03 11:48
2013.03.22
ТРИГЕР


2-1339949716
Cobalt
2012-06-17 20:15
2013.03.22
Вывод текста


2-1333010150
rodionov_uv
2012-03-29 12:35
2013.03.22
Помогите организовать поиск и удаление строки в Excele


2-1329653243
Андрей З
2012-02-19 16:07
2013.03.22
Помогите))) как написать (создать) программу Firewall на windows?


2-1332915245
Вася
2012-03-28 10:14
2013.03.22
По какому событию сохранять рекордсет в базу?