Membuat Gray Overlay untuk ShowModal di Delphi



بِسْــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم

Hi lama tak jumpa. Beberapa bulan terakhir banyak sibukan sama tugas besar, laporan laporan praktikum, ngajar, job, sama beberapa project sampingan jadinya jarang post di blog :sick
Baru minggu kemaren udah maju tugas besar dan laporan laporan praktikum udah kelar, jadi ane sempatin buat mulai nulis lagi. Nah kebetulan pas presentasi tugas besar kemaren untuk ketika menampilkan modal (.ShowModal), iseng buat modal yang muncul jadi kayak UAC di OS windows dan mayan nambah nilai kwkwkk.:crazy

Jadi di postingan kali ini ane mau berbagi snippetnya. Langsung saja disimak :happy


  • Jalankan aplikasi delphi lalu buat Project baru.
  • Buat 1 Form baru, lalu simpan projectnya. Dalam hal ini nama unit dan formnya ane kasih default yaitu Unit1->Form1 dan Unit2->Form2. Lalu tambahkan sebuah Button pada Form1 dengan caption terserah, kemudian tambahkan sebuah Label pada Form2 dengan caption terserah

  • Pada Form1, tekan tombol F12 untuk masuk ke Code Editor lalu tambahkan uses Unit2 pada bagian implementation.
  • Masih pada Code Editor, dibawah code {$R *.dfm} masukkan code berikut
    Delphi Script
    function ShowModalDimmed(Form: TForm; Centered: Boolean = true): TModalResult;
    var
      Back: TForm;
    begin
      Back := TForm.Create(nil);
      try
        Back.Position := poDesigned;
        Back.BorderStyle := bsNone;
        Back.AlphaBlend := true;
        Back.AlphaBlendValue := 192;
        Back.Color := clBlack;
        Back.SetBounds(0, 0, Screen.Width, Screen.Height);
        Back.Show;
        if Centered then begin
          Form.Left := (Back.ClientWidth - Form.Width) div 2;
          Form.Top := (Back.ClientHeight - Form.Height) div 2;
        end;
        result := Form.ShowModal;
      finally
        Back.Free;
      end;
    end;
  • Kembali ke Form Designer dengan menekan tombol F12 lalu double click pada Buttonnya kemudian masukkan code: ShowModalDimmed(Form2);.

  • Jalankan program dengan menekan tombol F9. Setelah itu klik Buttonnya dan akan muncul seperti ini:



Tambahan

  • Jika ingin mengganti warna overlay nya tinggal ganti line Back.Color := clBlack; menjadi Back.Color := clMaroon; atau Back.Color := clSkyBlue; atau warna sesuka hati :wonderful .


  • Jika ingin merubah tingkat opacitynya tinggal ubah value AlphaBlendValue seperti berikut :
    Back.AlphaBlendValue := ANGKA;.
  • Jika hanya ingin memberi overlay ke form utamanya saja (bukan full screen), ubah line Back.SetBounds(0, 0, Screen.Width, Screen.Height); menjadi Back.SetBounds(Form1.Left, Form1.Top, Form1.Width, Form1.Height);. *Form1 bisa disesuaikan dengan nama form tempat kode nya dimasukkan



Referensi




http://stackoverflow.com/a/1068139




Nah sekian dulu untuk tutorial kali ini. Semoga bermanfaat dan dapat membantu :wonderful. Jika ingin memberikan kritik dan saran atau bertanya silahkan tinggalkan komentar dibawah. :brave.
:foreveralone

0 komentar :

Posting Komentar

Cancel Reply

Iklan