Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.23;
Скачать: CL | DM;

Вниз

Как симулировать печать по буквам ?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
1-73239
Garry
2002-05-10 10:35
2002.05.23
Как отобразить сообщение при наведении мыши на объект?


3-73072
Саша
2002-04-27 10:37
2002.05.23
изменить все поля в таблице при изменении такихже полей в др. таб


3-73082
Dangerouse
2002-04-25 13:49
2002.05.23
Как с помощью Query в Paradox базу засунуть изменения из TEdit


14-73392
Draculenok
2002-04-15 09:21
2002.05.23
бесплатные звонки


1-73303
JC
2002-05-09 00:12
2002.05.23
Создать TComboBox.