Tampilkan postingan dengan label Delphi. Tampilkan semua postingan
Tampilkan postingan dengan label Delphi. Tampilkan semua postingan

Rabu, 02 November 2011

Menyembunyikan taskbar

0 komentar
Contoh program di bawah ini akan menunjukkan bagaimana cara untuk menyembunyikan taskbar melalui program yang dibuat dengan Delphi.
Untuk menyembunyikan dan menampilkan taskbar kita dapat menggunakan salah satu dari fungsi Windows API yaitu ShowWindow yang deklarasinya sebagai berikut :
function ShowWindow (hwnd : HWND; nCmdShow : integer) : Boolean;
Parameter pertama dari fungsi ShowWindow merupakan handle window yang akan ditampilkan atau disembunyikan. Parameter kedua adalah bagaimana window tersebut ditampilkan. Yang menjadi pertanyaan kita, darimana kita mendapatkan handle window dari taskbar ? Caranya adalah dengan memanggil fungsi FindWindow.
function FindWindow (lpClassName, lpWindowName : PChar) : HWND; 
Parameter pertama merupakan nama kelas jendela (window class). Pada Delphi nama ini identik dengan nama kelas dari Form, misalnya TForm1, TForm2, dst. Parameter kedua adalah caption dari form (TForm.Caption).
Kembalian dari fungsi FindWindow adalah handle form yang dicari. Bila Windows tidak menemukan form yang dimaksud, FindWindow akan mengembalikan nilai 0.
Untuk mencari handle form dari taskbar :
FindWindow('Shell_TrayWnd',Nil);
Parameter pertama dari FindWindow diisi dengan Shell_TrayWnd yang merupakan window class dari taskbar. Sedangkan parameter kedua diisi dengan Nil yang menunjukkan bahwa form taskbar tidak mempunyai caption.
Kode selengkapnya untuk menyembunyikan taskbar adalah sbb :
procedure TForm1.Button1Click(Sender: TObject);
var
   hTaskBar :Thandle;
begin
     hTaskBar := FindWindow('Shell_TrayWnd',Nil);      ShowWindow(hTaskBar,Sw_Hide);
end;
Untuk menampilkan taskbar langkahnya sama dengan yang di atas. Yang berbeda hanya parameter kedua dari ShowWindow, yang semula SW_HIDE diganti dengan SW_NORMAL. Kode lengkapnya adalah sebagai berikut :
procedure TForm2.Button1Click(Sender: TObject);
var
   hTaskBar :Thandle;
begin
     hTaskBar := FindWindow('Shell_TrayWnd',Nil);      ShowWindow(hTaskBar,Sw_Normal);
end;
newer post

Membuat efek flat

0 komentar
Kadang kala kita mungkin ingin membuat tampilan program kita sedikit berbeda dengan biasanya. Dengan tips berikut ini Anda bisa membuat komponen checkbox, radiobutton dan button menjadi flat.
procedure TForm1.Flatten(theControl: TWinControl);
var
   dwStyle: Longint;
begin
     dwStyle := GetWindowLong(theControl.handle, GWL_STYLE) or                 BS_FLAT;
     SetWindowLong(theControl.Handle, GWL_STYLE, dwStyle);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
     Flatten(Button1);
     Flatten(CheckBox1);
     Flatten(RadioButton1);

end;
Di sini kita menggunakan salah satu fungsi (function) Windows API, yaitu GetWindowLong yang deklarasinya sbb:
function GetWindowLong (hwnd : HWND; int : integer) : integer;
Fungsi GetWindowLong digunakan untuk mencari informasi mengenai window tertentu. Window di sini bisa kita artikan sebagai komponen visual seperti checkbox, radio button dan sebagainya.
Parameter pertama dari fungsi GetWindowLong merupakan handle window dari komponen yang akan kita ubah menjadi flat. Parameter kedua merupakan informasi window yang akan kita ambil. Dalam hal ini parameter kedua tersebut kita isi dengan GWL_STYLE yang artinya kita ingin memperoleh informasi style dari window tersebut.
Fungsi kedua yang kita pakai adalah SetWindowLong. Fungsi tersebut adalah untuk mengubah atribut atau style dari suatu window.
Untuk mengetahui secara lebih detail tentang fungsi Windows API Anda dapat membaca di help yang disertakan pada saat kita menginstall Delphi, pada bagian Win32 Programmer's Reference.
Adapun kode selengkapnya adalah sebagai berikut:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
CheckBox1: TCheckBox;
RadioButton1: TRadioButton;
ListBox1: TListBox;
procedure FormCreate(Sender: TObject);
private
procedure Flatten(theControl: TWinControl);
procedure Flatten2(theControl: TEdit);
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Flatten(theControl: TWinControl);
var
   dwStyle: Longint;
begin
     dwStyle := GetWindowLong(theControl.handle, GWL_STYLE) or                 BS_FLAT;
     SetWindowLong(theControl.Handle, GWL_STYLE, dwStyle);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
     Flatten(Button1);
     Flatten(CheckBox1);
     Flatten(RadioButton1);

end;
end.
newer post

Membuat form gradient

0 komentar
Untuk memperindah tampilan program yang Anda buat, Anda bisa membuat form gradient. Caranya yaitu dengan menambahkan kode pada event OnPaint dari form seperti contoh di bawah ini:
procedure TForm1.FormPaint(Sender: TObject);
var 
   Row, Ht: Word;
   IX: Integer;
begin 
     iX :=200 ;
     Ht:=(ClientHeight + 512) div 256;
     for Row := 0 to 512 do
     begin
        with Canvas do begin
        Brush.Color := RGB(Ix,150,row);
        FillRect(Rect(0, Row * Ht, ClientWidth, (Row + 1) * Ht));
        IX :=(IX-1);
        end;
     end;
end;
Untuk mengganti menjadi warna lain, Anda tinggal mengganti pada baris:
Brush.Color := RGB(Ix,150,row);
RGB merupakan kombinasi warna Red, Green, Blue. Nilai yang bisa Anda masukkan pada RGB yaitu 0 sampai 255.
newer post

Membuat rounded form

0 komentar
Secara default form yang Anda buat akan berbentuk segi empat. Dengan menambahkan beberapa baris kode berikut Anda dapat membuat form berbentuk elips atau lingkaran.

procedure TForm1.FormCreate(Sender: TObject);
var
   region : HRgn;
begin
     region := CreateEllipticRgn(1,1,200,200);
     SetWindowRgn(handle, region, true);
end;
Jika Anda membuka referensi Windows API tentang functionCreateEllipticRgn maka akan didapat keterangan seperti di bawah ini:
HRGN CreateEllipticRgn(
int nLeftRect, // x-coordinate of the upper-left corner of the bounding rectangle
int nTopRect, // y-coordinate of the upper-left corner of the bounding rectangle
int nRightRect, // x-coordinate of the lower-right corner of the bounding rectangle
int nBottomRect // y-coordinate of the lower-right corner of the bounding rectangle
);
newer post
older post Home