Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Мастера, помогите!!!! Горю. Ыспользование таймера. [D6, Win95/98, Win2k]


Страницы:   1 2

goliaph ©   (2002-07-04 12:37:00) 

Мастера помогите пожалуста.
есть файл типа Textfile в котором 20 слов.
Как сделать чтобы ети слова равномерно через 2 сикунды выводило
на екран.


goliaph   (2002-07-04 15:01:00) [1]

большое спасибо, я просто не там описал



Alx2   (2002-07-04 14:55:00) [2]

Смотри как у меня объявлено:
TForm1 = Class(TForm)
.....................
Private
{ Private declarations }
Public
{ Public declarations }
TF: System.Text;
End;


goliaph   (2002-07-04 14:50:00) [3]

спасибо, но тут какой то еще прикол.
Компилятор нне пропускает TF : System.Text
Ошибка типа "Expeted";" but"." found"


Alx2   (2002-07-04 14:23:00) [4]

>Kaban © (04.07.02 14:17)
Сорри за интерференцию. Пока писал прошло некоторое время :)


Alx2   (2002-07-04 14:21:00) [5]

Опиши сначала переменную TF : System.Text внутри класса формы.
Timer1.Enabled сразу установи в False
Timer1.Interval сразу установи равным 2000
Timer1.OnTimer описана ниже.

Procedure TForm1.Button1Click(Sender: TObject); //По этой кнопке начинаем работать.
Begin
AssignFile(TF, <твой файл>);
Reset(TF); // Открываем файл
Timer1.ENABLED := True; // Запускаем процесс
End;

Procedure TForm1.Timer1Timer(Sender: TObject);
// Обработка события Timer1.OnTimer
Const
ValidSet = ["a".."z", "A".."Z", "а".."я", "А".."Я", "0".."9"];
Var S: String;
Ch: Char;
Begin // Внутри процесса делаем следущее:
S := "";
While (Not EOF(TF)) And (Not (Ch In ValidSet)) Do Read (TF, Ch);
While (Not EOF(TF)) And ((Ch In ValidSet)) Do
Begin
S := S + Ch;
Read (TF, Ch);
End;

staticText.caption := S; // Получили очередное слово.

If EOF(TF) Then // Если все прочли, то прекращаем изврат.
Begin
closefile(TF);
Timer1.ENABLED := False;
End;
End;


Kaban   (2002-07-04 14:17:00) [6]

Делайте так:
объявите глобальную переменную:
var SList:TStringList;
N :Integer;
в MainForm.OnCreate:
SList:=TStringList.Create;
SList.LoadFromFile("Имя файла");
N:=0;

в MainForm.OnDestroy:
SList.Free;
в Timer
if N<SList.Count then
begin
Memo1.Lines.Append(SList.Strings[N]
N:=N+1;
end
else
begin
N:=0;
Timer1.enabled:=false;
end;


goliaph   (2002-07-04 14:08:00) [7]

спасибо. Но я так и не понял как ето сделать.
я пока еще не силен в делф.
Поетому если не влом какой нибуть примерчик или
еще раз но подробно обяснить


Kaban   (2002-07-04 14:04:00) [8]

2Skier
вы издеваетесь?

я полагаю, что сейчас происходит следующее:
Нажимается кнопочка, запускается таймер в котором каждый раз открывается файл и считывается первоеслово.
Надо
Нажимается кнопочка, открывается файл, запускается таймер в котором каждый раз считывается следующееслово, когда слова заканчиваются, файл закрывается, таймер отключается.


Skier   (2002-07-04 14:03:00) [9]

>goliaph
Всё понял. Тогда действительно достаточно 1 таймера.

>Kaban
Был не прав. Каюсь :)


goliaph   (2002-07-04 14:01:00) [10]

между каждым появлением тоже 2 ск


Skier   (2002-07-04 13:59:00) [11]

>goliaph
Т.е. задержки начала чтения из файла нет ???


Kaban   (2002-07-04 13:58:00) [12]

что насчет двух секунд?


Skier   (2002-07-04 13:56:00) [13]

>Kaban
А как же насчёт 2 сек. между словами ?


goliaph   (2002-07-04 13:56:00) [14]

не спорте.
Вы меня наверняка неверно поняли.
Вобщем дело предстоит так.
ето тестовая програма на тему психологии.
Есть 20 слов и 20 фраз( я их внес в текстовый файл).
нужно ети слова выводить на екран из задержкой 2 ск.(слова отображаются 2ск. равномерно)
я пробывал их считывать с файла в цыкле и выводить на екран, присвоив staticText.caption значение переменной из файла.а между каждым считыванием задержка sleep(). Но почему то выводит з разной задержкой.


Anatoly Podgoretsky   (2002-07-04 13:54:00) [15]

Абсолютно верно замечено, что значит программст (это похвала)


Kaban   (2002-07-04 13:53:00) [16]

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

Да он просто внутри таймера, открывает файл для чтения и у него каждый раз читается первое слово. Второй таймер сдесь не причем


Skier   (2002-07-04 13:51:00) [17]

>Kaban
Давай без эмоций обсудим...
1) goliaph-у нужно определить момент начала вывода текста
Он об этом в вопросе не пишет, но потом сообщает
"...при следуещем срабатывания таймера". Значит тут тоже
нужен таймер.
2) установить задержку между словами (2 сек.)

Вывод : 1) + 2) = two timers


Kaban   (2002-07-04 13:45:00) [18]

серьезно, с чего бы это?


Skier   (2002-07-04 13:44:00) [19]

>Kaban

> Открываешь файл вне таймера
> Внутри таймера просто считываешь слова

Вот это точно - полный бред !


Skier   (2002-07-04 13:37:00) [20]

>Kaban


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо