| 
| 
 | Вопрос # 6 212/ вопрос решён / | 
 |  Добрый день всем!
 Topic: Как вставлять текст в (rich)edit с задержкой времени
 
 У меня такая программа. Из текстового файла загружаю санскритско-английский словарь (в richedit, он невидим).
 Потом с помощью комманды copy в левое окошко копирую санскритское слово, а в правое английский перевод.
 И всё это у меня циркулирует в Timer.
 
 Так вот, хочеться, чтобы после того, как в левом окошке появилось санскритское слово, была задержка времени перед вставкой перевода, чтобы я мог попробовать отгадать перевод.
 
 Я пробовал команду sleep(2000); Не помогает, задержка происходит для всей формы.
 Попробовал по-другому. Вставку в правое окно вынес в отдельную кнопку. И эту кнопку взял в Timer, выставил задержку времени. Тоже работает для всей формы а не для отдельной кнопки.
 Почему так? Как решить эту задачку?
 Приложение:Переключить в обычный режим procedure TForm1.FormShow(Sender: TObject);begink_vo_strok_dictionary:=dictionary.Lines.Count;randomize;  stroka:=dictionary.Lines[x];      perevod:=copy(stroka, p+2, Dlinna_stroki-p); end;
|  |   Вопрос задал: mpdasa (статус: Посетитель)Вопрос отправлен: 27 июня 2012, 09:40
 Состояние вопроса: решён, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 8; последнее сообщение — 27 июня 2012, 19:51; участников в обсуждении: 2. 
|   | min@y™ (статус: Доктор наук), 27 июня 2012, 09:54 [#1]: Цитата (mpdasa): И эту кнопку взял в Timer, выставил задержку времени. Тоже работает для всей формы а не для отдельной кнопки. Дай посмотреть обработчики событий OnClick кнопки и OnTimer таймера.
 
 И ещё: какая версия Delphi?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | mpdasa (статус: Посетитель), 27 июня 2012, 12:06 [#2]:Поэкспериментировал ещё, разобрался. 
 В кнопке у меня код
 
 procedure TForm1.Button1Click(Sender: TObject);
 begin
 Timer1.Enabled:=true;{эта и следующая строка нужна для синхронизации двух таймеров}
 Timer2.Enabled:=false;
 RichEdit2.Text:=perevod;//вставляю перевод
 end;
 
 Эту кнопку взял в таймер (события.кнопка1.нажатие).
 
 Всё заработало.
 
 Для интересующихся окончательный код в FormShow:
 
 procedure TForm1.FormShow(Sender: TObject);
 begin
 Timer2.Enabled:=true;
 k_vo_strok_dictionary:=dictionary.Lines.Count;
 randomize;
 x:=random(k_vo_strok_dictionary);//выбераем случайную строку
 
 stroka:=dictionary.Lines[x];
 P:=Pos(z_skobka, stroka);{номер символа разделения
 санскритского слова и перевода}
 san_slovo:=copy(stroka,2,p-2);//копируем сан. слово
 RichEdit1.Text:=san_slovo;//вставляем сан. слово
 RichEdit2.Text:='';
 Dlinna_stroki:=length(stroka);{нужно чтобы
 правильно скопировать перевод}
 perevod:=copy(stroka, p+2, Dlinna_stroki-p);//копирую перевод
 Timer1.Enabled:=false;
 end;
 |  27 июня 2012, 12:07: Статус вопроса изменён на решённый (изменил автор вопроса — mpdasa): Сам разобрался 
|   | min@y™ (статус: Доктор наук), 27 июня 2012, 13:04 [#3]:А почему всё это безобразие у тебя именно в OnShow находится? Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | mpdasa (статус: Посетитель), 27 июня 2012, 13:34 [#4]:Цитата: А почему всё это безобразие у тебя именно в OnShow находится? А почему нет, что не так, основные действия происходят на OnShow. 100% работающая прога.
 В чём усчербность?
 
 И да, забыл ответить на вопрос для среду.
 
 CodeGear™ RAD Studio 2009  Version 12.0.3170.16989
 |  
|   | min@y™ (статус: Доктор наук), 27 июня 2012, 13:45 [#5]: Цитата (mpdasa): основные действия происходят на OnShow Потому что все эти действия будут происходить при каждом показе формы.
 Да, кстати, убери оттуда Randomize() и перенеси его в OnCreate или в файл проекта перед Application.Run();
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 27 июня 2012, 15:43 [#6]:Да, и ещё. Выкинь невидимый RichEdit, используй TStringList вместо него. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | mpdasa (статус: Посетитель), 27 июня 2012, 19:20 [#7]:Цитата: "Да, и ещё. Выкинь невидимый RichEdit, используй TStringList вместо него." 
 Почитал о TStringList. www.delphibasics.ru/TStringList.php
 Действительно полезная штука.
 Спасибо.
 |  
|   | min@y™ (статус: Доктор наук), 27 июня 2012, 19:51 [#8]: Цитата (mpdasa): Действительно полезная штука. Спасибо.  Ты даже не представляешь, сколько есть полезных штуковин в стандартных модулях delphi!
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |