11 Agustus 2011

Menampilkan Teks tercustom,tanpa Mengubah properti caption

Jika Anda  ingin tampilan beda dan menambahkan beberapa teks custom pada caption bar dari bentuk, tanpa mengubah properti Caption dari bentuk yang Anda butuhkan untuk menangani satu pesan khusus Windows: WM_NCPAINT.

Pesan WM_NCPAINT dikirim ke jendela saat dibutuhkan untuk memberi warna pada bingkainya. Sebuah aplikasi bisa menghentikan pesan ini dan warna bingkai jendela custom nya.

Catatan bahwa Anda juga perlu menangani pesan WM_NCACTIVATE yang dikirim ke jendela ketika akan diaktifkan atau dinonaktifkan. Tanpa penanganan WM_NCACTIVATE teks judul kustom akan hilang ketika bentuk kita kehilangan fokus.Sedikit penjelasan diharapkan anda paham dengan artikel ini,langsung saja ke contoh script-nya :
type
    TCustomCaptionForm = class(TForm)
    private
      procedure WMNCPaint(var Msg: TWMNCPaint) ; message WM_NCPAINT;
      procedure WMNCACTIVATE(var Msg: TWMNCActivate) ; message WM_NCACTIVATE;
      procedure DrawCaptionText() ;
    end;

 ...

 implementation


 procedure TCustomCaptionForm .DrawCaptionText;
 const
    captionText = 'Belajar.Delphi.Bersama';
 var
    canvas: TCanvas;
 begin
    canvas := TCanvas.Create;
    try
      canvas.Handle := GetWindowDC(Self.Handle) ;
      with canvas do
      begin
        Brush.Style := bsClear;
        Font.Color := clMaroon;
        TextOut(Self.Width - 110, 6, captionText) ;
      end;
    finally
      ReleaseDC(Self.Handle, canvas.Handle) ;
      canvas.Free;
    end;
 end;

 procedure TCustomCaptionForm.WMNCACTIVATE(var Msg: TWMNCActivate) ;
 begin
    inherited;
    DrawCaptionText;
 end;

 procedure TCustomCaptionForm.WMNCPaint(var Msg: TWMNCPaint) ;
 begin
    inherited;
    DrawCaptionText;
 end;


Selamat mencoba...




Tidak ada komentar:

Posting Komentar