Archive for November, 2007

Skin Changer Dengan Delphi

Yang menunggu tutorial ini, mohon maaf kelamaan dipostingnye.. he he. biasa deh ga perlu banyak ceramah langsung aja.

Berikut adalah contoh penggunaan multi skin diaplikasi seperti halnya Winamp skins, jadi anda bisa menganti tampilan program anda langsung, tinggal pilih skin kemudian OK, berubah deh tampilannya. Ketika anda menutup program anda dan membukanya kembali nanti, maka skin yang akan ditampilkan adalah skin settingan anda terakhir kali.

Pastikan Skin library sudah diinstall di Delphi anda, jika belum ikuti langkah-langkah disini

Agar langkah-langkah kita seiring, silahkan atur folder dan file-file anda seperti berikut:

Ket:

  1. Folder skinTest : adalah folder utama letak program kita dibuat
  2. Folder skin : adalah letak folder skin-skin yang anda punya.
    Skin-skin tersebut bisa anda download di http://www.saarixx.info/sxskincomponents/en/downloads.php
    atau dari skin-skin yang anda buat sendiri.
  3. cetekSkin.conf : adalah file config untuk menyimpan settingan skin. file ini berguna untuk menyimpan setting yang anda pilih, File ini tidak perlu dibuat karena akan dicreate dengan kode program.
  4. file dpr,exe,pas,dfm dkk, sopasti file-file program kita.

Selanjutnya buat design sesuai selera anda.

Saat mendesign tampilan, lebih baik pasang terlebih dahulu object SXSkinLibrary1, SXSkinForm1, dan kemudian baru object-object lainnya. Ini bermanfaat supaya object-object lain akan secara otomatis mengatur sendiri properties-propertiesnya.

Untuk SXSkinLibrary1, SXSkinForm1 tidak perlu diatur propertiesnya, karena kita akan mengaturnya langsung dari script.

Yuk bahas scriptnya:

unit test;
interface
uses

  Windows, Messages, SysUtils, Variants, Classes,Graphics, Controls, Forms,
  Dialogs, SXSkinLibrary, SXSkinForm, SXSkinControl,SXSkinRadioButton,
  SXSkinCheckBox, SXSkinButton, SXSkinEdit,SXSkinPanel, SXSkinImage,
  SXSkinLabel, Grids, DBGrids, SXSkinSpinEdit,StdCtrls, Menus,
  ComCtrls, DirOutln, Outline;Type

{membuat variable object TcetekSkin dengan type record,
dan menambahkan nameOfSkin type string size 20 sebagai satu field}

Type
  TcetekSkin = record
  nameOfSkin : string[20];
  end;

TForm1 = class(TForm)
  SXSkinRadioButton1: TSXSkinRadioButton;
  SXSkinLibrary1: TSXSkinLibrary;
  SXSkinForm1: TSXSkinForm;
  SXSkinImage1: TSXSkinImage;
  SXSkinEdit2: TSXSkinEdit;
  SXSkinEdit1: TSXSkinEdit;
  SXSkinSpinEdit1: TSXSkinSpinEdit;
  SXSkinButton6: TSXSkinButton;
  SXSkinLabel1: TSXSkinLabel;
  SXSkinButton7: TSXSkinButton;
  ComboBox1: TComboBox;
  procedure FormCreate(Sender: TObject);
  procedure SXSkinImage1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  procedure SXSkinImage1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
  procedure SXSkinImage1MouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
  procedure Button2Click(Sender: TObject);
  procedure SXSkinButton7Click(Sender: TObject);
  private
  { Private declarations }
public
  { Public declarations }
  DraggingForm:Boolean;
  StartDragPT:TPoint;
end;

var
  Form1 : TForm1;
  myConf : File of TcetekSkin;
  cetekSkin : TcetekSkin;

implementation

uses DateUtils;

{$R *.dfm}

Ketika form dijalankan maka yang akan dikerjakan adalah: mencari file ‘cetekskin.conf’, jika tidak ada maka skin akan dibuat default yaitu memanggil skin kayu, jika ada maka kode akan membaca isi file tersebut, jika file tidak ada isinya maka akan default ke skin kayu, jika ada, maka isi tersebut adalah nama skin yang akan dipanggil.

