Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.06.2012, 09:46
mpdasa mpdasa вне форума
Прохожий
 
Регистрация: 08.07.2011
Сообщения: 18
Репутация: 10
Сообщение Сообщение Как вставлять текст в (rich)edit с задержкой времени

У меня такая программа. Из текстового файла загружаю санскритско-английский словарь (в richedit, он невидим).
Потом с помощью комманды copy в левое окошко копирую санскритское слово, а в правое английский перевод.
И всё это у меня циркулирует в Timer.

Так вот, хочеться, чтобы после того, как в левом окошке появилось санскритское слово, была задержка времени перед вставкой перевода, чтобы я мог попробовать отгадать перевод.

Я пробовал команду sleep(2000); Не помогает, задержка происходит для всей формы.
Попробовал по-другому. Вставку в правое окно вынес в отдельную кнопку. И эту кнопку взял в Timer, выставил задержку времени. Тоже работает для всей формы а не для отдельной кнопки.
Почему так? Как решить эту задачку?

Код на всякий случай:
Код:
procedure TForm1.FormShow(Sender: TObject);
begin
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;//вставляем сан. слово
Dlinna_stroki:=length(stroka);{нужно чтобы
правильно скопировать перевод}
perevod:=copy(stroka, p+2, Dlinna_stroki-p);//копирую перевод
RichEdit2.Text:=perevod;//вставляю перевод
end;
Ответить с цитированием
  #2  
Старый 27.06.2012, 10:28
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

в программе Anki есть какие-то санскритские карточки, там принцип обучения похожий
а если не те, то можно перевести этот словарь в формат слово[tab]перевод[конец строки] (если не ошибаюсь) и импортировать туда

Цитата:
Почему так? Как решить эту задачку?
по этому коду непонял, но можно проще всего наверно при вставлении новой пары слово-перевод - перевод делать visible ~ False, а таймер Enabled ~ true, а по таймеру перевод visible ~ true, а этот-таймер ~ false

ps в Anki ещё произношение может быть к словам

Последний раз редактировалось Pyro, 27.06.2012 в 10:34.
Ответить с цитированием
Этот пользователь сказал Спасибо Pyro за это полезное сообщение:
mpdasa (27.06.2012)
  #3  
Старый 27.06.2012, 12:55
mpdasa mpdasa вне форума
Прохожий
 
Регистрация: 08.07.2011
Сообщения: 18
Репутация: 10
Хорошо

Разобрался. Надо было поиграться с таймерами, когда какой включать/выключать.

Кому интересен код:

Код:
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;

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=true;
Timer2.Enabled:=false;
RichEdit2.Text:=perevod;//вставляю перевод
end;

И FormShow и Button1.click взят в таймер
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:32.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025