|
Вопрос # 6 212/ вопрос решён / |
|
Добрый день всем!
Topic: Как вставлять текст в (rich)edit с задержкой времени
У меня такая программа. Из текстового файла загружаю санскритско-английский словарь (в richedit, он невидим).
Потом с помощью комманды copy в левое окошко копирую санскритское слово, а в правое английский перевод.
И всё это у меня циркулирует в Timer.
Так вот, хочеться, чтобы после того, как в левом окошке появилось санскритское слово, была задержка времени перед вставкой перевода, чтобы я мог попробовать отгадать перевод.
Я пробовал команду sleep(2000); Не помогает, задержка происходит для всей формы.
Попробовал по-другому. Вставку в правое окно вынес в отдельную кнопку. И эту кнопку взял в Timer, выставил задержку времени. Тоже работает для всей формы а не для отдельной кнопки.
Почему так? Как решить эту задачку?
Приложение: Переключить в обычный режим- procedure TForm1.FormShow(Sender: TObject);
- begin
- k_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. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|