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;
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.Brush.Color
Warna arsiran (Brush) dapat juga didefinisikan dengan property color milik Canvas.Brush.
Contoh:
Canvas.Brush.Color := clRed;
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;
0 comments:
Posting Komentar