procedure TForm1.FormCreate(Sender: TObject);
var
dir,myfileconf : String;

begin
myfileconf:= 'cetekskin.conf';

if FileExists(myfileconf) then //check file ada/tidak
begin

     AssignFile(myConf, myfileconf);
     FileMode := fmOpenRead;
     Reset(myConf);
     Read(myConf, cetekSkin); //baca file
     if cetekSkin.nameOfSkin<>''then
            dir := GetCurrentDir +'/skin/'+cetekSkin.nameOfSkin //folder skin
     else
           dir := GetCurrentDir +'/skin/kayu'; //folder skin default
     CloseFile(myConf);
end
else
      dir := GetCurrentDir +'/skin/kayu'; //folder skin default

//actifkan skin terpilih
With SXSkinLibrary1 DO
Begin

     SkinDir:= dir;
     SkinFile:='skin.ini';
     SkinFile2:='skin.ini';
     Active:=True;

end;
end;

tiga procedure dibawah adalah setting agar form dapat didrag/digeser

procedure TForm1.SXSkinImage1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin

if Button=mbLeft then
begin

     DraggingForm:=True;
     StartDragPT:=Mouse.CursorPos;
     Dec(StartDragPT.X,Left);
     Dec(StartDragPT.Y,Top);

end;
end;

procedure TForm1.SXSkinImage1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var PT:TPoint;

begin
if DraggingForm then
begin
     PT:=Mouse.CursorPos;
     SetWindowPos(Handle,0,PT.X-StartDragPT.X,PT.Y-StartDragPT.Y,0,0,SWP_NOSIZE or SWP_NOZORDER);

end;

end;

procedure TForm1.SXSkinImage1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button=mbLeft then
     DraggingForm:=False;
end;

//procedure untuk merubah setting skin

procedure TForm1.SXSkinButton7Click(Sender:TObject);
vardir : string;
begin

AssignFile(myConf, 'cetekskin.conf'); //setting file config
ReWrite(myConf); //kosongkan isi file
cetekSkin.nameOfSkin := ComboBox1.Text;
Write(myConf, cetekSkin); //tulis file dengan text combo terpilih
CloseFile(myConf);

//aktivkan skin

dir := GetCurrentDir + '/skin/'+ LowerCase(ComboBox1.Text);

With SXSkinLibrary1 DO
Begin

     SkinDir:= dir;
     SkinFile:='skin.ini';
     SkinFile2:='skin.ini';
     Active:=True;

end;
end;
end.

Monggo dicoba. Contoh sederhana.

Jika anda mau menjalankan dikomputer lain, sedangkan dikomputer baru tersebut ga ada SXSkinnya atau Delphi, maka file yang perlu di sertakan tentu saja .EXE dan folder skin

Jika anda mau membuat skin sendiri, anda bisa membuatnya dengan adobe photoshop atau program grafis lainnya yang bisa menghasilkan file *.png. anda tidak perlu mengotak-atik file skin.ini, anda cukup mereplace file *.png yang ada di folder skin dengan image baru anda, tentunya dengan memperhatikan size dari image-image yang sudah ada difolder skin tersebut.

Semoga ada manfaatnya. download skintest.zip 238kb

1 Comment

Si Tukang Kayu

Seorang tukang kayu tua bermaksud pensiun dari pekerjaannya di sebuah
perusahaan konstruksi real estate. Ia menyampaikan keinginannya
tersebut pada pemilik perusahaan. Tentu saja, karena tak bekerja, ia akan kehilangan penghasilan bulanannya, tetapi keputusan itu sudah bulat. Ia merasa lelah.Ia ingin beristirahat dan menikmati sisa hari tuanya dengan penuh kedamaian bersama istri dan keluarganya.

Pemilik perusahaan merasa sedih kehilangan salah seorang pekerja
terbaiknya.Ia lalu memohon pada tukang kayu tersebut untuk membuatkan
sebuah rumah untuk dirinya. Tukang kayu mengangguk menyetujui permohonan pribadi pemilik perusahaan itu.Tapi, sebenarnya ia merasa terpaksa. Ia ingin segera berhenti. Hatinya tidak sepenuhnya dicurahkan. Dengan ogah-ogahan ia mengerjakan proyek itu. Ia cuma menggunakan bahan-bahan sekedarnya. Akhirnya selesailah rumah yang diminta. Hasilnya bukanlah sebuah rumah baik. Sungguh sayang ia harus mengakhiri kariernya dengan prestasi yang tidak begitu mengagumkan.

