![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как симулировать печать по буквам ?
DeMoN-777 © (2002-05-13 23:32:00)Т.е есть файл (например TEST.txt) в нём находится всякая писанина.
Как сделать так чтоб в мемо отобразилася текст из файла. Не просто "типа" LoadFromFile(test.txt), а по буквам из текста
который находится в текстовом файле с интервалом в X секунд между каждой буквой?
DeMoN-777 (2002-05-14 10:12:00) [1]Учтёмсс =)
Всем спасибо.
Song (2002-05-14 09:58:00) [2]Ещё быстрее будет использовать TMemo.Perform() за место SendMessage()
DeMoN-777 (2002-05-14 09:49:00) [3]>Reindeer Moss Eater (14.05.02 09:19)
!!! Спасибо огромное !!!
>Song © (14.05.02 09:07)
Класно =)
А так ещё лучше.
Печатается не обновляя весь текст, а только добовляя нужный символ=> мемо не мерцает + мемо само прокручивается
IMXO, это лучший вариант, или я не прав ;) ?
procedure TForm1.Button1Click(Sender: TObject);
Var t,r:Integer;
begin
Memo1.Clear;
With TStringList.Create Do
try
LoadFromFile("c:\1.txt");
For t:=0 to Count-1 Do
Begin
For r:=1 to Length(Strings[t]) Do
Begin
SendMessage(Memo1.Handle,WM_CHAR,Ord(Strings[t][r]),0);
Application.ProcessMessages;
PlaySound("c:\MsgType.wav",0,SND_FILENAME);
End;
SendMessage(Memo1.Handle,WM_CHAR,Ord(#13),0);
Application.ProcessMessages;
PlaySound("c:\MsgBell.wav",0,SND_FILENAME);
End;
finally
Free;
end;
Reindeer Moss Eater (2002-05-14 09:19:00) [4]То же самое, но не затирая уже написанное в Меме:
for i:=1 to Length(Str) do
SendMessage(Memo1.Handle,WM_CHAR,Ord(Str[i]),0);
Song (2002-05-14 09:07:00) [5]А как Вам такой вариант: :)))))
procedure TForm1.Button1Click(Sender: TObject);
Var t,r:Integer;
begin
Memo1.Clear;
With TStringList.Create Do
try
LoadFromFile("c:\autoexec.bat");
For t:=0 to Count-1 Do
Begin
For r:=1 to Length(Strings[t]) Do
Begin
Memo1.Lines.Text:=Memo1.Lines.Text+Strings[t][r];
Application.ProcessMessages;
PlaySound("c:\MsgType.wav",0,SND_FILENAME);
End;
Memo1.Lines.Text:=Memo1.Lines.Text+#13#10;
Application.ProcessMessages;
PlaySound("c:\MsgBell.wav",0,SND_FILENAME)
End;
finally
Free;
end;
end;
P.S. wav"ы возьмите из аськи
Cobalt (2002-05-14 01:14:00) [6]А это цена "вывода по буковкам"
Пиши свой компонент....;)))
DeMoN-777 (2002-05-14 00:29:00) [7]Но есть ещё один вопрос.
Как сделать чтоб мемо не мерцало ?
DeMoN-777 (2002-05-14 00:22:00) [8]Всем Огромное спасибо
Song (2002-05-14 00:04:00) [9]
procedure TForm1.Button1Click(Sender: TObject);
Var t,r:Integer;
begin
Memo1.Clear;
With TStringList.Create Do
try
LoadFromFile("c:\autoexec.bat");
For t:=0 to Count-1 Do
For r:=1 to Length(Strings[t]) Do
Begin
Memo1.Lines.Text:=Memo1.Lines.Text+Strings[t][r];
Application.ProcessMessages;
Sleep(20);
End;
finally
Free;
end;
end;
ION T (2002-05-14 00:01:00) [10]
procedure TForm1.Button1Click(Sender: TObject);
var f: TFileStream;
c: char;
i: integer;
begin
Memo1.Clear;
f:= TFileStream.Create("C:\autoexec.bat", fmOpenRead);
try
for i:= 0 to f.Size- 1 do
begin
f.Read(c, 1);
Memo1.Text:= Memo1.Text+ c;
sleep(100);
Application.ProcessMessages;
end;
finally f.Free end;
end;
Конечно надо дополнять шоб мемо само прокручивалось, вставить условие для выхода из цикла,....
DeMoN-777 (2002-05-13 23:52:00) [11]>Song © (13.05.02 23:37)
К сожалению нужен, пожалуйста приведите пример.
Song (2002-05-13 23:37:00) [12]Читай по символам и добавляй в TMemo: With Memo1 Do Text:=Text+символ; пауза; Надеюсь код не нужен? :))