Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизКак вставлять текст в (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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.065 c