Форум: "Основная";
Текущий архив: 2002.05.23;
Скачать: [xml.tar.bz2];
ВнизКак симулировать печать по буквам ? Найти похожие ветки
← →
DeMoN-777 (2002-05-13 23:32) [0]Т.е есть файл (например TEST.txt) в нём находится всякая писанина.
Как сделать так чтоб в мемо отобразилася текст из файла. Не просто "типа" LoadFromFile(test.txt), а по буквам из текста
который находится в текстовом файле с интервалом в X секунд между каждой буквой?
← →
Song (2002-05-13 23:37) [1]Читай по символам и добавляй в TMemo: With Memo1 Do Text:=Text+символ; пауза; Надеюсь код не нужен? :))
← →
DeMoN-777 (2002-05-13 23:52) [2]>Song © (13.05.02 23:37)
К сожалению нужен, пожалуйста приведите пример.
← →
ION T (2002-05-14 00:01) [3]
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;
Конечно надо дополнять шоб мемо само прокручивалось, вставить условие для выхода из цикла,....
← →
Song (2002-05-14 00:04) [4]
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;
← →
DeMoN-777 (2002-05-14 00:22) [5]Всем Огромное спасибо
← →
DeMoN-777 (2002-05-14 00:29) [6]Но есть ещё один вопрос.
Как сделать чтоб мемо не мерцало ?
← →
Cobalt (2002-05-14 01:14) [7]А это цена "вывода по буковкам"
Пиши свой компонент....;)))
← →
Song (2002-05-14 09:07) [8]А как Вам такой вариант: :)))))
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"ы возьмите из аськи
← →
Reindeer Moss Eater (2002-05-14 09:19) [9]То же самое, но не затирая уже написанное в Меме:
for i:=1 to Length(Str) do
SendMessage(Memo1.Handle,WM_CHAR,Ord(Str[i]),0);
← →
DeMoN-777 (2002-05-14 09:49) [10]>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;
← →
Song (2002-05-14 09:58) [11]Ещё быстрее будет использовать TMemo.Perform() за место SendMessage()
← →
DeMoN-777 (2002-05-14 10:12) [12]Учтёмсс =)
Всем спасибо.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.05.23;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c