Sabtu, 18 Desember 2010

0

[Delphi] Membuat Form Cantik Dengan Delphi

  • Sabtu, 18 Desember 2010
  • Nurkholish Ardi Firdaus
  • Share
  • Form merupakan bingkai dasar dari sebuah aplikasi yang umumnya berbasis GUI (Graphic User Interface). Form standar atau form tradisionil umumnya berbentuk kotak. Bagi seseorang yang dinamis dan berjiwa seni tinggi tentu akan bosan dengan design form seperti ini. Salah satu cara untuk memodifikasi bentuk form adalah dengan menggunakan region. Fungsi HRGN atau region dapat memodifikasi bentuk form menjadi model roundrect, rectangular, elliptical, polygonal dan sejenisnya berikut kombinasi bentuk-bentuk dasar tersebut (combinergn). Setelah lama bergelut dengan region, saya menemui kendala yaitu akan cukup sulit menggunakan region bila bentuk form yang akan kita buat tidak sama dengan bentuk dasar ataupun kombinasi dari region. Selain itu waktu yang dibutuhkan juga cukup lama. Lalu saya memutuskan untuk mencari komponen yang dapat merubah form standar. Setelah mencari kemana-mana akhirnya saya menemukan komponen dxfShapedForm, bagian dari ExpressForumLibrary(tm) Componen Suite yang dikembangkan oleh Developer Express Inc. Jika anda membeli paket original Delphi maka anda akan menemukan komponen ini pada cd Delphi Companion Tools. Melihat contoh yang disertakan saya langsung tercengang. Ternyata membuat form yang cantik dapat dilakukan dengan mudah dan cepat. Kita tinggal menempatkan komponen pada form, meload gambar, mengaktifkan komponen dan form cantik dapat segera digunakan. Akhirnya saya berfikir lagi bagaimana kalau digunakan komponen standar Delphi saja agar program menjadi lebih ringan.

    Oke, langsung saja kita mulai step by step membuat form cantik ini:
    1. Buka Delphi anda dan buatlah projek baru (standar EXE). Langkah ini dapat diakses melalui File --> New --> Application
    2. Tambahkan komponen image pada form. Komponen ini terletak pada tab Additional. Gambar yang akan anda tambahkan ini nantinya akan menjadi background sekaligus bentuk dari form. Agar gambar bisa transparan pada form, anda dapat membuat gambar dengan format .gif transparan atau .bmp dengan warna background khusus (background harus berwarna #FF00FF)
    3. Klik ganda pada komponen image sehingga akan membuka kotak dialog seperti ditunjukkan pada gambar


    Klik tombol Load untuk mengambil gambar
    4. Sesudah gambar diload, klik sekali lagi komponen image untuk mengaktifkannya. Pada properties di object inspector untuk komponen image, ubah nilai Transparent ke true. Langkah ini mengakibatkan gambar menjadi transparan. Jika gambar anda tidak menjadi transparan, berarti gambar yang anda gunakan masih salah. Perbaiki dulu gambar anda baru ikuti langkah selanjutnya
    5. Klik nama form di Object Tree View untuk mengaktifkan form. Pada Properties di Object Inspector untuk komponen form ini ubah nilai BorderStyle menjadi bsNone. Coba run projek anda dengan menekan F9. Tampak bahwa form tidak memiliki border, namun form asli masih tampak, hal ini terlihat dari adanya background dibelakang image.
    6. Hal yang akan kita lakukan adalah membuat transparan background dari form. Dalam mentransparankan background form ini terdapat tiga nilai dari properties yang harus kita ubah yaitu Color, TransparentColor, TransparentColorValue. Ubah nilai Color dan TransparentColorValue dengan nilai yang sama misal clBlack. Set nilai TransparentColor dengan true. Hasilnya ditunjukkan pada gambar dibawah





    Tampak bahwa background pada form menjadi transparan sehingga bentuk daripada form selalu mengikuti bentuk gambar yang kita buat. Namun, apakah pekerjaan kita sudah selesai? Ternyata belum karena form tersebut tidak dapat didrag seperti form pada umumnya. Pada langkah ke 7 kita akan mengatasi hal ini

    7. Agar form yang kita buat dapat didrag tambahkan potongan kode berikut:

    procedure WMNCHitTest(var msg : TWMNCHitTest);message 
    WM_NCHitTest;

    Letakkan definisi prosedur diatas pada bagian type, dapat juga diletakkan pada bagian deklarasi private atau deklarasi public tergantung dari kebutuhan. Jika anda ingin menggunakan prosedur tersebut pada unit lain maka letakkan pada deklarasi public, pun sebaliknya. Pada bagian implementasi tambahkan kode berikut:

    procedure TForm1.WMNCHitTest(var msg : TWMNCHitTest); 
         begin   
          inherited;
           if (msg.Result = htClient) then 
            if Msg.YPos < Top + 40 then 
              msg.Result := htCaption; 
         end;

    Ada 2 hal yang harus anda perhatikan ketika menambahkan kode diatas. Hal tersebut
    ditunjukkan dengan teks warna merah. Form1 menunjukkan nama form. Jika nama form anda misalnya frmPetunjuk maka ubah Form1 menjadi frmPetunjuk. Kedua yaitu nilai 40. Nilai ini menunjukkan jarak dari form bagian atas yang dapat didrag. Semakin besar
    nilai ini maka bagian dari form yang dapat didrag semakin besar
    Form diatas adalah form modifikasi sehingga anda harus menambahkan beberapa even dan komponen yang pada umumnya sudah terdapat pada form biasa semisal close, maximize, minimize dan sebagainya. Anda dapat juga menambahkan komponen semisal button untuk menjalankan even-even tersebut.



    Sebenarnya anda dapat juga menggunakan skin untuk membuat form cantik ini. Namun saya tidak menyarankan penggunaan skin ini. Selain program menjadi berat diakibatkan oleh penggunaan komponen tambahan bisa itu berupa librari atau ocx (ActiveX), kompabilitas dengan komponen standar Delphi juga menjadi kendala. Bukankah lebih baik memodifikasi sesuatu yang standar daripada harus menggunakan suatu fitur embeded !? Sekian dulu trik dari saya semoga bermanfaat bagi anda semua. Komentar, saran dan pertanyaan mengenai trik ini harap dikirimkan ke [email protected]

    Jika sobat ingin mendownload source codenya, saya persilahkan:

    Crowja-Coderz


    Diadapsi dari artikel Ahmad Imron dengan sedikit perubahan
    http://www.ahmadimron.com
    Jangan Lupa Komentar Yaa..
    Related Posts Plugin for WordPress, Blogger...

    0 Komentar Untuk “[Delphi] Membuat Form Cantik Dengan Delphi”

    Posting Komentar

    Berikan komentar positif tentang artikel yang sederhana ini niscaya sobat akan mendapatkan balasannya. Hehehe

    Subscribe