Ketika pemilik perusahaan itu datang melihat rumah yang dimintanya, ia
menyerahkan sebuah kunci rumah pada si tukang kayu. “Ini adalah
rumahmu,”katanya, “hadiah dari kami.” Betapa terkejutnya si tukang
kayu. Betapa malu dan menyesalnya. Seandainya saja ia mengetahui bahwa ia sesungguhnya mengerjakan rumah untuk dirinya sendiri, ia tentu akan
mengerjakannya dengan cara yang lain sama sekali. Kini ia harus tinggal
di sebuah rumah yang tak terlalu bagus hasil karyanya sendiri.

Itulah yang terjadi pada kehidupan kita. Kadangkala, banyak dari kita
yang membangun kehidupan dengan cara yang membingungkan. Lebih memilih
berusaha ala kadarnya ketimbang mengupayakan yang baik. Bahkan, pada
bagian-bagian terpenting dalam hidup kita tidak memberikan yang terbaik. Pada akhir perjalanan kita terkejut saat melihat apa yang telah kita lakukan dan menemukan diri kita hidup di dalam sebuah rumah yang kita ciptakan sendiri. Seandainya kita menyadarinya sejak semula kita akan menjalani hidup ini dengan cara yang jauh berbeda. Renungkan bahwa kita adalah si tukang kayu.

Renungkan rumah yang sedang kita bangun. Setiap hari kita memukul paku,
memasang papan, mendirikan dinding dan atap. Mari kita selesaikan rumah
kita dengan sebaik-baiknya seolah-olah hanya mengerjakannya sekali saja
dalam seumur hidup. Biarpun kita hanya hidup satu hari, maka dalam satu hari itu kita pantas untuk hidup penuh keagungan dan kejayaan.

Apa yang bisa diterangkan lebih jelas lagi. Hidup kita esok adalah
akibat sikap dan pilihan yang kita perbuat hari ini. Hari perhitungan adalah milik Tuhan,bukan kita, karenanya pastikan kita pun akan masuk dalam barisan kemenangan.

“Hidup adalah proyek yang kau kerjakan sendiri”.

3 Comments

SMS Dari Allah

Hari ini saya dapat email dari temen kantor, yang isinya patut direnungkan.

Assalamu’alaikum. .
Pernahkah Anda bayangkan bila pada saat kita berdoa, kita mendengar ini:

“Terima kasih, Anda telah menghubungi Baitullah”.

“Tekan 1 untuk ‘meminta’.
Tekan 2 untuk ‘mengucap syukur’.
Tekan 3 untuk ‘mengeluh’.
Tekan 4 untuk ‘permintaan lainnya’.”

Atau….
Bagaimana jika Malaikat memohon maaf seperti ini:
“Saat ini semua malaikat sedang membantu pelanggan lain. Tetaplah sabar menunggu. Panggilan Anda akan dijawab berdasarkan urutannya.”

Atau, bisakah Anda bayangkan bila pada saat berdoa, Anda mendapat respons seperti ini:

“Jika Anda ingin berbicara dengan Malaikat,

Tekan 1. Dengan Malaikat Mikail,
Tekan 2. Dengan malaikat lainnya,
Tekan 3. Jika Anda ingin mendengar sari tilawah saat Anda menunggu,
Tekan 4. “Untuk jawaban pertanyaan tentang hakekat surga & neraka, silahkan tunggu sampai Anda tiba di sini!!”

Atau bisa juga Anda mendengar ini :

“Komputer kami menunjukkan bahwa Anda telah satu kali menelpon hari ini. Silakan mencoba kembali esok hari.”
atau…
“Kantor ini ditutup pada akhir minggu. Silakan menelpon kembali hari Senin setelah pukul 9 pagi.”
Alhamdulillah. .. Allah SWT mengasihi kita, Anda dapat menelpon-Nya setiap saat!!!

