Sabtu, 14 Mei 2011

membuat animasi berjalan pada delphy


Listing program

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
Tanimasi = class(TForm)
txtInput: TEdit;
btngo: TButton;
tAnimasi: TTimer;
    tAnimasi2: TTimer;
    tAnimasi3: TTimer;
    tAnimasi4: TTimer;
    Label1: TLabel;
btnstop: TButton;
procedurebtngoClick(Sender: TObject);
proceduretAnimasiTimer(Sender: TObject);
procedure tAnimasi2Timer(Sender: TObject);
procedure tAnimasi3Timer(Sender: TObject);
procedure tAnimasi4Timer(Sender: TObject);
procedurebtnstopClick(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
animasi: Tanimasi;
  lblAnimasi1: array of TLabel;
lblAnimasi2 :array of TLabel;
lblAnimasi3 :array of TLabel;
lblAnimasi4 :array of TLabel;
size :Integer;

implementation

{$R *.dfm}

procedureTanimasi.btngoClick(Sender: TObject);
vari,j,k,l : Integer;
begin
size :=Length(txtInput.Text);
SetLength(lblAnimasi1, size);
for i := 0 to size -1 do begin
lblAnimasi1[i]:=TLabel.Create(animasi);
with lblAnimasi1[i] do begin
Top :=110;
  Left :=(i*20)+192;
width :=75;
Parent :=animasi;
Caption :=txtInput.Text[i+1];
font.Style := [fsBold];
end;
end;

size :=Length(txtInput.Text);
setlength (lblAnimasi2, size);
for j := 0 to size -1 do begin
lblAnimasi2[j] :=TLabel.Create(animasi);
with lblAnimasi2[j] do begin
top:=110;
left:=(j*20)+182;
width:=75;
parent:=animasi;
Caption :=txtInput.Text[j+1];
font.Style:=[fsBold];
end;
end;

size :=Length(txtInput.Text);
SetLength(lblAnimasi3, size);
for k := 0 to size -1 do begin
lblAnimasi3[k]:=TLabel.Create(animasi);
with lblAnimasi3[k] do begin
  Top :=(k*20)+60;
Left :=180;
width :=75;
Parent :=animasi;
Caption :=txtInput.Text[k+1];
font.Style := [fsBold];
end;
end;

size :=Length(txtInput.Text);
SetLength(lblAnimasi4, size);
for l := 0 to size -1 do begin
lblAnimasi4[l]:=TLabel.Create(animasi);
with lblAnimasi4[l] do begin
  Top :=(l*20)+60;
Left :=180;
width :=75;
Parent :=animasi;
Caption :=txtInput.Text[l+1];
font.Style := [fsBold];
end;
end;

btngo.Enabled:=false;
tAnimasi.Enabled:=true;
   tAnimasi2.Enabled:=true;
   tAnimasi3.Enabled:=true;
   tAnimasi4.Enabled:=true;

end;
procedureTanimasi.tAnimasiTimer(Sender: TObject);
var i: Integer;
begin
for i :=0 to size -1 do begin
with lblAnimasi1[i] do begin
font.Color :=RGB (Random(255), Random (255), Random(255));
left :=left+1;
if left = animasi.Width then left :=1;
end;
end;
end;
procedure Tanimasi.tAnimasi2Timer(Sender: TObject);
var j :integer;
begin
for j := 0 to size -1 do begin
with lblAnimasi2[j] do begin
font.Color := RGB (Random(210), random(210), random(210));
left := left-1;
if left =animasi.Width then left :=1;
end;
end;
end;

procedure Tanimasi.tAnimasi3Timer(Sender: TObject);
var k :integer;
begin
for k := 0 to size -1 do begin
with lblAnimasi3[k] do begin
font.Color := RGB (Random(200), random(200), random(200));
top := top+1;
if top =animasi.Width then top :=1;
end;
end;
end;

procedure Tanimasi.tAnimasi4Timer(Sender: TObject);
var l :integer;
begin
for l :=0 to size -1 do begin
with lblAnimasi4[l] do begin
font.Color := RGB (random (270), random(270), random(270));
top := top-1;
if top=animasi.Width then top :=1;
end;
end;
end;


procedureTanimasi.btnstopClick(Sender: TObject);
begin
btngo.Enabled:=true;
tAnimasi.Enabled:=false;
   tAnimasi2.Enabled:=false;
   tAnimasi3.Enabled:=false;
   tAnimasi4.Enabled:=false;
end;

end.

Logika Program

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;
Statement inimaksudnyamenjelaskannama unit yang digunakanuntukmembuatprogram,contohnyapada program inimenggunakannama unit Unit1.
type
Tanimasi = class(TForm)
txtInput: TEdit;
btngo: TButton;
tAnimasi: TTimer;
    tAnimasi2: TTimer;
    tAnimasi3: TTimer;
    tAnimasi4: TTimer;
    Label1: TLabel;
btnstop: TButton;
procedurebtngoClick(Sender: TObject);
proceduretAnimasiTimer(Sender: TObject);
procedure tAnimasi2Timer(Sender: TObject);
procedure tAnimasi3Timer(Sender: TObject);
procedure tAnimasi4Timer(Sender: TObject);
procedurebtnstopClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Statement inimenjelaskantentang component-component yang digunakanbesertanama yang digunakanpadamasing-masing component tersebut,danjugaprosedur yang digunakanpada component tersebutcontohnya component TButton 1 memilikinamabtngodanseterusnya.sehingga program dapatmemilikiprosedur yang jelasketikamengeksekusisetiap component tersebut,danjugamendeklarasikanbahwa program inimempunyai program yang mempunyai identifier private dan public.
var
animasi: Tanimasi;
  lblAnimasi1: array of TLabel;
lblAnimasi2 :array of TLabel;
lblAnimasi3 :array of TLabel;
lblAnimasi4 :array of TLabel;
size :Integer;
implementation

{$R *.dfm}
Statement  diatasmaksudnyamenjelaskantentangpendeklarasiandari component timer yang memilikitipe data array danmendeklarasikan variable-variabelnya,sehinggadari statement diatasbisakitalihatkitamemiliki 4 componenettimer,yangberukuran data integer ataubilanganbulat.
procedureTanimasi.btngoClick(Sender: TObject);
vari,j,k,l : Integer;
begin
size :=Length(txtInput.Text);
SetLength(lblAnimasi1, size);
for i := 0 to size -1 do begin
lblAnimasi1[i]:=TLabel.Create(animasi);
with lblAnimasi1[i] do begin
Top :=110;
  Left :=(i*20)+192;
width :=75;
Parent :=animasi;
Caption :=txtInput.Text[i+1];
font.Style := [fsBold];
end;
end;
Maksud statement diatasadalahmenjelaskantentang procedure yang bisadilakukanolehbtngoselanjutnyamendeklarasikan variable I,j,kdan l dengantipe data integeryang dideklarasikandengan timer yang memilikinama lblAnimasi1..lalu masukkeblok statement yaitupertamamengambil text yang terdapatpada component txtInput,kemudianmensetpada component timer1.berikutnya membuatperulangan for do yang dimulaidari 0 sampai -1,selanjutnya mensetletakdari program berjalanituakanakandimulaidarimana,sepertiposisiatasbawah,lebardan lain-lain yang sebelumnyasudah di input pada label txtInput.
size :=Length(txtInput.Text);
setlength (lblAnimasi2, size);
for j := 0 to size -1 do begin
lblAnimasi2[j] :=TLabel.Create(animasi);
with lblAnimasi2[j] do begin
top:=110;
left:=(j*20)+182;
width:=75;
parent:=animasi;
Caption :=txtInput.Text[j+1];
font.Style:=[fsBold];
end;
end;
Maksud statement diatasadalahmengambil data yang kitainputkanpada label txtInputdanmendeklarasikannyapada timer yang bernama lblAnimasi2,berikutnya membuatperulangan for do yang dimulaidari 0 sampai -1,selanjutnya mensetletakdari program berjalanituakanakandimulaidarimana,sepertiposisiatasbawah,lebardan lain-lain yang sebelumnyasudah di input pada label txtInput.
size :=Length(txtInput.Text);
SetLength(lblAnimasi3, size);
for k := 0 to size -1 do begin
lblAnimasi3[k]:=TLabel.Create(animasi);
with lblAnimasi3[k] do begin
  Top :=(k*20)+60;
Left :=180;
width :=75;
Parent :=animasi;
Caption :=txtInput.Text[k+1];
font.Style := [fsBold];
end;
end;
Maksud statement diatasadalahmengambil data yang kitainputkanpada label txtInputdanmendeklarasikannyapada timer yang bernama lblAnimasi3,berikutnya membuatperulangan for do yang dimulaidari 0 sampai -1,selanjutnya mensetletakdari program berjalanituakanakandimulaidarimana,sepertiposisiatasbawah,lebardan lain-lain yang sebelumnyasudah di input pada label txtInput.

size :=Length(txtInput.Text);
SetLength(lblAnimasi4, size);
for l := 0 to size -1 do begin
lblAnimasi4[l]:=TLabel.Create(animasi);
with lblAnimasi4[l] do begin
  Top :=(l*20)+60;
Left :=180;
width :=75;
Parent :=animasi;
Caption :=txtInput.Text[l+1];
font.Style := [fsBold];
end;
end;
Maksud statement diatasadalahmengambil data yang kitainputkanpada label txtInputdanmendeklarasikannyapada timer yang bernama lblAnimasi4,berikutnya membuatperulangan for do yang dimulaidari 0 sampai -1,selanjutnya mensetletakdari program berjalanituakanakandimulaidarimana,sepertiposisiatasbawah,lebardan lain-lain yang sebelumnyasudah di input pada label txtInput.
btngo.Enabled:=false;
tAnimasi.Enabled:=true;
   tAnimasi2.Enabled:=true;
   tAnimasi3.Enabled:=true;
   tAnimasi4.Enabled:=true;
End;
Statement diatasmaksudnyakitaharusmensetsetiap timer menjadi enabled dan true sehinggaobjek yang kitainginkanbisaberjalan,jikatidakmakaobjek-objektersebutakandiamsaja.
procedureTanimasi.tAnimasiTimer(Sender: TObject);
var i: Integer;
begin
for i :=0 to size -1 do begin
with lblAnimasi1[i] do begin
font.Color :=RGB (Random(255), Random (255), Random(255));
left :=left+1;
if left = animasi.Width then left :=1;
end;
end;
end;
Maksud statement diatasadalahmenjelaskantentang procedure atauaksi yang dapatdilakukanpada timer yang bernama animasi1 yang dideklarasikanpada variable I danbertipe data integer,kemudianmasukkeblok statement yaitumelakukanperulangan for to do dari 0 sampi -1,berikutnya timer yang bernama lblAnimasi1 inidiberikanaksisepertidapatberubahdalam 3 warnadanjugadapatbergerakkekanankarenaleftnyabernilai +1

procedure Tanimasi.tAnimasi2Timer(Sender: TObject);
var j :integer;
begin
for j := 0 to size -1 do begin
with lblAnimasi2[j] do begin
font.Color := RGB (Random(210), random(210), random(210));
left := left-1;
if left =animasi.Width then left :=1;
end;
end;
end;
Maksud statement diatasadalahmenjelaskantentang procedure atauaksi yang dapatdilakukanpada timer yang bernama animasi2 yang dideklarasikanpada variable jdanbertipe data integer,kemudianmasukkeblok statement yaitumelakukanperulangan for to do dari 0 sampi -1,berikutnya timer yang bernama lblAnimasi2inidiberikanaksisepertidapatberubahdalam 3 warnadanjugadapatbergerakkekirikarenaleftnyabernilai -1.
procedure Tanimasi.tAnimasi3Timer(Sender: TObject);
var k :integer;
begin
for k := 0 to size -1 do begin
with lblAnimasi3[k] do begin
font.Color := RGB (Random(200), random(200), random(200));
top := top+1;
if top =animasi.Width then top :=1;
end;
end;
end;
Maksud statement diatasadalahmenjelaskantentang procedure atauaksi yang dapatdilakukanpada timer yang bernama animasi3 yang dideklarasikanpada variable kdanbertipe data integer,kemudianmasukkeblok statement yaitumelakukanperulangan for to do dari 0 sampi -1,berikutnya timer yang bernama lblAnimasi3inidiberikanaksisepertidapatberubahdalam 3 warnadanjugadapatbergerakkebawahkarena top nya  bernilai+1.
procedure Tanimasi.tAnimasi4Timer(Sender: TObject);
var l :integer;
begin
for l :=0 to size -1 do begin
with lblAnimasi4[l] do begin
font.Color := RGB (random (270), random(270), random(270));
top := top-1;
if top=animasi.Width then top :=1;
end;
end;
end;
Maksud statement diatasadalahmenjelaskantentang procedure atauaksi yang dapatdilakukanpada timer yang bernama animasi4 yang dideklarasikanpada variable ldanbertipe data integer,kemudianmasukkeblok statement yaitumelakukanperulangan for to do dari 0 sampi -1,berikutnya timer yang bernama lblAnimasi4inidiberikanaksisepertidapatberubahdalam 3 warnadanjugadapatbergerakkeataskarena top nyabernilai -1.
procedureTanimasi.btnstopClick(Sender: TObject);
begin
btngo.Enabled:=true;
tAnimasi.Enabled:=false;
   tAnimasi2.Enabled:=false;
   tAnimasi3.Enabled:=false;
   tAnimasi4.Enabled:=false;
end;

end.
Statement diatasdigunakanuntukmembuat procedure berhentpadaprogram,yangharusdisetseperticontohdiatas,sehinggaketikakitaklik STOP maka timer animasi1 sampai 4 akanbernilai false sehinggaobjek-objek pun akanberhenti

Tidak ada komentar:

Posting Komentar