Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.061 c
15-1353416428
Artem
2012-11-20 17:00
2013.03.22
О мобильных телефонах. Как это добавляется?


2-1330876757
TSubject
2012-03-04 19:59
2013.03.22
Ошибка при выполнении запроса в Oracle


2-1343362241
Pcrepair
2012-07-27 08:10
2013.03.22
Сортировка строк. сложный случай


9-1193070314
lubass
2007-10-22 20:25
2013.03.22
Обратная функцыя к RGB() существует?


2-1332423903
Cobalt
2012-03-22 17:45
2013.03.22
AnsiString[128] - "; Expected ; but received [ at line"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский