![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
У меня такая программа. Из текстового файла загружаю санскритско-английский словарь (в 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
|
|||
|
|||
|
в программе Anki есть какие-то санскритские карточки, там принцип обучения похожий
а если не те, то можно перевести этот словарь в формат слово[tab]перевод[конец строки] (если не ошибаюсь) и импортировать туда Цитата:
ps в Anki ещё произношение может быть к словам Последний раз редактировалось Pyro, 27.06.2012 в 10:34. |
| Этот пользователь сказал Спасибо Pyro за это полезное сообщение: | ||
mpdasa (27.06.2012)
| ||
|
#3
|
|||
|
|||
|
Разобрался. Надо было поиграться с таймерами, когда какой включать/выключать.
Кому интересен код: Код:
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 взят в таймер |