26-01-2006, 23:37
|
|
|
חבר מתאריך: 16.06.03
הודעות: 247
|
|
כתבתי לך קוד:
קוד:
uses crt;
var time,index:integer;
str:string;
procedure Timer(var time:integer);
begin
gotoXY(10,3);
write(time div 100);
time:=time+1;
end;
procedure Text(var str:string);
begin
if keyPressed then
begin
gotoXY(10,10);
str:=str+ReadKey;
write(str);
end;
end;
procedure MT(var str:String;var index:integer;var time:integer);
begin
case index of
0:Timer(time) ;
1:Text(str);
end;
index:=index+1;
if index>=2 then index:=0;
delay(10);
end;
begin clrscr;
time:=0;index:=0;
repeat
MT(str,index,time);
until time>=1000;
gotoXY(30,20);
write('END!...writed by AshvaK!');
readln;
end.
זה אולי נראה קצת ארוך אבל מאוד פשוט!
אתה יכול להוריד את הקובץ מפה (הרווחים נהרסים פה.. בקובץ יש רווחים אז זה יותר קריא!)
https://2006-uploaded.fresh.co.il/2...27/86734055.pas
הרעיון:
שלושה משתנים גלובליים:
אינדקס- אומר לנו לאיזה פונקציה אנחנו צריכים לפנות עכשיו.
סטר- שומר את כל התווים שנתקבלו (כי ריד קיי קורא רק תוו אחד בכל זמן. שים לב: אם התריגר KeyPressed הופעל, אוטומטים ריד קיי מקבל את התוו של הכפתור שנלחץ!)
טיימ- שומר לנו את הזמן שעבר עד עכשיו.
הדילאיי מספק לנו עצירה לרווחים זמן קצרים (עשירית השנייה) ובפונקציה של כתיבת הטיימר חילקתי את זה 100, מה שנותן לנו את השניות שעברו...
אממ.. זהו. פשוט מאוד. בסה"כ זה דיי נותן את התחושה של מולטית'רידינג.
עריכה: כשכותבים את הקוד בחלון הזה נראה כאילו הרווחים נהרסים, אבל הם בעצם לא... לא חשוב..
_____________________________________
~-LiViDuS-~
...Previous knowen as AshvaK...
|