Anda hanya perlu untuk memanggilnya kapan saja dan Dia mendengar Anda. Karena bila memanggil Allah, Anda tidak akan pernah mendapat nada sibuk. Allah menerima setiap panggilan dan mengetahui siapa pemanggilnya secara pribadi.

Ketika Anda memanggil-Nya, gunakan nomor utama ini: 24434

2 : shalat Subuh
4 : shalat Zuhur
4 : shalat Ashar
3 : shalat Maghrib
4 : shalat Isya

Atau untuk lebih lengkapnya dan lebih banyak kemashlahatannya, gunakan nomor ini : 28443483

2 : shalat Subuh
8 : Shalat Dhuha
4 : shalat Zuhur
4 : shalat Ashar
3 : shalat Maghrib
4 : shalat Isya
8 : Shalat Lail (tahajjud atau lainnya)
3 : Shalat Witir

Info selengkapnya ada di Buku Telepon berjudul “Al Qur’anul Karim & Hadist Rasul

Langsung hubungi, tanpa Operator tanpa Perantara, tanpa dipungut biaya.

Nomor 24434 dan 28443483 ini memiliki jumlah saluran hunting yang tak terbatas dan seluruhnya buka 24 jam sehari 7 hari seminggu 365 hari setahun !!!

Sebarkan informasi ini kepada orang-orang di sekeliling kita.
Mana tahu mungkin mereka sedang membutuhkannya

Sabda Rasulullah S.A.W : “Barang siapa hafal tujuh kalimat, ia terpandang mulia di sisi Allah dan Malaikat serta diampuni dosa-dosanya walau sebanyak buih laut”
7 Kalimah ALLAH:

1. Mengucap “Bismillah” pada tiap-tiap hendak melakukan sesuatu.
2. Mengucap ” Alhamdulillah” pada tiap-tiap selesai melakukan sesuatu.
3. Mengucap “Astaghfirullah” jika lidah terselip perkataan yang tidak patut.
4. Mengucap ” Insya-Allah” jika merencanakan berbuat sesuatu di hari esok.
5. Mengucap “La haula wala kuwwata illa billah” jika menghadapi sesuatu tak disukai dan tak diingini.
6. Mengucap “inna lillahi wa inna ilaihi rajiun” jika menghadapi dan menerima musibah.
7. Mengucap “La ilaha illa Allah Muhammad Rasulullah ” sepanjang siang dan malam sehingga tak terpisah dari lidahnya.

Dari tafsir Hanafi, mudah-mudahan ingat, walau lambat-lambat. .. mudah-mudahan selalu, walau sambil lalu… mudah-mudahan jadi bisa, karena sudah biasa.

15 Comments

Mengeksekusi Aplikasi dan Files dari Delphi

Hemm saya ingin membuka file chm, atau html dibrowser, atau membuka file doc dengan MS Word langsung dari aplikasi Delphi yang saya buat. Yuk di coba.

Kode untuk mengeksekusi aplikasi atau file adalah shellExecute(), sebelumnya anda harus menambahkan sebuah library ShellApi di bagian uses. Yuk lihat beberapa contoh dibawah.

unit Unit1;
  interface uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,StdCtrls, ShellApi;

type

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;
  var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.bukaAppWord(Sender: TObject);
begin
ShellExecute(Handle,'open','C:Program FilesMicrosoft OfficeOFFICE11WINWORD.EXE',nil,nil,SW_SHOWNORMAL)
end;

procedure TForm1.bukaFileDocPakeWord (Sender: TObject);
begin
ShellExecute(Handle,'open', 'C:Program FilesMicrosoft OfficeOFFICE11WINWORD.EXE','C:MyDocument.doc', nil, SW_SHOWNORMAL) ;
end;

procedure TForm1.bukaFileSesusaiTypenya(Sender: TObject);
begin
ShellExecute(Handle,'open','C:file.chm', nil,nil, SW_SHOWMAXIMIZED) ;
end;

procedure TForm1.bukaWebStillcetekCom(Sender: TObject);
begin
ShellExecute(Handle, 'open', 'http://www.stillcetek.com',nil,nil, SW_ SHOWMAXIMIZED) ;
end;

end.

7 Comments