Menggambar Kotak Dengan Rectangle

Saya sering melihat, jarang programmer-programmer saat ini yang mendalami masalah grafik. Di jaman saya mempelajari bahasa program pertama kali, tahun 1988, salah satu yang menarik saya justru grafik. Waktu itu memakai bahasa program BASIC.  Mungkin karena saat ini sistem operasi berbasis windows, sehingga grafik hal yang biasa saja. Padahal mendalami grafik juga  mendukung kita memahami komponen-komponen yang "bisa digambari". Dengan demikian program kita lebih menarik.

Delphi menggambar sesuatu pada form lewat event OnPaint. Even ini dipanggil saat ada instruksi invalidate. Sehingga kita meletakkan invalidate pada saat form "diotak-atik", yaitu di Resize.

Untuk menggambar kotak persegi (baik persegi panjang maupun kotak tergantun ukuran panjang lebar), kita membutuhkan fungsi Rectangle milik TCanvas.

Kita membutuhkan empat parameter. 2 parameter pertama adalah koordinat kiri atas. Sedangkan dua sisanya adalah koordinat kanan bawah.

canvas.Rectangle( 0,0, 50, 50);

Canvas.Pen.Color
Jika diingkan, Anda juga bisa menggambar dengan "tinta" selain hitam seperti diatas. Untuk keperluan ini, kita menggunakan kostanta warna seperti clRed, clBlue, atau clGreen. Contoh, source code diatas pada bagian FormPaint saya ubah seperti dibawah ini untuk menggunakan warna merah.

procedure TForm1.FormPaint(Sender: TObject);
var
    i, x : integer;
begin
    Canvas.Pen.Color := clRed;
    for x := 1 to 10 do begin
        i := x * 10;
        canvas.Rectangle( i,i, ClientWidth - i,  ClientHeight - i);
    end;
end;


Canvas.Pen.Width
Besar garis juga bisa diatur dengan Property Width milik Canvas.Pen.
Contoh:
Canvas.Pen.Width := 5;

Contoh  program dibawah ini akan menggambar lima kotak yang berlainan ukuran, dimulai dari yang terbesar sampai yang terkecil. Total sebanyak 10 kotak. Masing-masing kotak akan berselisih 10 dari sebelumnya, dengan besar garis 5 dan berwarna merah

procedure TForm1.FormPaint(Sender: TObject);
var
    i, x : integer;
begin
  Canvas.Pen.Color := clRed;
  Canvas.Pen.Width := 5;  
  for x := 1 to 10 do begin
        i := x * 10;
        canvas.Rectangle( i,i, ClientWidth - i,  ClientHeight - i);
    end;
end;

procedure TForm1.FormResize(Sender: TObject);
begin
  invalidate;
end;


Canvas.Pen.Style
Secara default, bentuk garis adalah psSolid. Anda bisa mengganti garis solid menjadi bermacam-macam dengan berbagai bentuk, semisal: psDash, psDashDot, psDashDotDot, psDot, psClear, psInsideFrame. Namun perlu diingat, Style hanya bisa terlihat jika Width := 1. Lebih dari ini, tak akan terlihat.
Contoh:
Canvas.Pen.Style := psDash;

Canvas.Brush.Style
Kita dapat mengarsir daerah kotak dengan memanfaatkan fungsi Brush. Ada berbagai bentuk arsiran, yaitu: bsSolid, bsDiagonal, bsFDiagonal, bsHorizontal, bsVertical, bsCross, bsDiagCross, dan bsClear.

Canvas.Brush.Color
Warna arsiran (Brush) dapat juga didefinisikan dengan property color milik Canvas.Brush.
Contoh:
Canvas.Brush.Color := clRed;

Pada program dibawah ini, saya akan menggambar satu kotak dengan arsiran bsBDiagonal, dan bentuk garis psDot.


procedure TForm1.FormPaint(Sender: TObject);
var
    i, x : integer;
begin
    Canvas.Pen.Color := clRed;
    Canvas.Pen.Width := 1;
    Canvas.Pen.Style := psDot;
    Canvas.Brush.Style := bsBDiagonal;
    Canvas.Brush.Color := clBlue;
    canvas.Rectangle( 10,10, ClientWidth - 10,  ClientHeight - 10);
end;

Menggambar Kotak Dengan Rectangle Rating: 4.5 Diposkan Oleh: Good Dreamer

0 comments:

Posting Komentar

Diberdayakan oleh Blogger.