home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / Delphi.5 / Doc / Other / DX_DELPH.exe / L5.TXT < prev    next >
Encoding:
Text File  |  1998-12-05  |  4.2 KB  |  84 lines

  1. ╚π≡εΓεΘ SDK
  2. ├δαΓα 32
  3.  
  4. ╦Φ±≥Φφπ 32.7 ╥σ±≥Φ≡εΓαφΦσ φαµα≥Φ  ΩδαΓΦ° Escape Φ F12.
  5.  
  6. procedure TForml.ForinKeyDown (Sender: TObject;  var Key: Word;
  7. Shift: TShiftState) ;
  8.  
  9. begin
  10.  
  11. // σ±δΦ φαµα≥√ ΩδαΓΦ°Φ Escape ΦδΦ F12, ταΓσ≡°Φ≥ⁿ ∩≡ΦδεµσφΦσ
  12. case Key of
  13.  
  14. VK_ESCAPE, òVK_F12 : Close ;
  15. end ;
  16.  
  17. end;
  18.  
  19. ╚ ucc! ┬√ φαΘΣσ≥σ ∩≡Φ∞σ≡ u DDDemo3. ┼±δΦ Γ√ τα∩≤±≥Φ≥σ σπε, Φ√ ≤ΦΦΣΦ≥σ φα ²Ω≡αφσ ∞σδⁿΩαφΦσ ±∞σφ ■∙Φ⌡ Σ≡≤π Σ≡≤πα
  20. ∩εΓσ≡⌡φε±≥σΘ GDI, Ωε≥ε≡√σ ±εΣσ≡µα≥ ⌠ε≡∞√ ≡ατ∞σ≡ε∞ ± ²Ω≡αφ, Φ ⌠εφεΓ√Θ ß≤⌠σ≡, Ωε≥ε≡√Θ, Γσ≡ε ≥φε, τα∩εδφσφ ≡ατδΦ≈φ√-
  21. ∞Φ ßΦ≥α∞Φ "ε±≥α≥ΩεΓ" ε≥εß≡αµσφΦ . ╧ε∞φΦ≥σ, Σδ  Γ√⌡εΣα ±δσΣ≤σ≥ φαµα≥ⁿ Esc ΦδΦ F12 (ΦδΦ Ωεφσ≈φε µσ Alt+F4).
  22.  
  23. ╧εδ≤≈σφΦσ Σε±≥≤∩α Ω ⌠εφεΓε∞≤ ß≤⌠σ≡≤
  24.  
  25. ╥σ∩σ≡ⁿ, ΩεπΣα Γ√ ∩ετφαδΦ ε±φεΓ√ ∩≡ΦδεµσφΦ  ±∞σφ√ ±≥≡αφΦ÷, Γ√, Γσ≡ε ≥φε, τα⌡ε≥Φ≥σ ≈≥ε-φΦß≤Σⁿ ± φΦ∞ ±Σσδα≥ⁿ. ┬√
  26. φ≤µΣασ≥σ±ⁿ Γ ≥ε∞, ≈≥εß√ Φ∞σ≥ⁿ Γετ∞εµφε±≥ⁿ ≡Φ±εΓα≥ⁿ φα ∩εΓσ≡⌡φε±≥Φ ⌠εφεΓεπε ß≤⌠σ≡α. ╬ΣφαΩε, Γ ∩ε±δσΣφσΘ ±σΩ÷ΦΦ Γ√
  27. ±ετΣαδΦ Ωε∞∩δσΩ±φ≤■ ∩εΓσ≡⌡φε±≥ⁿ, Ωε≥ε≡α  αΓ≥ε∞α≥Φ≈σ±ΩΦ ±ετΣαδα Σδ  φα± ⌠εφεΓ√Θ ß≤⌠σ≡. ╧≡εßδσ∞α ταΩδ■≈ασ≥±  Γ ≥ε∞,
  28. ≈≥ε ⌠≤φΩ÷Φ  CreateSurface τα∩εδφΦδα ∩εδσ PrimaryField (ε±φεΓφα  ∩εΓσ≡⌡φε±≥ⁿ), Φ Γ√ Σεδµφ√ ∩εδ≤≈Φ≥ⁿ Σε±≥≤∩ Ω ⌠εφεΓε∞≤
  29. ß≤⌠σ≡≤. ─δ  ²≥επε ∞εµφε Γ√τΓα≥ⁿ ∞σ≥εΣ GetAttachedSurface. ─εßαΓⁿ≥σ ∩εδσ ⌠εφεΓεπε ß≤⌠σ≡α BackBuffer Ω ⌠ε≡∞σ Φ ΩεΣ Φτ
  30. δΦ±≥Φφπα 32.8 - Ω OnShow:
  31.  
  32. ╦Φ±≥Φφπ 32.8 ─ε±≥≤∩ Ω ∩εΓσ≡⌡φε±≥Φ ⌠εφεΓεπε ß≤⌠σ≡α.
  33.  
  34. { ∩εδ≤≈Φ≥ⁿ ⌠εφεΓ τΘ ß≤⌠σ≡ }
  35. DDSCaps . dwCaps : = DDSCAPS_BACKBUFFER ;
  36.  
  37. if PrimarySurface.GetAttachedSurface( DDSCaps, BackBuffer ) <> DD_OK then
  38. Raise Exception. Create ( 'Failed to get back buffer surface' ) ;
  39.  
  40. DDSCaps  Γδ σ≥±  δεΩαδⁿφεΘ ∩σ≡σ∞σφφεΘ ≥Φ∩α TDDSCaps, Ωε≥ε≡α  ΣεßαΓδ σ≥±  Ω εß≡αßε≥≈ΦΩ≤ FormShow. ┬√ τα∩εδφ -
  41. σ≥σ ⌠δαµΩΦ Σδ  φσεß⌡εΣΦ∞εΘ ∩≡Φ±εσΣΦφσφφεΘ ∩εΓσ≡⌡φε±≥Φ Φ Γ√τ√Γασ≥σ GetAttachedSurface. ┬ ²≥ε∞ ±δ≤≈ασ Γα∞ φσεß⌡εΣΦ∞
  42. ⌠εφεΓ√Θ ß≤⌠σ≡. ╠σ≥εΣ ∞εµσ≥ Γσ≡φ≤≥ⁿ ≥εδⁿΩε εΣφ≤ ∩εΓσ≡⌡φε±≥ⁿ. ┬√τεΓ φα∩≡α±σφ, σ±δΦ ßεδσσ ≈σ∞ εΣφα ∩≡Φ±εσΣΦφσφφα 
  43. ∩εΓσ≡⌡φε±≥ⁿ ±εε≥Γσ≥±≥Γ≤σ≥ ∩σ≡σΣαφφ√∞ ⌠δαµΩα∞ DDSCaps. ╬ΣφαΩε, φσ Φ∞σσ≥ τφα≈σφΦ , ±ΩεδⁿΩε ⌠εφεΓ√⌡ ∩εΓσ≡⌡φε±≥σΘ Γ√
  44. ±ετΣαδΦ, ±≤∙σ±≥Γ≤σ≥ ≥εδⁿΩε εΣφα ∩εΓσ≡⌡φε±≥ⁿ ± ⌠δαµΩε∞ ⌠εφεΓεπε ß≤⌠σ≡α, Φ εφα  Γδ σ≥±  ∩σ≡ΓεΘ Γ ÷σ∩Φ ±∞σφφ√⌡ ∩εΓσ≡-
  45. ⌡φε±≥σΘ ∩ε±δσ ε±φεΓφεΘ. ┼±δΦ φσεß⌡εΣΦ∞ε ∩εδ≤≈Φ≥ⁿ Γ±σ ∩≡Φ±εσΣΦφσφφ√σ ∩εΓσ≡⌡φε±≥Φ, ∞εµφε Γ√τΓα≥ⁿ ⌠≤φΩ÷Φ■ EnumAt-
  46. tachedSurfaces.
  47.  
  48. ┬ε±±≥αφεΓδσφΦσ ∩εΓσ≡⌡φε±≥σΘ
  49.  
  50. ╬Σφα Φτ ∞φεπΦ⌡ ε±εßσφφε±≥σΘ DirectDraw ταΩδ■≈ασ≥±  Γ ≥ε∞, ≈≥ε ∩εΓσ≡⌡φε±≥Φ ∞επ≤≥ ∩ε≥σ≡ ≥ⁿ ±Γε■ ∩α∞ ≥ⁿ ∩ε ∞φεπΦ∞
  51. ∩≡Φ≈Φφα∞; φα∩≡Φ∞σ≡, ΩεπΣα Φτ∞σφ σ≥±  ≡σµΦ∞ ε≥εß≡αµσφΦ . ┼±δΦ ²≥ε ∩≡εΦ±⌡εΣΦ≥, Γ√ Σεδµφ√ Γ√τΓα≥ⁿ ∞σ≥εΣ Restore ∩εΓσ≡-
  52. ⌡φε±≥Φ, ≈≥εß√ ∩εδ≤≈Φ≥ⁿ ±Γε■ ∩α∞ ≥ⁿ εß≡α≥φε. ┬√ ≥αΩµσ Σεδµφ√ ∩σ≡σ≡Φ±εΓα≥ⁿ ∩εΓσ≡⌡φε±≥ⁿ. ▌≥ε φσ±ΩεδⁿΩε φα∩ε∞Φφασ≥ ≥ε,
  53. ΩαΩ ≤ Γα± ΓετφΦΩασ≥ φσεß⌡εΣΦ∞ε±≥ⁿ φα≡Φ±εΓα≥ⁿ εΩφε Γ εß√≈φε∞ ∩≡επ≡α∞∞Φ≡εΓαφΦΦ Σδ  Windows, ΩεπΣα εφε ∩σ≡σΩ≡√Γασ≥±  Φ
  54. φ≤µΣασ≥±  Γ εßφεΓδσφΦΦ. ┴εδⁿ°Φφ±≥Γε Φτ ⌠≤φΩ÷ΦΘ IDirectDrawSurface ∞επ≤≥ ΓετΓ≡α≥Φ≥ⁿ ≡στ≤δⁿ≥α≥ DDERR_SLIRFACELOST.
  55. ╩επΣα ²≥ε ∩≡εΦ±⌡εΣΦ≥, Γ√ Σεδµφ√ Γε±±≥αφεΓΦ≥ⁿ ∩εΓσ≡⌡φε±≥ⁿ Φ ∩σ≡σ≡Φ±εΓα≥ⁿ σσ. ╠φεπΦσ Φτ ²≥Φ⌡ ⌠≤φΩ÷ΦΘ ≥αΩµσ ∞επ≤≥ Γσ≡-
  56. φ≤≥ⁿ DDERR_WASSTILLDRAWING, ≈≥ε ∩ε ±≤≥Φ ετφα≈ασ≥, ≈≥ε α∩∩α≡α≥φεσ εßσ±∩σ≈σφΦσ ταφ ≥ε Φ τα∩≡ε± φσεß⌡εΣΦ∞ε ∩εΓ≥ε-
  57. ≡ ≥ⁿ Σε ≥σ⌡ ∩ε≡, ∩εΩα Γ√ φσ Σεßⁿσ≥σ±ⁿ ≤±∩σ⌡α, ΦδΦ ∩εΩα Γ√ φσ ∩εδ≤≈Φ≥σ Φφεσ ±εεß∙σφΦσ εß ε°ΦßΩσ.
  58.  
  59. ┬ε≥ ε±φεΓε∩εδαπα■∙α  δεπΦ≈σ±Ωα  ±⌡σ∞α, Φ±∩εδⁿτ≤■∙α  ∞σ≥εΣ Flip. ▌≥ε≥ ∩≡Φ∞σ≡ ∩≡σΣφατφα≈σφ ≥εδⁿΩε Σδ  ≥επε, ≈≥εß√
  60. ΓΓσ±≥Φ Γα± Γ Ω≤≡±. ╬φ φσ ∩σ≡σ≡Φ±εΓ√Γασ≥ ∩εΓσ≡⌡φε±≥Φ. ╤∞ε≥≡Φ≥σ δΦ±≥Φφπ 32.9.
  61.  
  62. ╦Φ±≥Φφπ 32.9 "╥≡αΣΦ÷Φεφφ√Θ" ΩεΣ Σδ  ∩≡εΓσ≡ΩΦ Φ Γε±±≥αφεΓδσφΦ  ∩εΓσ≡⌡φε±≥Φ.
  63.  
  64. repeat
  65.  
  66. DDResult := PrimarySurf α±σ. Flip ( NIL, 0 ) ;
  67. case DDResult of
  68. DD_OK : break ;
  69. DDERR_SURFACELOST : begin
  70. DDResult := PrimarySurface. Restore () ;
  71. if DDResult <> DD_OK then break ;
  72. end ;
  73.  
  74. else if DDResult <> DDERR_WASSTILLDRAWING then break
  75. end ;
  76. until false ;
  77.  
  78. ╤α∞εσ φαΣεσΣδΦΓεσ ≥ε, ≈≥ε Γα∞ φσεß⌡εΣΦ∞ ∩εΣεßφ√Θ ΩεΣ ∩≡αΩ≥Φ≈σ±ΩΦ Σδ  ΩαµΣεπε Γ√τεΓα ∞σ≥εΣα IDirectDrawSurface.
  79. ┬± ΩΦΘ ≡ατ, ΩεπΣα ±∩σ÷Φ⌠ΦΩα÷Φ  Γ√τεΓα Γ ±∩≡αΓΩσ Game SDK ±εΣσ≡µΦ≥ DERR_SLJRFACELOST Γ Ωα≈σ±≥Γσ Γετ∞εµφεπε
  80. ≡στ≤δⁿ≥α≥α, ²≥ε φσεß⌡εΣΦ∞ε. ═ε Pascalù±≥≡≤Ω≥≤≡Φ≡εΓαφφ√Θ  τ√Ω Γ√±εΩεπε ≤≡εΓφ , φσ ≥αΩ δΦ? ╥αΩΦ∞ εß≡ατε∞, ∩ε≈σ∞≤ ß√ φσ
  81. φα∩Φ±α≥ⁿ φσßεδⁿ°εΘ ±σ≡ΓΦ±φ√Θ ∞σ≥εΣ Σδ  εΩαταφΦ  ≥αΩεΘ ∩ε∞ε∙Φ? ┬ε≥ ²≥ε≥ ∞σ≥εΣ ± Φ∞σφσ∞ εΣφεπε Φτ ∞εΦ⌡ δ■ßΦ∞√⌡ °ε≤.
  82. (╬φε φσ Σασ≥ Γετ∞εµφε±≥Φ ±σß  ταß√≥ⁿ!) ╬φε ∩≡σΣ±≥αΓδσφε Γ δΦ±≥Φφπσ 32.10.
  83.  
  84.