Monday, April 2, 2012

Shape di Delphi

Shape adalah sebuah object berupa bentuk-bentuk dasar di Delphi.

Di Delphi ada beberapa cara untuk menggambar; diantaranya menggunakan Shape. Cara lain menggunakan canvas dengan perintah moveto+lineto+fill. Meskipun cara terakhir menawarkan felkesibilitas bentuk yang tinggi, mereka tidak dapat digerakkan dengan mudah; kita harus menghapus dan membuat lagi dari awal.



Shape dapat dengan mudah digerakkan karena memiliki properties top dan left. Berikut adalah cara menggerakkan sebuah Shape dengan fitur kecepatan dan percepatan serta sebuah tombol toggle jalan/stop.

Buat aplikasi baru, letakkan dua edit, satu shape dan satu button.

Berikut adalah perintah lengkapnya.
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Shape1: TShape;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  jalan:boolean;
  ax,vx,xx,dt:real;
implementation

{$R *.dfm}

procedure proses;
begin
  xx:=xx+vx*dt;
  vx:=vx+ax*dt;
  with form1 do begin
    edit2.Text:=floattostr(vx);
    shape1.Left:=round(xx);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  jalan:=false;
  edit1.Text:='0';
  edit2.Text:='1';
  dt:=0.1;
  button1.Caption:='jalan';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  jalan:=not(jalan);
  ax:=strtofloat(edit1.Text);
  vx:=strtofloat(edit2.Text);
  xx:=shape1.left;
  if jalan=true then button1.Caption:='stop' else button1.Caption:='jalan';
  while jalan=true do begin
    proses;
    application.ProcessMessages;
    sleep(100);
  end;
end;

end.