home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / das_buch / grafik / tewilogo.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1993-04-18  |  2.2 KB  |  86 lines

  1. {$A+,B-,D-,E-,F-,G-,I-,L-,N-,O-,P-,Q-,R-,S-,T-,V-,X+}
  2. {$M 16384,0,655360}
  3. (*===================================================================*)
  4. (*                           TEWILOGO.PAS                            *)
  5. (*                (C) 1993 te-wi Verlag, München                     *)
  6. (*===================================================================*)
  7.  
  8. PROGRAM tewiLogo;
  9.  
  10. USES
  11.   Crt, DOS, Graph, Drivers;
  12.  
  13. VAR
  14.   MaxX, MaxY,
  15.   x, y, gd, gm, i  : INTEGER;
  16.   p1, p2, p3       : Pointer;
  17.   size             : WORD;
  18.   ch               : CHAR;
  19.   Hour, Minute, Second, Sec100: WORD;
  20.  
  21. {$I BITMAP1.INC}
  22. {$I BITMAP2.INC}
  23. {$I BITMAP3.INC}
  24.  
  25. PROCEDURE MoveLogo;
  26. BEGIN
  27.    y := MaxY DIV 2 - 35;
  28.    x := MaxX;
  29.    REPEAT
  30.      IF KeyPressed THEN BEGIN
  31.        PutImage(x, y, p2^, NormalPut);
  32.        Exit;
  33.      END;
  34.      PutImage(x, y, p1^, NormalPut);
  35.      Dec(x, 1)
  36.    UNTIL x <= 1;
  37.    PutImage(x, y, p2^, NormalPut);
  38. END;
  39.  
  40. BEGIN
  41.   CheckBreak := FALSE;
  42.   DetectGraph(gd, gm);
  43.   InitGraph(gd, gm, '');
  44.   DirectVideo := TRUE;
  45.   GetMem(p1, SizeOf(Bitmap1));
  46.   GetMem(p2, SizeOf(Bitmap2));
  47.   GetMem(p3, SizeOf(Bitmap3));
  48.   Move(Bitmap1, p1^, SizeOf(Bitmap1));
  49.   Move(Bitmap2, p2^, SizeOf(Bitmap2));
  50.   Move(Bitmap3, p3^, SizeOf(Bitmap3));
  51.   ch := #0;
  52.   MaxX := GetMaxX;
  53.   MaxY := GetMaxY;
  54.   REPEAT
  55.     GetTime(Hour, Minute, Second, Sec100);
  56.     IF Minute MOD 2 = 0 THEN BEGIN
  57.       Randomize;
  58.       x := Random(MaxX - 221);
  59.       y := Random(MaxY - 71);
  60.       PutImage(x, y, p1^, NormalPut);
  61.       Randomize;
  62.       Delay(Random(1500) + 500);
  63.       PutImage(x, y, p2^, NormalPut);
  64.     END ELSE MoveLogo;
  65.     IF KeyPressed THEN BEGIN
  66.       ch := ReadKey;
  67.       IF ch <> ^F THEN BEGIN
  68.         PutImage(x, y, p3^, NormalPut);
  69.         FOR i := 30 TO 900 DO BEGIN
  70.           Sound(i * 10); Delay(1);
  71.         END;
  72.         FOR i := 900 DOWNTO 30 DO BEGIN
  73.           Sound(i * 10); Delay(1);
  74.         END;
  75.         NoSound;
  76.         PutImage(x, y, p2^, NormalPut);
  77.       END;
  78.     END;
  79.   UNTIL ch = ^F;
  80.   FreeMem(p1, Size);
  81.   FreeMem(p2, Size);
  82.   FreeMem(p3, Size);
  83.   CloseGraph;
  84. END.
  85.  
  86. (*===================================================================*)