Select Page

Rasanya membuat program berbasis GUI tanpa kemampuan drag & drop seperti tidak menarik pengguna, walaupun drag drop merupakan opsional gimick supaya terlihat keren. Tadinya saya berfikir drag & drop tidak penting karena saya juga berfikir bagaimana cara membuat program yang memiliki kemampuan drag & drop? Apakah cukup sulit? Ternyata setelah menjelajahi dunia maya, tidaklah sesulit yang saya bayangkan. Lazarus Free Pascal telah menyiapkan programan yang memiliki kemampuan drag & drop.

Artikel ini merupakan contoh program drag and drop pertama saya menggunakan Lazarus Free Pascal. Saya membuat program dimana komponen memo akan berubah warna jika TLabel berwarna di drag & drop ke TMemo.

Pertama, siapkan beberapa TLabel dengan merubah warnanya sesuai keinginan.

TLabel.Color:= clRed;

Dan ubah mode drag menajdi auto

Tlabel. DragMode:= dmAutomatic;

Kedua, siapkan TMemo yang menjadi target drag & drop. Kemudian, tambahkan event terkait drag & drop sebagai berikut.

Prosedur Dragover  dibawah akan mengizinkan Memo menerima TLabel sebagai source.

procedure TForm1.Memo1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept := Source is TLabel;
end;

Selanjutnya setelah TLabel diterima oleh prosedur DragOver, maka tambahkan prosedur DragDrop agar properti warna TLabel dapat mengubah warna pada Memo.

procedure TForm1.Memo1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  (Sender As TMemo).Color := (Source As TLabel).Color;
end;

atau bisa juga langsung mengarahkan pada Memo1.

procedure TForm1.Memo1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  Memo1.Color:= (Source As TLabel).Color;
end; 

Selama mencoba. Selengkapnya bisa unduh contoh program drag & drop pertama saya menggunakan Lazarus Free Pascal disini.