<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7973538992950313228</id><updated>2012-02-16T17:54:36.182+07:00</updated><category term='Tsprite'/><category term='animasi'/><category term='nilai'/><category term='office'/><category term='Mysql'/><category term='ms.access'/><category term='terbilang'/><category term='Tips'/><category term='angka'/><category term='ole object'/><category term='pac man'/><category term='delphi'/><category term='string'/><category term='pacman'/><category term='outlook'/><category term='substring'/><category term='excel'/><category term='Tips Trick Delphi'/><category term='sql'/><category term='delhi'/><category term='container'/><category term='trick'/><category term='huruf'/><category term='oledb'/><category term='access'/><category term='enggine'/><category term='Tips  Trick Delphi'/><category term='pac-man'/><category term='office delphi'/><category term='blogriza'/><title type='text'>sidiq's</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sidiqhimura.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sidiqhimura.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Umar Sidiq</name><uri>https://profiles.google.com/102684568906885262353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-W3zbfQCIuLY/AAAAAAAAAAI/AAAAAAAAAGI/yHq5xWX8fpU/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7973538992950313228.post-8485091942127576451</id><published>2012-01-11T23:38:00.001+07:00</published><updated>2012-01-12T00:34:57.978+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pac-man'/><category scheme='http://www.blogger.com/atom/ns#' term='enggine'/><category scheme='http://www.blogger.com/atom/ns#' term='pacman'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Tsprite'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='blogriza'/><category scheme='http://www.blogger.com/atom/ns#' term='animasi'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips Trick Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='container'/><category scheme='http://www.blogger.com/atom/ns#' term='pac man'/><category scheme='http://www.blogger.com/atom/ns#' term='trick'/><title type='text'>Membuat Animasi Sederhana</title><content type='html'>&lt;br /&gt;&lt;div style="background-color: #4c4c4e; font-family: Arial, Arial, Helvetica, sans-serif; font-size: small; margin-bottom: 12px; text-align: left;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 12px;"&gt;Animasi 2D mau bagaimana bentuknya pada dasarnya sama saja yaitu menampilkan gambar-gambar secara bergiliran. Untuk membuat animasi pada game 2D pada umumnya, sedikitnya ada tiga class yang terlibat. Ketiga class tersebut adalah:&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Class yang merepresentasikan citra/image yang akan dianimasikan. Biasanya disebut sprite. Dalam hal ini adalah TSprite.&lt;/li&gt;&lt;li&gt;Container untuk menampung sprite objects. Container ini juga berperan sebagai sprite manager. Pada contoh code diberi nama TSpriteContainer.&lt;/li&gt;&lt;li&gt;Class yang melakukan animasi. Bisa disebut sprite engine. Pada contoh code disebut TSpriteEngine.&lt;/li&gt;&lt;/ol&gt;&lt;div style="margin-bottom: 12px;"&gt;Berikut adalah contoh code yang menampilkan teknik untuk melakukan animasi sederhana. Kelihatannya ribet yah. Mungkin iya karena code berikut adalah implementasi sederhana dari sebuah sprite engine untuk game 2D. Walaupun sederhana, mestinya sih sudah cukup untuk menjelaskan konsep animasi dan memperlihatkan bagaimana animasi berjalan tanpa flicker (bug paling menyebalkan dalam animasi). Contoh berikut terdiri atas dua unit, yaitu Sprite.pas dan Main.pas. Unit Sprite berisi empat buah class, yaitu:&lt;span id="more-54"&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;TUtils yang berisi method untuk yang bersifat utilisasi dan dipakai bersama-sama oleh semua class.&lt;/li&gt;&lt;li&gt;TSprite yang merupakan class yang berisi informasi image yang akan digambar.&lt;/li&gt;&lt;li&gt;TSpriteContainer yang berfungsi sebagai sprite container dan sprite manager.&lt;/li&gt;&lt;li&gt;TSpriteEngine yang berfungsi melakukan animasi. Berisi sebuah method, yaitu&amp;nbsp;OpenMouth.&lt;/li&gt;&lt;/ol&gt;&lt;div style="margin-bottom: 12px;"&gt;Gambar-gambar yang akan di-raster di-load dan ditampung pada TSpriteContainer. Misalkan keempat file gambar tersebut bernama pac-1.bmp, pac-2.bmp, pac-3.bmp, pac-4.bmp, dan bg.bmp. Semuanya disimpan dalam directory “img\” yang path-nya relative terhadap .exe file.&lt;/div&gt;&lt;div style="margin-bottom: 12px;"&gt;File Sprite.pas:&lt;/div&gt;&lt;div class="wp_syntax" style="border-bottom-color: silver; border-bottom-style: solid; border-bottom-width: 1px; border-image: initial; border-left-color: silver; border-left-style: solid; border-left-width: 1px; border-right-color: silver; border-right-style: solid; border-right-width: 1px; border-top-color: silver; border-top-style: solid; border-top-width: 1px; color: #110000; margin-bottom: 1.5em; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: hidden; width: 525px;"&gt;&lt;div class="code" style="padding-bottom: 2px; padding-left: 4px; padding-right: 4px; padding-top: 2px; vertical-align: top;"&gt;&lt;pre class="delphi" style="clear: none; float: none; font-size: 12px; line-height: 1.333; overflow-x: visible; overflow-y: visible; width: auto;"&gt;&lt;span style="color: black; font-weight: bold;"&gt;unit&lt;/span&gt; Sprite&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;interface&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;uses&lt;/span&gt; Windows&lt;span style="color: #000066;"&gt;,&lt;/span&gt; Graphics&lt;span style="color: #000066;"&gt;,&lt;/span&gt; Classes&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;const&lt;/span&gt;&lt;br /&gt;  BACKGROUND_PATH &lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: red;"&gt;'img\bg.bmp'&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;type&lt;/span&gt;&lt;br /&gt;  TUtils &lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: black; font-weight: bold;"&gt;class&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;public&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;class&lt;/span&gt; &lt;span style="color: black; font-weight: bold;"&gt;procedure&lt;/span&gt; ReleaseItems&lt;span style="color: #000066;"&gt;(&lt;/span&gt;AList&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TList&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;  TSprite &lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: black; font-weight: bold;"&gt;class&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;private&lt;/span&gt;&lt;br /&gt;    FName&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;string&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    FImage&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TGraphic&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    FTop&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Integer&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    FLeft&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Integer&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    FWidth&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Integer&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    FHeight&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Integer&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;public&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;constructor&lt;/span&gt; Create&lt;span style="color: #000066;"&gt;(&lt;/span&gt;AImgPath&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;string&lt;/span&gt;&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;destructor&lt;/span&gt; Destroy&lt;span style="color: #000066;"&gt;;&lt;/span&gt; &lt;span style="color: black; font-weight: bold;"&gt;override&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;property&lt;/span&gt; Name&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;string&lt;/span&gt; &lt;span style="color: #000066;"&gt;read&lt;/span&gt; FName &lt;span style="color: #000066;"&gt;write&lt;/span&gt; FName&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;property&lt;/span&gt; Image&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TGraphic &lt;span style="color: #000066;"&gt;read&lt;/span&gt; FImage&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;property&lt;/span&gt; Top&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Integer&lt;/span&gt; &lt;span style="color: #000066;"&gt;read&lt;/span&gt; FTop &lt;span style="color: #000066;"&gt;write&lt;/span&gt; FTop&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;property&lt;/span&gt; Left&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Integer&lt;/span&gt; &lt;span style="color: #000066;"&gt;read&lt;/span&gt; FLeft &lt;span style="color: #000066;"&gt;write&lt;/span&gt; FLeft&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;property&lt;/span&gt; Width&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Integer&lt;/span&gt; &lt;span style="color: #000066;"&gt;read&lt;/span&gt; FWidth &lt;span style="color: #000066;"&gt;write&lt;/span&gt; FWidth&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;property&lt;/span&gt; Height&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Integer&lt;/span&gt; &lt;span style="color: #000066;"&gt;read&lt;/span&gt; FHeight &lt;span style="color: #000066;"&gt;write&lt;/span&gt; FHeigth&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;  TSpriteContainer &lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: black; font-weight: bold;"&gt;class&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;private&lt;/span&gt;&lt;br /&gt;    FSprites&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TList&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;public&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;constructor&lt;/span&gt; Create&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;destructor&lt;/span&gt; Destroy&lt;span style="color: #000066;"&gt;;&lt;/span&gt; &lt;span style="color: black; font-weight: bold;"&gt;override&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;function&lt;/span&gt; Add&lt;span style="color: #000066;"&gt;(&lt;/span&gt;ASprite&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TSprite&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Integer&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;function&lt;/span&gt; Remove&lt;span style="color: #000066;"&gt;(&lt;/span&gt;ASprite&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TSprite&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Integer&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;function&lt;/span&gt; GetSprite&lt;span style="color: #000066;"&gt;(&lt;/span&gt;ASpriteName&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;string&lt;/span&gt;&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TSprite&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;procedure&lt;/span&gt; Clear&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;property&lt;/span&gt; Sprites&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TList &lt;span style="color: #000066;"&gt;read&lt;/span&gt; FSprites&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;  TSpriteEngine &lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: black; font-weight: bold;"&gt;class&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;private&lt;/span&gt;&lt;br /&gt;    FContainer&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TSpriteContainer&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    FScreen&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TCanvas&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    FBackground&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TGraphic&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;public&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;constructor&lt;/span&gt; Create&lt;span style="color: #000066;"&gt;(&lt;/span&gt;AContainer&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TSpriteContainer&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;destructor&lt;/span&gt; Destroy&lt;span style="color: #000066;"&gt;;&lt;/span&gt; &lt;span style="color: black; font-weight: bold;"&gt;override&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;procedure&lt;/span&gt; OpenMouth&lt;span style="color: #000066;"&gt;(&lt;/span&gt;ADuration&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Integer&lt;/span&gt;&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;property&lt;/span&gt; Container&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TSpriteContainer &lt;span style="color: #000066;"&gt;read&lt;/span&gt; FContainer&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;property&lt;/span&gt; Screen&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TCanvas &lt;span style="color: #000066;"&gt;read&lt;/span&gt; FScreen &lt;span style="color: #000066;"&gt;write&lt;/span&gt; FScreen&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;implementation&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: grey; font-style: italic;"&gt;{TUtils}&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;class&lt;/span&gt; &lt;span style="color: black; font-weight: bold;"&gt;procedure&lt;/span&gt; TUtils&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;ReleaseItems&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;AList&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TList&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;while&lt;/span&gt; AList&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Count&lt;/span&gt; &amp;amp;gt&lt;span style="color: #000066;"&gt;;&lt;/span&gt; &lt;span style="color: blue;"&gt;0&lt;/span&gt; &lt;span style="color: black; font-weight: bold;"&gt;do&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #000066;"&gt;Dispose&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;AList&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;First&lt;/span&gt;&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    AList&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #000066;"&gt;Delete&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;&lt;span style="color: blue;"&gt;0&lt;/span&gt;&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  AList&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Capacity&lt;/span&gt; &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;0&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: grey; font-style: italic;"&gt;{TSprite}&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;constructor&lt;/span&gt; TSprite&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Create&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;AImgPath&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;string&lt;/span&gt;&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;  FImage &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; TBitmap&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Create&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  FImage&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;LoadFromFile&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;AImgPath&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;  Fwidth &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; FImage&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Width&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  FHeigth &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; FImage&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Height&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  FTop &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;0&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  FLeft &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;0&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;destructor&lt;/span&gt; TSprite&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Destroy&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;  FImage&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Free&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;inherited&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: grey; font-style: italic;"&gt;{TSpriteContainer}&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;constructor&lt;/span&gt; TSpriteContainer&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Create&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;  FSprites &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; TList&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Create&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;destructor&lt;/span&gt; TSpriteContainer&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Destroy&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;  FSprites&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Free&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;inherited&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;function&lt;/span&gt; TSpriteContainer&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Add&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;ASprite&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TSprite&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Integer&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;  Result &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; FSprites&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Add&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;ASprite&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;function&lt;/span&gt; TSpriteContainer&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Remove&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;ASprite&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TSprite&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Integer&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;  Result &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; Fsprites&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Remove&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;ASprite&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;function&lt;/span&gt; TSpriteContainer&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;GetSprite&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;ASpriteName&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;string&lt;/span&gt;&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TSprite&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;var&lt;/span&gt;&lt;br /&gt;  i&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Integer&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  sprite&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TSprite&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;  Result &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: black; font-weight: bold;"&gt;nil&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;for&lt;/span&gt; i &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;0&lt;/span&gt; &lt;span style="color: black; font-weight: bold;"&gt;to&lt;/span&gt; FSprites&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Count&lt;/span&gt;&lt;span style="color: #000066;"&gt;-&lt;/span&gt;&lt;span style="color: blue;"&gt;1&lt;/span&gt; &lt;span style="color: black; font-weight: bold;"&gt;do&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;    sprite &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; FSprites&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Items&lt;/span&gt;&lt;span style="color: #000066;"&gt;[&lt;/span&gt;i&lt;span style="color: #000066;"&gt;]&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;if&lt;/span&gt; sprite&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Name&lt;/span&gt; &lt;span style="color: #000066;"&gt;=&lt;/span&gt; ASpriteName &lt;span style="color: black; font-weight: bold;"&gt;then&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;      Result &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; sprite&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #000066;"&gt;Exit&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;procedure&lt;/span&gt; TSpriteContainer&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Clear&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;  TUtils&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;ReleaseItems&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;FSprites&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: grey; font-style: italic;"&gt;{TSpriteEngine}&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;constructor&lt;/span&gt; TSpriteEngine&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Create&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;AContainer&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TSpriteCOntainer&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;  FContainer &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; AContainer&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  FBackground &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; TBitmap&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Create&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  FBackground&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;LoadFromFile&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;BACKGROUND_PATH&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;destructor&lt;/span&gt; TSpriteEngine&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Destroy&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;  FBackground&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Free&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;inherited&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;procedure&lt;/span&gt; TSpriteEngine&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;OpenMouth&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;APosition&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TPoint&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  ADuration&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;integer&lt;/span&gt;&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;var&lt;/span&gt;&lt;br /&gt;  startTick&lt;span style="color: #000066;"&gt;,&lt;/span&gt; deltaTick&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Cardinal&lt;/span&gt;&lt;br /&gt;  frameDuration&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Cardinal&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  spriteIndex&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Integer&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  buffer&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TBitmap&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;  startTick &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; GetTickCount&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  spriteIndex &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;0&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  desltaTick &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;0&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  frameDuration &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; ADuration &lt;span style="color: black; font-weight: bold;"&gt;div&lt;/span&gt; FContainer&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Sprites&lt;/span&gt;&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Count&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;  buffer &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; TBitmap&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Create&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  buffer&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Width&lt;/span&gt; &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; FBackground&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Width&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  buffer&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Height&lt;/span&gt; &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; FBackground&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Height&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;while&lt;/span&gt; &lt;span style="color: #000066;"&gt;(&lt;/span&gt;deltaTick&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 12px;"&gt;Unit Main.pas terdiri dari sebuah form yang berisi sebuah control bertipe TPainBox yang berfungsi sebagai screen, dan sebuah tombol bertipe TButton. Penggalan Main.pas adalah sebagai berikut:&lt;/div&gt;&lt;div class="wp_syntax" style="border-bottom-color: silver; border-bottom-style: solid; border-bottom-width: 1px; border-image: initial; border-left-color: silver; border-left-style: solid; border-left-width: 1px; border-right-color: silver; border-right-style: solid; border-right-width: 1px; border-top-color: silver; border-top-style: solid; border-top-width: 1px; color: #110000; margin-bottom: 1.5em; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: hidden; width: 525px;"&gt;&lt;div class="code" style="padding-bottom: 2px; padding-left: 4px; padding-right: 4px; padding-top: 2px; vertical-align: top;"&gt;&lt;pre class="delphi" style="clear: none; float: none; font-size: 12px; line-height: 1.333; overflow-x: visible; overflow-y: visible; width: auto;"&gt;&lt;span style="color: black; font-weight: bold;"&gt;unit&lt;/span&gt; Main&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;interface&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;uses&lt;/span&gt; Windows&lt;span style="color: #000066;"&gt;,&lt;/span&gt; &lt;span style="color: #000066;"&gt;...,&lt;/span&gt; ExtCtrls&lt;span style="color: #000066;"&gt;,&lt;/span&gt; Sprite&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;const&lt;/span&gt;&lt;br /&gt;  IMAGES_NUMBER &lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;4&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  PLAYING_DURATION &lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;200&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  LOOP_DELAY &lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;100&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  X &lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;200&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  Y &lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;100&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;type&lt;/span&gt;&lt;br /&gt;  TformMain &lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: black; font-weight: bold;"&gt;class&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;TForm&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;br /&gt;    PaintBox&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TPaintBox&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    Button1&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TButton&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;procedure&lt;/span&gt; Button1Click&lt;span style="color: #000066;"&gt;(&lt;/span&gt;Sender&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;TObject&lt;/span&gt;&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;private&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #000066;"&gt;...&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: black; font-weight: bold;"&gt;procedure&lt;/span&gt; LoadAllImages&lt;span style="color: #000066;"&gt;(&lt;/span&gt;AContainer&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TSpriteContainer&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #000066;"&gt;...&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;implementation&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: grey; font-style: italic;"&gt;{ TformMain }&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;constructor&lt;/span&gt; TformMain&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Create&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;AOwner&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TComponent&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;inherited&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  FContainer &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; TSpriteContainer&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Create&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: grey; font-style: italic;"&gt;{ Load semua image yang akan di-raster, Kemas menjadi object&lt;br /&gt;    bertipe TSprite, kemudian simpan di dalam container menjadi&lt;br /&gt;    data yang siap raster }&lt;/span&gt;&lt;br /&gt;  LoadAllImages&lt;span style="color: #000066;"&gt;(&lt;/span&gt;FContainer&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;  FSpriteEngine &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; TSpriteEngine&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Create&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;FContainer&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  FSpriteEngine&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Screen&lt;/span&gt; &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; PaintBox&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Canvas&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #000066;"&gt;...&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;procedure&lt;/span&gt; LoadAllImages&lt;span style="color: #000066;"&gt;(&lt;/span&gt;AContainer&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TSpriteCOntainer&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;var&lt;/span&gt;&lt;br /&gt;  i&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;Integer&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  sprite&lt;span style="color: #000066;"&gt;:&lt;/span&gt; TSprite&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  spriteName&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;string&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;for&lt;/span&gt; i &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: blue;"&gt;0&lt;/span&gt; &lt;span style="color: black; font-weight: bold;"&gt;to&lt;/span&gt; IMAGES_NUMBER&lt;span style="color: #000066;"&gt;-&lt;/span&gt;&lt;span style="color: blue;"&gt;1&lt;/span&gt; &lt;span style="color: black; font-weight: bold;"&gt;do&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;    spriteName &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; &lt;span style="color: red;"&gt;'pac-'&lt;/span&gt; &lt;span style="color: #000066;"&gt;+&lt;/span&gt; &lt;span style="color: #000066;"&gt;IntToStr&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;i&lt;span style="color: #000066;"&gt;+&lt;/span&gt;&lt;span style="color: blue;"&gt;1&lt;/span&gt;&lt;span style="color: #000066;"&gt;)&lt;/span&gt; &lt;span style="color: #000066;"&gt;+&lt;/span&gt; &lt;span style="color: red;"&gt;'.bmp'&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;    sprite &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; TSprite&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Create&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;&lt;span style="color: red;"&gt;'img\'&lt;/span&gt; &lt;span style="color: #000066;"&gt;+&lt;/span&gt; spriteName&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    sprite&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Name&lt;/span&gt; &lt;span style="color: #000066;"&gt;:&lt;/span&gt;&lt;span style="color: #000066;"&gt;=&lt;/span&gt; spriteName&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    AContainer&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Add&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;sprite&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;procedure&lt;/span&gt; TFormMain&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;Button1Click&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;Sender&lt;span style="color: #000066;"&gt;:&lt;/span&gt; &lt;span style="color: #000066; font-weight: bold;"&gt;TObject&lt;/span&gt;&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;while&lt;/span&gt; &lt;span style="color: black; font-weight: bold;"&gt;True&lt;/span&gt; &lt;span style="color: black; font-weight: bold;"&gt;do&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;begin&lt;/span&gt;&lt;br /&gt;    FSpriteEngine&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;span style="color: #006600;"&gt;OpenMouth&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;Point&lt;span style="color: #000066;"&gt;(&lt;/span&gt;X&lt;span style="color: #000066;"&gt;,&lt;/span&gt; Y&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;,&lt;/span&gt; PLAYING_DURATION&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #000066;"&gt;Sleep&lt;/span&gt;&lt;span style="color: #000066;"&gt;(&lt;/span&gt;LOOP_DELAY&lt;span style="color: #000066;"&gt;)&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;span style="color: #000066;"&gt;.&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 12px;"&gt;Gambar-gambar yang akan dianimasikan adalah:&lt;/div&gt;&lt;div style="margin-bottom: 12px;"&gt;&lt;a href="http://riza.site40.net/wp-content/uploads/2007/11/pacman1.jpg" style="border-bottom-color: initial; border-bottom-style: solid; border-bottom-width: 1px; color: blue; text-decoration: none;"&gt;&lt;img alt="" class="aligncenter size-full wp-image-100" height="78" src="http://riza.site40.net/wp-content/uploads/2007/11/pacman1.jpg" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: block; margin-left: auto; margin-right: auto; max-width: 100%; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;" title="pacman" width="300" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 12px; text-align: center;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 12px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 12px;"&gt;Yang perlu diingat, code di atas hanyalah prototipe dari sprite engine sebuah dimensi dua yang memperlihatkan bagaimana memanipulasi sprite sehingga bisa menjadi gambar yang bergerak (animasi). Semoga bermanfaat dan silakan dimodifikasi sesuai dengan kebutuhan.&lt;/div&gt;&lt;div style="margin-bottom: 12px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 12px;"&gt;&lt;i&gt;&lt;u&gt;sumber : blogriza.com&lt;/u&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7973538992950313228-8485091942127576451?l=sidiqhimura.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sidiqhimura.blogspot.com/feeds/8485091942127576451/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7973538992950313228&amp;postID=8485091942127576451' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/8485091942127576451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/8485091942127576451'/><link rel='alternate' type='text/html' href='http://sidiqhimura.blogspot.com/2012/01/membuat-animasi-sederhana.html' title='Membuat Animasi Sederhana'/><author><name>Umar Sidiq</name><uri>https://profiles.google.com/102684568906885262353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-W3zbfQCIuLY/AAAAAAAAAAI/AAAAAAAAAGI/yHq5xWX8fpU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7973538992950313228.post-252274480920927395</id><published>2011-02-05T22:30:00.002+07:00</published><updated>2011-02-05T22:37:35.825+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oledb'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips  Trick Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='access'/><category scheme='http://www.blogger.com/atom/ns#' term='ms.access'/><title type='text'>conection ms.access dengan oleDB</title><content type='html'>&lt;span style="color: rgb(103, 119, 136);"&gt;procedure Tdm.DataModuleCreate(Sender: TObject);&lt;br /&gt;const&lt;br /&gt; CONNECTION_STRING = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Database Password=password;';&lt;br /&gt; DATABASE_FILE     = 'database.mdb';&lt;br /&gt;var&lt;br /&gt; path: string;&lt;br /&gt;begin&lt;br /&gt; path := ExtractFilePath(Application.ExeName);&lt;br /&gt; path := path + DATABASE_FILE;&lt;br /&gt;&lt;br /&gt; connection.ConnectionString := Format(CONNECTION_STRING, [path]);&lt;br /&gt;end;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7973538992950313228-252274480920927395?l=sidiqhimura.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sidiqhimura.blogspot.com/feeds/252274480920927395/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7973538992950313228&amp;postID=252274480920927395' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/252274480920927395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/252274480920927395'/><link rel='alternate' type='text/html' href='http://sidiqhimura.blogspot.com/2011/02/conection-msaccess-dengan-oledb.html' title='conection ms.access dengan oleDB'/><author><name>Umar Sidiq</name><uri>https://profiles.google.com/102684568906885262353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-W3zbfQCIuLY/AAAAAAAAAAI/AAAAAAAAAGI/yHq5xWX8fpU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7973538992950313228.post-7867374705772442950</id><published>2010-02-16T16:34:00.001+07:00</published><updated>2010-02-16T16:36:01.692+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ole object'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips  Trick Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='office delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='excel'/><category scheme='http://www.blogger.com/atom/ns#' term='office'/><category scheme='http://www.blogger.com/atom/ns#' term='trick'/><title type='text'>Mengontrol Ms.Excel melalui delphi</title><content type='html'>uses&lt;br /&gt;ComObj;&lt;br /&gt;&lt;br /&gt;var&lt;br /&gt;ExcelApp: OleVariant;&lt;br /&gt;&lt;br /&gt;implementation&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;const&lt;br /&gt;// SheetType&lt;br /&gt;xlChart = -4109;&lt;br /&gt;xlWorksheet = -4167;&lt;br /&gt;// WBATemplate&lt;br /&gt;xlWBATWorksheet = -4167;&lt;br /&gt;xlWBATChart = -4109;&lt;br /&gt;// Page Setup&lt;br /&gt;xlPortrait = 1;&lt;br /&gt;xlLandscape = 2;&lt;br /&gt;xlPaperA4 = 9;&lt;br /&gt;// Format Cells&lt;br /&gt;xlBottom = -4107;&lt;br /&gt;xlLeft = -4131;&lt;br /&gt;xlRight = -4152;&lt;br /&gt;xlTop = -4160;&lt;br /&gt;// Text Alignment&lt;br /&gt;xlHAlignCenter = -4108;&lt;br /&gt;xlVAlignCenter = -4108;&lt;br /&gt;// Cell Borders&lt;br /&gt;xlThick = 4;&lt;br /&gt;xlThin = 2;&lt;br /&gt;var&lt;br /&gt;ColumnRange: OleVariant;&lt;br /&gt;&lt;br /&gt;// Function to get the number of Rows in a Certain column&lt;br /&gt;&lt;br /&gt;function GetLastLine(AColumn: Integer): Integer;&lt;br /&gt;const&lt;br /&gt; xlUp = 3;&lt;br /&gt;begin&lt;br /&gt; Result := ExcelApp.Range[Char(96 + AColumn) + IntToStr(65536)].end[xlUp].Rows.Row;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;begin&lt;br /&gt;{ Start Excel }&lt;br /&gt;&lt;br /&gt;// By using GetActiveOleObject, you use an instance of Word that's already running,&lt;br /&gt;// if there is one.&lt;br /&gt;try&lt;br /&gt; ExcelApp := GetActiveOleObject('Excel.Application');&lt;br /&gt;except&lt;br /&gt; try&lt;br /&gt;   // If no instance of Word is running, try to Create a new Excel Object&lt;br /&gt;   ExcelApp := CreateOleObject('Excel.Application');&lt;br /&gt; except&lt;br /&gt;   ShowMessage('Cannot start Excel/Excel not installed ?');&lt;br /&gt;   Exit;&lt;br /&gt; end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;// Add a new Workbook, Neue Arbeitsmappe öffnen&lt;br /&gt;ExcelApp.Workbooks.Add(xlWBatWorkSheet);&lt;br /&gt;&lt;br /&gt;// Open a Workbook, Arbeitsmappe öffnen&lt;br /&gt;ExcelApp.Workbooks.Open('c:\YourFileName.xls');&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// Rename the active Sheet&lt;br /&gt;ExcelApp.ActiveSheet.Name := 'This is Sheet 1';&lt;br /&gt;&lt;br /&gt;// Rename&lt;br /&gt;ExcelApp.Workbooks[1].WorkSheets[1].Name := 'This is Sheet 1';&lt;br /&gt;&lt;br /&gt;// Insert some Text in some Cells[Row,Col]&lt;br /&gt;ExcelApp.Cells[1, 1].Value := 'SwissDelphiCenter.ch';&lt;br /&gt;ExcelApp.Cells[2, 1].Value := 'http://www.swissdelphicenter.ch';&lt;br /&gt;ExcelApp.Cells[3, 1].Value := FormatDateTime('dd-mmm-yyyy', Now);&lt;br /&gt;&lt;br /&gt;// Setting a row of data with one call&lt;br /&gt;ExcelApp.Range['A2', 'D2'].Value := VarArrayOf([1, 10, 100, 1000]);&lt;br /&gt;&lt;br /&gt;// Setting a formula&lt;br /&gt;ExcelApp.Range['A11', 'A11'].Formula := '=Sum(A1:A10)';&lt;br /&gt;&lt;br /&gt;// Change Cell Alignement&lt;br /&gt;ExcelApp.Cells[2, 1].HorizontalAlignment := xlright;&lt;br /&gt;&lt;br /&gt;// Change the Column Width.&lt;br /&gt;ColumnRange := ExcelApp.Workbooks[1].WorkSheets[1].Columns;&lt;br /&gt;ColumnRange.Columns[1].ColumnWidth := 20;&lt;br /&gt;ColumnRange.Columns[2].ColumnWidth := 40;&lt;br /&gt;&lt;br /&gt;// Change Rowheight / Zeilenhöhe ändern:&lt;br /&gt;ExcelApp.Rows[1].RowHeight := 15.75;&lt;br /&gt;&lt;br /&gt;// Merge cells, Zellen verbinden:&lt;br /&gt;ExcelApp.Range['B3:D3'].Mergecells := True;&lt;br /&gt;&lt;br /&gt;// Apply borders to cells, Zellen umrahmen:&lt;br /&gt;ExcelApp.Range['A14:M14'].Borders.Weight := xlThick; // Think line/ Dicke Linie&lt;br /&gt;ExcelApp.Range['A14:M14'].Borders.Weight := xlThin;  // Thin line Dünne Linie&lt;br /&gt;&lt;br /&gt;// Set Bold Font in cells, Fettdruck in den Zellen&lt;br /&gt;&lt;br /&gt;ExcelApp.Range['B16:M26'].Font.Bold := True;&lt;br /&gt;&lt;br /&gt;// Set Font Size, Schriftgröße setzen&lt;br /&gt;ExcelApp.Range['B16:M26'].Font.Size := 12;&lt;br /&gt;&lt;br /&gt;//right-aligned Text, rechtsbündige Textausrichtung&lt;br /&gt;ExcelApp.Cells[9, 6].HorizontalAlignment := xlright;&lt;br /&gt;&lt;br /&gt;// horizontal-aligned text, horizontale Zentrierung&lt;br /&gt;ExcelApp.Range['B14:M26'].HorizontalAlignment := xlHAlignCenter;&lt;br /&gt;&lt;br /&gt;// left-aligned Text, vertikale Zentrierung&lt;br /&gt;ExcelApp.Range['B14:M26'].VerticallyAlignment := xlVAlignCenter;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;{ Page Setup }&lt;br /&gt;&lt;br /&gt;ExcelApp.ActiveSheet.PageSetup.Orientation := xlLandscape;&lt;br /&gt;&lt;br /&gt;// Left, Right Margin (Seitenränder)&lt;br /&gt;ExcelApp.ActiveSheet.PageSetup.LeftMargin  := 35;&lt;br /&gt;ExcelApp.ActiveSheet.PageSetup.RightMargin := -15;&lt;br /&gt;&lt;br /&gt;// Set Footer Margin&lt;br /&gt;ExcelApp.ActiveSheet.PageSetup.FooterMargin := ExcelApp.InchesToPoints(0);&lt;br /&gt;&lt;br /&gt;// Fit to X page(s) wide by Y tall&lt;br /&gt;ExcelApp.ActiveSheet.PageSetup.FitToPagesWide := 1;  // Y&lt;br /&gt;ExcelApp.ActiveSheet.PageSetup.FitToPagesTall := 3; // Y&lt;br /&gt;&lt;br /&gt;// Zoom&lt;br /&gt;ExcelApp.ActiveSheet.PageSetup.Zoom := 95;&lt;br /&gt;&lt;br /&gt;// Set Paper Size:&lt;br /&gt;ExcelApp.PageSetup.PaperSize := xlPaperA4;&lt;br /&gt;&lt;br /&gt;// Show/Hide Gridlines:&lt;br /&gt;ExcelApp.ActiveWindow.DisplayGridlines := False;&lt;br /&gt;&lt;br /&gt;// Set Black &amp;amp; White&lt;br /&gt;ExcelApp.ActiveSheet.PageSetup.BlackAndWhite := False;&lt;br /&gt;&lt;br /&gt;// footers&lt;br /&gt;ExcelApp.ActiveSheet.PageSetup.RightFooter := 'Right Footer / Rechte Fußzeile';&lt;br /&gt;ExcelApp.ActiveSheet.PageSetup.LeftFooter  := 'Left Footer / Linke Fußzeile';&lt;br /&gt;&lt;br /&gt;// Show Excel Version:&lt;br /&gt;ShowMessage(Format('Excel Version %s: ', [ExcelApp.Version]));&lt;br /&gt;&lt;br /&gt;// Show Excel:&lt;br /&gt;ExcelApp.Visible := True;&lt;br /&gt;&lt;br /&gt;// Save the Workbook&lt;br /&gt;ExcelApp.SaveAs('c:\filename.xls');&lt;br /&gt;&lt;br /&gt;// Save the active Workbook:&lt;br /&gt;ExcelApp.ActiveWorkBook.SaveAs('c:\filename.xls');&lt;br /&gt;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TForm1.FormDestroy(Sender: TObject);&lt;br /&gt;begin&lt;br /&gt;// Quit Excel&lt;br /&gt;if not VarIsEmpty(ExcelApp) then&lt;br /&gt;begin&lt;br /&gt; ExcelApp.DisplayAlerts := False;  // Discard unsaved files....&lt;br /&gt; ExcelApp.Quit;&lt;br /&gt;end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;sumber : tips explorer 2007.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7973538992950313228-7867374705772442950?l=sidiqhimura.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sidiqhimura.blogspot.com/feeds/7867374705772442950/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7973538992950313228&amp;postID=7867374705772442950' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/7867374705772442950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/7867374705772442950'/><link rel='alternate' type='text/html' href='http://sidiqhimura.blogspot.com/2010/02/mengontrol-msexcel-melalui-delphi_16.html' title='Mengontrol Ms.Excel melalui delphi'/><author><name>Umar Sidiq</name><uri>https://profiles.google.com/102684568906885262353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-W3zbfQCIuLY/AAAAAAAAAAI/AAAAAAAAAGI/yHq5xWX8fpU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7973538992950313228.post-5154800017117600399</id><published>2010-02-16T16:29:00.005+07:00</published><updated>2010-02-16T16:32:56.291+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ole object'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips  Trick Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='outlook'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='office delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='office'/><category scheme='http://www.blogger.com/atom/ns#' term='trick'/><title type='text'>Mengirim email Melalui Ms.Outlook di delphi</title><content type='html'>const&lt;br /&gt; olMailItem = 0;&lt;br /&gt;var&lt;br /&gt; Outlook: OLEVariant;&lt;br /&gt; MailItem: Variant;&lt;br /&gt;begin&lt;br /&gt; try&lt;br /&gt;   Outlook:=GetActiveOleObject('Outlook.Application');&lt;br /&gt;  except&lt;br /&gt; Outlook:=CreateOleObject('Outlook.Application');&lt;br /&gt;end;&lt;br /&gt;MailItem := Outlook.CreateItem(olMailItem);&lt;br /&gt;with MailItem do begin&lt;br /&gt;Recipients.Add('delphi.guide@about.com');&lt;br /&gt;Subject := 'Subject: Outlook Mail From Delphi';&lt;br /&gt;Body := 'Welcome to my homepage: http://delphi.about.com';&lt;br /&gt;Attachments.Add('C:\Windows\Win.ini');&lt;br /&gt;Send;&lt;br /&gt;end;&lt;br /&gt;Outlook := Unassigned;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;sumber : Tips Explorer 2007&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7973538992950313228-5154800017117600399?l=sidiqhimura.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sidiqhimura.blogspot.com/feeds/5154800017117600399/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7973538992950313228&amp;postID=5154800017117600399' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/5154800017117600399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/5154800017117600399'/><link rel='alternate' type='text/html' href='http://sidiqhimura.blogspot.com/2010/02/mengirim-email-melalui-msoutlook-di.html' title='Mengirim email Melalui Ms.Outlook di delphi'/><author><name>Umar Sidiq</name><uri>https://profiles.google.com/102684568906885262353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-W3zbfQCIuLY/AAAAAAAAAAI/AAAAAAAAAGI/yHq5xWX8fpU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7973538992950313228.post-5027901884719243364</id><published>2010-01-11T14:00:00.006+07:00</published><updated>2010-01-11T14:07:55.630+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='angka'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips  Trick Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='nilai'/><category scheme='http://www.blogger.com/atom/ns#' term='huruf'/><category scheme='http://www.blogger.com/atom/ns#' term='terbilang'/><category scheme='http://www.blogger.com/atom/ns#' term='delhi'/><title type='text'>Function untuk mendapatkan nilai terbilang</title><content type='html'>function TForm1.terbilang(x: Int64): string;&lt;br /&gt; const abil : array[0..11] of string[10]=('','satu','dua','tiga', 'empat','lima','enam','tujuh','delapan','sembilan', 'sepuluh','sebelas');&lt;br /&gt;begin&lt;br /&gt;if (x &lt; 12) then Result := ' ' + abil[x] else if (x &lt; 20) then Result := Terbilang(x-10) + ' belas'&lt;br /&gt;else&lt;br /&gt;if (x &lt; 100) then Result := Terbilang(x div 10) + ' puluh' + Terbilang(x mod 10)&lt;br /&gt;else&lt;br /&gt;if (x &lt; 200) then Result := ' seratus' + Terbilang(x-100)&lt;br /&gt;else&lt;br /&gt;if (x &lt; 1000) then Result := Terbilang(x div 100) + ' ratus' + Terbilang(x mod 100)&lt;br /&gt;else&lt;br /&gt;if (x &lt; 2000) then Result := ' seribu' + Terbilang(x-1000)&lt;br /&gt;else&lt;br /&gt;if (x &lt; 1000000) then Result := Terbilang(x div 1000) + ' ribu' + Terbilang(x mod 1000)&lt;br /&gt;else&lt;br /&gt;if (x &lt; 1000000000) then Result := Terbilang(x div 1000000) + ' juta' + Terbilang(x mod 1000000)&lt;br /&gt;else&lt;br /&gt;if (x &lt; 1000000000000) then Result := Terbilang(x div 1000000000) + ' milyar'+ Terbilang(x mod 1000000000);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;keterangan..:&lt;br /&gt;  untuk variabel diatas menggunakan int64 agar jumlah angka yang di konversi bisa mencapai milyar,, jika menggunakan integer biasa maka hanya bisa digunakan sampai level juta&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7973538992950313228-5027901884719243364?l=sidiqhimura.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sidiqhimura.blogspot.com/feeds/5027901884719243364/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7973538992950313228&amp;postID=5027901884719243364' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/5027901884719243364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/5027901884719243364'/><link rel='alternate' type='text/html' href='http://sidiqhimura.blogspot.com/2010/01/function-untuk-mendapatkan-nilai.html' title='Function untuk mendapatkan nilai terbilang'/><author><name>Umar Sidiq</name><uri>https://profiles.google.com/102684568906885262353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-W3zbfQCIuLY/AAAAAAAAAAI/AAAAAAAAAGI/yHq5xWX8fpU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7973538992950313228.post-6728188831539267460</id><published>2009-10-12T12:38:00.003+07:00</published><updated>2009-10-12T12:46:53.745+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='substring'/><category scheme='http://www.blogger.com/atom/ns#' term='Mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips Trick Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='string'/><title type='text'>Penggunaan Function substring() di Query SQL</title><content type='html'>&lt;h2&gt;&lt;a href="http://blog.rosihanari.net/penggunaan-function-substring-di-query-sql" rel="bookmark" title="Tutorial Gratis Penggunaan Function substring() di Query SQL"&gt;Penggunaan Function substring() di Query SQL&lt;/a&gt;&lt;/h2&gt;   &lt;br /&gt;&lt;div id="ads"&gt; &lt;script language="javascript" type="text/javascript"&gt; &lt;!--  adonbanner_pub_id = "pub-f82df2453"; /* 125x125 top page created on 29/04/2009 */ adonbanner_ad_zone = 139;  adonbanner_ad_type = "banner"; adonbanner_ad_width = 125; adonbanner_ad_height = 125; //--&gt; &lt;/script&gt; &lt;script type="text/javascript" src="http://ads.adonbanner.com/showads.js"&gt;&lt;/script&gt;  &lt;/div&gt;       &lt;p&gt;Pada artikel ini, akan dibahas bagaimana mengambil substring dalam suatu string dari data menggunakan statement SQL. Untuk mempermudah pembahasan, kita akan mengambil studi kasus tentang data mahasiswa.&lt;/p&gt; &lt;p&gt;&lt;span id="more-37"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;Misalkan Anda diberikan data mahasiswa dalam tabel berikut ini.&lt;/p&gt; &lt;pre&gt;NIM        NAMA MAHASISWA&lt;br /&gt;M0197001   Dwi Amalia Fitriani&lt;br /&gt;M0197002   Faza Fauzan Khosiyarrohman&lt;br /&gt;M0198002   Nada Hasanah&lt;br /&gt;M0199003   Rosihan Ari Yuana&lt;br /&gt;M0199005   Ismail Hasan&lt;br /&gt;M0199006   Yusron Rizqi&lt;br /&gt;M0297003   Yohana Dwi Ariyanto&lt;br /&gt;M0298004   Subari&lt;br /&gt;M0298005   Rusmini&lt;/pre&gt; &lt;p&gt;Kemudian Anda ingin menjawab pertanyaan berikut ini:&lt;/p&gt; &lt;ol&gt;&lt;li&gt;Siapa saja mahasiswa yang berangkatan 97?&lt;/li&gt;&lt;li&gt;Berapa jumlah mahasiswa yang merupakan angkatan 99?&lt;/li&gt;&lt;li&gt;Tampilkan jumlah mahasiswa untuk setiap angkatan.&lt;/li&gt;&lt;li&gt;Tampilkan jumlah mahasiswa dari jurusan yang berkode M01 (dengan asumsi bahwa M0X menunjukkan kode Jurusan)&lt;/li&gt;&lt;li&gt;Tampilkan jumlah mahasiswa untuk setiap jurusan (M01 dan M02)&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Kalau Anda perhatikan data di atas, tidak tercantum field ANGKATAN. Haruskah field tersebut ada? Ternyata tidak harus. Untuk mendapatkan angkatan mahasiswa, Anda cukup mengambil informasi dari NIM mahasiswanya. Bagaimana caranya?&lt;/p&gt; &lt;p&gt;Tahun angkatan mahasiswa dapat dilihat pada bagian NIM, yaitu mulai pada karakter ke 4 s/d 5, sebagai contoh NIM M0197001 memiliki tahun angkatan 97. Dengan menggunakan function substring() pada SQL, Anda dapat memperoleh tahun angkatan mahasiswa tersebut.&lt;/p&gt; &lt;p&gt;Sekarang kita akan menjawab soal No 1.&lt;/p&gt; &lt;p&gt;Statement SQL untuk menjawab soal ini adalah:&lt;/p&gt; &lt;pre&gt;SELECT * FROM mhs WHERE substring(NIM, 4, 2) = '97';&lt;/pre&gt; &lt;p&gt;Maksud dari perintah substring(NIM, 4, 2) pada query di atas adalah mencari karakter 4 dan 5 dari field NIM yang sama dengan ‘97′. Maksud parameter 2 pada function tersebut menunjukkan jumlah karakter yang akan dicek (mulai dari karakter ke 4).&lt;/p&gt; &lt;p&gt;Selanjutnya akan kita bahas soal No. 2&lt;/p&gt; &lt;p&gt;Statement untuk query ini adalah:&lt;/p&gt; &lt;pre&gt;SELECT count(*) FROM mhs WHERE substring(NIM, 4, 2) = '99';&lt;/pre&gt; &lt;p&gt;Saya kira penjelasan dari query ini hampir sama dengan No. 1&lt;/p&gt; &lt;p&gt;Untuk No. 3, statement SQL nya adalah:&lt;/p&gt; &lt;pre&gt;SELECT substring(NIM, 4, 2) as Angkatan, Count(*)&lt;br /&gt;FROM mhs&lt;br /&gt;GROUP BY Angkatan;&lt;/pre&gt; &lt;p&gt;Pada soal No. 1 dan 2, function substring() terletak di bagian WHERE, sedangkan pada soal No. 3 ini, substring() terletak di klausa SELECT. Hal ini tidak ada masalah. Karena kita akan menampilkan tahun angkatan, maka berikan substring(NIM, 4, 2) di bagian SELECT. Selanjutnya tahun angkatan ini kita buat alias untuk melakukan grouping ketika melakukan perhitungan jumlah mahasiswa setiap angkatan.&lt;/p&gt; &lt;p&gt;Sedangkan untuk soal No. 4, statement SQL nya adalah:&lt;/p&gt; &lt;pre&gt;SELECT count(*) FROM mhs WHERE substring(NIM, 1, 3) = 'M01';&lt;/pre&gt; &lt;p&gt;Mengapa menggunakan substring(NIM, 1, 3)? Ya… karena untuk kode jurusan ini memiliki 3 karakter yang diawali mulai dari karakter pertama dari NIM.&lt;/p&gt; &lt;p&gt;Untuk soal terakhir, statement SQL yang Anda buat adalah:&lt;/p&gt; &lt;pre&gt;SELECT substring(NIM, 1, 3) as Jurusan, count(*) as Jumlah&lt;br /&gt;FROM mhs&lt;br /&gt;GROUP BY Jurusan&lt;/pre&gt; &lt;p&gt;Pembahasan soal No. 5 ini identik dengan No. 3&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: right;"&gt;&lt;span style="font-size:78%;"&gt;sumber: http://blog.rosihanari.net&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7973538992950313228-6728188831539267460?l=sidiqhimura.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sidiqhimura.blogspot.com/feeds/6728188831539267460/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7973538992950313228&amp;postID=6728188831539267460' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/6728188831539267460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/6728188831539267460'/><link rel='alternate' type='text/html' href='http://sidiqhimura.blogspot.com/2009/10/penggunaan-function-substring-di-query.html' title='Penggunaan Function substring() di Query SQL'/><author><name>Umar Sidiq</name><uri>https://profiles.google.com/102684568906885262353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-W3zbfQCIuLY/AAAAAAAAAAI/AAAAAAAAAGI/yHq5xWX8fpU/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7973538992950313228.post-5595656971575220027</id><published>2009-09-18T11:24:00.002+07:00</published><updated>2009-09-18T11:26:41.554+07:00</updated><title type='text'>Selamat Hari Raya Idul Fitri 1430 H</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IBFC0AqsDS4/SrML8A4OvKI/AAAAAAAAACQ/_KUy7V8ZolQ/s1600-h/1430H.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 400px;" src="http://4.bp.blogspot.com/_IBFC0AqsDS4/SrML8A4OvKI/AAAAAAAAACQ/_KUy7V8ZolQ/s400/1430H.jpg" alt="" id="BLOGGER_PHOTO_ID_5382659105293778082" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7973538992950313228-5595656971575220027?l=sidiqhimura.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sidiqhimura.blogspot.com/feeds/5595656971575220027/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7973538992950313228&amp;postID=5595656971575220027' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/5595656971575220027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/5595656971575220027'/><link rel='alternate' type='text/html' href='http://sidiqhimura.blogspot.com/2009/09/selamat-hari-raya-idul-fitri-1430-h.html' title='Selamat Hari Raya Idul Fitri 1430 H'/><author><name>Umar Sidiq</name><uri>https://profiles.google.com/102684568906885262353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-W3zbfQCIuLY/AAAAAAAAAAI/AAAAAAAAAGI/yHq5xWX8fpU/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_IBFC0AqsDS4/SrML8A4OvKI/AAAAAAAAACQ/_KUy7V8ZolQ/s72-c/1430H.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7973538992950313228.post-8907498438519199533</id><published>2008-10-19T04:12:00.001+07:00</published><updated>2008-10-19T04:14:09.727+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips Trick Delphi'/><title type='text'>Menghitung Usia Seseorang</title><content type='html'>function CalculateAge(Birthday, CurrentDate: TDate): Integer;&lt;br /&gt;var  Month, Day, Year, CurrentYear, CurrentMonth, CurrentDay: Word;&lt;br /&gt;begin &lt;br /&gt;DecodeDate(Birthday, Year, Month, Day); &lt;br /&gt;DecodeDate(CurrentDate, CurrentYear, CurrentMonth, CurrentDay);&lt;br /&gt;  if (Year = CurrentYear) and (Month = CurrentMonth) and (Day = CurrentDay) then &lt;br /&gt;begin   &lt;br /&gt;Result := 0;  end  else  begin    Result := CurrentYear - Year;    if (Month &gt; CurrentMonth) then     &lt;br /&gt;Dec(Result)    else    begin      if Month = CurrentMonth then        if (Day &gt; CurrentDay) then          Dec(Result);   &lt;br /&gt;end; &lt;br /&gt;end;&lt;br /&gt;end;&lt;br /&gt;procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;begin &lt;br /&gt;Label1.Caption := Format('Your age is %d', [CalculateAge(StrToDate('01.01.1903'), Date)]);&lt;br /&gt;end;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7973538992950313228-8907498438519199533?l=sidiqhimura.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sidiqhimura.blogspot.com/feeds/8907498438519199533/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7973538992950313228&amp;postID=8907498438519199533' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/8907498438519199533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/8907498438519199533'/><link rel='alternate' type='text/html' href='http://sidiqhimura.blogspot.com/2008/10/menghitung-usia-seseorang.html' title='Menghitung Usia Seseorang'/><author><name>Umar Sidiq</name><uri>https://profiles.google.com/102684568906885262353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-W3zbfQCIuLY/AAAAAAAAAAI/AAAAAAAAAGI/yHq5xWX8fpU/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7973538992950313228.post-7915510494846777109</id><published>2008-10-11T18:54:00.001+07:00</published><updated>2008-10-11T18:55:15.756+07:00</updated><title type='text'>Pengambilan dan Penyimpanan Data Blob</title><content type='html'>Untuk sisi aplikasi, ada 2 cara penyimpanan dan pengambilan data BLOB ini. Cara pertama menggunakan persistent field, i.e. kamu buat field2 di dataset kamu menggunakan Fields Editor (double klik dataset kamu aja, pasti tampil), dan cara kedua dengan dynamic field.&lt;br /&gt;Secara umum cara pertama lebih mudah. Berikut kodenya:&lt;br /&gt;&lt;br /&gt;(*************************************************************************&lt;br /&gt;Diasumsikan ada ADODataset bernama tblMyFiles yang berisi 3 buah persistent field&lt;br /&gt;bernama tblMyFilesID (utk field bernama 'ID'), tblMyFilesName (utk field bernama 'Name'),&lt;br /&gt;dan tblMyFilesBin (utk field bernama 'Bin')&lt;br /&gt;Field 'ID' cuma buat identity saja (primary key) bertipe int(eger)&lt;br /&gt;Field 'Name' buat nampung nama aslinya file yang disimpan&lt;br /&gt;Field 'Bin' buat nampung isi file&lt;br /&gt;*************************************************************************)&lt;br /&gt;&lt;br /&gt;// AFileName harus sudah berisi nama file yang valid yang ingin disimpan di database&lt;br /&gt;Procedure TForm1.StoreMyFile(Const AFileName: String);&lt;br /&gt;Begin&lt;br /&gt;// anggap lah kita mau nambah reccord baru, utk yang lain pake edit&lt;br /&gt;tblMyFiles.Append;&lt;br /&gt;// simpan nama asli file ybs, strip the path portion&lt;br /&gt;tblMyFilesName.Value := ExtractFileName(AFileName);&lt;br /&gt;&lt;br /&gt;// simpan isi file nya&lt;br /&gt;tblMyFilesBin.LoadFromFile(AFileName)&lt;br /&gt;// simpan&lt;br /&gt;tblMyFiles.CheckBrowseMode;&lt;br /&gt;End;&lt;br /&gt;&lt;br /&gt;// Di sini kita mengambil isi field 'Bin' dari record yang sedang aktif dan&lt;br /&gt;// mengembalikannya sebagai file di direktori 'C:\MyFiles'&lt;br /&gt;Procedure TForm1.GetMyFile;&lt;br /&gt;Begin&lt;br /&gt;tblMyFilesBin.SaveToFile('C:\MyFiles\' + tblMyFilesName.Value);&lt;br /&gt;End;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cara kedua sedikit ribet, melibatkan penggunakan Stream (TADOBlobStream, atau kombinasi TBlobStream dan TFileStream), hanya bermanfaat jika kamu tidak mau menggunakan metode Persistent Field. Seperti pada kasus penggunaan sebuah dataset secara bersama. Dimana tipe2 field yang akan diambil tidak bisa langsung ditentukan pada saat design-time.&lt;br /&gt;&lt;br /&gt;Contoh:&lt;br /&gt;Procedure TForm1.StoreMyFile(Const AFileName: String);&lt;br /&gt;Var&lt;br /&gt;vBlob: TADOBlobStream;&lt;br /&gt;Begin&lt;br /&gt;// anggap lah kita mau nambah reccord baru, utk yang lain pake edit&lt;br /&gt;tblMyFiles.Append;&lt;br /&gt;// simpan nama asli file ybs, strip the path portion&lt;br /&gt;tblMyFiles.FieldByName('Name').Value := AFileName&lt;br /&gt;&lt;br /&gt;// simpan isi file nya&lt;br /&gt;vBlob := TADOBlobStream.Create(tblMyFiles.FieldByName('Bin') AS TBlobField, bmWrite);&lt;br /&gt;Try&lt;br /&gt;vBlob.LoadFromFile(AFileName);&lt;br /&gt;Finally&lt;br /&gt;vBlob.Free;&lt;br /&gt;End;&lt;br /&gt;&lt;br /&gt;// simpan&lt;br /&gt;tblMyFiles.CheckBrowseMode;&lt;br /&gt;End;&lt;br /&gt;&lt;br /&gt;// Di sini kita mengambil isi field 'Bin' dari record yang sedang aktif dan&lt;br /&gt;// mengembalikannya sebagai file di direktori 'C:\MyFiles'&lt;br /&gt;Procedure TForm1.GetMyFile;&lt;br /&gt;Var&lt;br /&gt;vBlob: TADOBlobStream;&lt;br /&gt;Begin&lt;br /&gt;vBlob := TADOBlobStream.Create(tblMyFiles.FieldByName('Bin') AS TBlobField, bmRead);&lt;br /&gt;Try&lt;br /&gt;vBlob.SaveToFile('C:\MyFiles\' + tblMyFiles.FieldByName('Name').AsString);&lt;br /&gt;Finally&lt;br /&gt;vBlob.Free;&lt;br /&gt;End;&lt;br /&gt;End;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7973538992950313228-7915510494846777109?l=sidiqhimura.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sidiqhimura.blogspot.com/feeds/7915510494846777109/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7973538992950313228&amp;postID=7915510494846777109' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/7915510494846777109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/7915510494846777109'/><link rel='alternate' type='text/html' href='http://sidiqhimura.blogspot.com/2008/10/pengambilan-dan-penyimpanan-data-blob.html' title='Pengambilan dan Penyimpanan Data Blob'/><author><name>Umar Sidiq</name><uri>https://profiles.google.com/102684568906885262353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-W3zbfQCIuLY/AAAAAAAAAAI/AAAAAAAAAGI/yHq5xWX8fpU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7973538992950313228.post-4620933232020773102</id><published>2008-10-11T18:50:00.001+07:00</published><updated>2008-10-11T18:54:16.623+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips  Trick Delphi'/><title type='text'>Mengkonversikan Stream</title><content type='html'>Begin&lt;br /&gt;jika anda sering bermasalah dalam menggunakan stream, berikut ada beberapa rutin yang biasa saya gunakan untuk mengkonversikan stream.&lt;br /&gt;&lt;br /&gt;//Stream Convertion&lt;br /&gt;&lt;br /&gt;{** File to String **}&lt;br /&gt;function filetostring(afilename:string):string;&lt;br /&gt;var fl:TFileStream;&lt;br /&gt;begin&lt;br /&gt; fl:=TFileStream.Create(afilename,fmOpenRead or fmShareCompat);&lt;br /&gt; SetLength(result,fl.Size);&lt;br /&gt; fl.Read(result[1],fl.Size);&lt;br /&gt; fl.Free;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;{** String to File **}&lt;br /&gt;procedure stringtofile(acontent,afilename:string);&lt;br /&gt;var fl:TFileStream;&lt;br /&gt;begin&lt;br /&gt; fl:=TFileStream.Create(afilename,fmOpenWrite or fmCreate);&lt;br /&gt; fl.Write(acontent[1],length(acontent));&lt;br /&gt; fl.Free;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;{** Stream to String **}&lt;br /&gt;function stringtofile(adata:TStream):string;&lt;br /&gt;var str:TStringStream;&lt;br /&gt;    s:string;&lt;br /&gt;begin&lt;br /&gt; str:=TStringStream.Create(s);&lt;br /&gt; str.CopyFrom(adata,adata.size);&lt;br /&gt; result:=str.datastring;&lt;br /&gt; str.free;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;{** String to Stream **}&lt;br /&gt;procedure stringtofile(s:String;adata:TStream);&lt;br /&gt;var str:TStringStream;&lt;br /&gt;begin&lt;br /&gt; str:=TStringStream.Create(s);&lt;br /&gt; adata.CopyFrom(str,str.size);&lt;br /&gt; str.free;&lt;br /&gt; result:=str.datastring;&lt;br /&gt; str.free;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;End;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7973538992950313228-4620933232020773102?l=sidiqhimura.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sidiqhimura.blogspot.com/feeds/4620933232020773102/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7973538992950313228&amp;postID=4620933232020773102' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/4620933232020773102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/4620933232020773102'/><link rel='alternate' type='text/html' href='http://sidiqhimura.blogspot.com/2008/10/mengkonversikan-stream.html' title='Mengkonversikan Stream'/><author><name>Umar Sidiq</name><uri>https://profiles.google.com/102684568906885262353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-W3zbfQCIuLY/AAAAAAAAAAI/AAAAAAAAAGI/yHq5xWX8fpU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7973538992950313228.post-7617875957649852324</id><published>2008-10-08T10:59:00.001+07:00</published><updated>2008-10-08T11:22:20.881+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips  Trick Delphi'/><title type='text'>save file dalam network</title><content type='html'>No 1. Bisa menggunakan fungsi yang udah ada di SysUtils&lt;br /&gt;&lt;br /&gt;            function ExtractFileName(const FileName: string): string;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;No 2. Salah satunya bisa dengan cara ini (perlu dikembangakan untuk meng copy *.exe) :&lt;br /&gt;&lt;br /&gt;procedure TForm.CopyFile(AFileName: string);&lt;br /&gt;var&lt;br /&gt;    hnd : THandle;&lt;br /&gt;    sTarget: string;&lt;br /&gt;begin&lt;br /&gt;    sTarget := '\192.168.0.1\sharedfolder\' + AFileName;&lt;br /&gt;    screen.Cursor := crHourGlass;&lt;br /&gt;    if not CopyFile(PansiChar(AFileName), PansiChar(sTarget), False) then&lt;br /&gt;    begin&lt;br /&gt;        MessageDlg('Gagal meng-&lt;b style="color: rgb(255, 163, 79);"&gt;copy&lt;/b&gt; &lt;b style="color: rgb(255, 163, 79);"&gt;file&lt;/b&gt; :' + AFileName, mtError, [mbOK], 0);&lt;br /&gt;        Exit;&lt;br /&gt;  end;&lt;br /&gt;    Screen.Cursor := crDefault;&lt;br /&gt;end;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7973538992950313228-7617875957649852324?l=sidiqhimura.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sidiqhimura.blogspot.com/feeds/7617875957649852324/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7973538992950313228&amp;postID=7617875957649852324' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/7617875957649852324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7973538992950313228/posts/default/7617875957649852324'/><link rel='alternate' type='text/html' href='http://sidiqhimura.blogspot.com/2008/10/save-file-dalam-network.html' title='save file dalam network'/><author><name>Umar Sidiq</name><uri>https://profiles.google.com/102684568906885262353</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-W3zbfQCIuLY/AAAAAAAAAAI/AAAAAAAAAGI/yHq5xWX8fpU/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
