Главная страница
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.05 c
15-1332519046
Rouse_
2012-03-23 20:10
2013.03.22
Оффлайн копия сайта rouse.drkb.ru


15-1344870494
stas
2012-08-13 19:08
2013.03.22
DelphiXE 2 FireMonkey


15-1334692803
ДимкаНа
2012-04-18 00:00
2013.03.22
Как называется электромагнитный поршень?


15-1334830163
Convallaria
2012-04-19 14:09
2013.03.22
!Алгоритм,прогнозирование


2-1330168302
QuickReport 3.0
2012-02-25 15:11
2013.03.22
Сохранение QuickReport