Tampilkan postingan dengan label tips trik. Tampilkan semua postingan
Tampilkan postingan dengan label tips trik. Tampilkan semua postingan

Rabu, 14 Desember 2011

Cara Mendeteksi Running Application di Delphi 7

Ya ampuun , udah lama banget blog ini kagak di update :hammer.Saya tidak akan berapologi dengan mengatakan kalau saya sibuk ini-itu walaupun kenyataannya memang begitu.(itu berapologi juga bay -,-" ).Okay , untuk postingan kali ini saya akan membahas mengenai Cara Mendeteksi Running Application di Delphi 7.Maksudnya !? Jadi gini gan , saya itu kesel sama adik saya yang maniak banget
Lebih Lanjut

Selasa, 15 November 2011

Cara Membuat dan Menggunakan DLL di Delphi 7

Selamat sore agan-agan.Akhirnya posting lagi , kangen banget membagi ilmu kepada agan-agan semua , :capedes.Okay , pada postingan kali ini saya akan membahas mengenai Cara Membuat dan Menggunakan DLL di Delphi 7.DLL (Dynamic Library Link) adalah sumberdaya/library file exe yang memungkinkan program untuk berbagi kode dan sumber daya lain yang diperlukan untuk melakukan tugas tertentu.Misalnya , kita bisa menyimpan procedure atau function di sebuah DLL , lalu kita panggil procedure atau function tersebut di aplikasi yang kita buat.Caranya !? Maka dari itu , segera buka borland delphi 7 anda.
Lebih Lanjut

Minggu, 06 November 2011

Efek Teks Berjalan Dan Kerlap-Kerlip di Delphi 7

Selamat siang agan-agan.Akhirnya posting lagi , yuuhuuu !! Setelah beberapa hari terakhir sakit dan di sibukkan dengan persiapan launching Pujasera Family Kuliner akhirnya saya bisa posting lagi.Dan pada postingan kali ini , saya akan membahas mengenai Efek Teks Berjalan Dan Kerlap-Kerlip di Delphi 7.
Lebih Lanjut

Rabu, 05 Oktober 2011

Cara Membuat Aplikasi Client-Server Di Delphi XE Dengan Datasnap

Selamat siang agan sekalian.Apa kabarnya !? Mudah-mudahan selalu dalam keadaan sehat dan semangat untuk belajar.Pada postingan kali ini , saya akan memberikan materi mengenai Cara Membuat Aplikasi Client-Server Di Delphi XE Dengan Datasnap.Yuph , secara perlahan saya mulai bermigrasi ke Delphi XE.Jujur saja , saya sedikit bingung melototin tampilan IDE baru dari Embarcadero ini.Mungkin karena sudah familiar dengan Delphi 7 dan belum akrab sama IDE ini.Oia , saya menggunakan Delphi XE , bukan Delphi XE2.Lalu , maksud dari judul diatas apa !? Fokus saya dalam membangun sebuah aplikasi , ialah optimalisasi penggunaan program untuk kepentingan aplikasi database.Untuk itu , ketika pertama kali saya mencumbui IDE ini , sasaran saya adalah membangun aplikasi database berbasis client-server dengan konsep Multi-Tier.Wow , jangan dulu bingung.Karena pembahasan kali ini tidak sedalam itu , wong saya aja belum mudeng , hahaha.Kalo agan belum punya Delphi XE , bisa di download di situs resminya,Search aja di google :D.Maka dari itu , mari kita mulai untuk melucuti busana Cameron Diaz :hammer , Delphi XE maksudnya.Buat aplikasi baru.Ganti caption dari form1 menjadi Server Form dan tambahkan component berikut : TDSServer , TDSServerClass , TDSTCPServerTransport.Ketiga component tersebut bisa agan temukan di tab pallete DataSnap Server.Perhatikan gambar berikut.















Okey , selanjutnya pilih SaveAll.Simpan nama unit dengan nama MyServer dan nama project dengan nama MyServerProj.Selanjutnya , isi property server pada TDSServerClass dan TDSTCPServerTransport dengan TDSServer.Nah , selanjutnya buat unit baru , caranya pilih file > new > unit.Simpan unit baru tersebut dengan nama MyClass.Anda akan menemukan code pada unit baru tersebut sebagai berikut.

unit MyClass;
 
interface
 
implementation

end.

Tambahkan kode berikut pada unit tersebut.Kita akan membuat sebuah function yang berfungsi untuk operasi penjumlahan.Simpel kan !? Biar gampang dimengerti gans :)

unit MyClass;

interface

uses classes;

type
  {$METHODINFO ON} //directive on
  TMyClass=class(TComponent) //inisialisasi object
    function sum(const a,b:Double):Double; //inisialisasi function
  end;
  {$METHODINFO OFF} //directive off

implementation
{TMyClass}

//implementasi function
function TMyClass.sum(const a: Double; const b: Double):Double;
begin
  Result:=a+b; //menjumlahkan nila a dan b , simple kan !? o.O
end;
end.

Jangan lupa , include unit MyClass di unit MyServer.Caranya , pilih Server Form.Lalu pilih file > use units dan pilih MyClass.Selanjutnya , kita akan menentukan class yang akan di panggil oleh client.Caranya , pada TDSServerClass event OnGetClass , ketikan kode berikut.

procedure TForm1.DSServerClass1GetClass(DSServerClass: TDSServerClass;
  var PersistentClass: TPersistentClass);
begin
  PersistentClass:=TMyClass;
end;
end.

Ooowww kaaayyyy , setting untuk server sudah selesai.Sekarang saatnya melakukan setting untuk client.Pilih project manager (disamping kanan) , lalu klik kanan pada project group dan pilih add new project.Maka akan muncul dialog.Pilih VCL Form Application.Harusnya , muncul form baru.Rubah captionnya menjadi Client Form.SaveAll.Simpan file unit dengan nama MyClient , file project dengan nama MyClientProj , dan Group Project dengan nama DataSnapTest.Bila berhasil , maka tampilan project anda harusnya seperti gambar di bawah ini.














Selanjutnya , tambahkan 3 buah component TEdit dan 1 buah component TButton.Rubah property name ketiga TEdit tersebut masing-masing , editA , editB dan editResult.Rubah property caption TButton dengan nama Hitung.Setelah itu , tambahkan component lagi yaitu TSQLConnection yang terdapat pada tab pallete dbExpress.Rubah property driver menjadi DataSnap , connectionName menjadi DataSnapCONNECTION dan loginPrompt menjadi false.Susun component tersebut sebagai berikut.















Masuk ke tahap yang paling penting.Pada project manager , double-klik MyServerProj.dproj , setelah itu klik kanan dan pilih run without debugging.Maka form Server akan running , pilih minimize pada form dan biarkan tetap running.Selanjutnya pada project manager . double-klik MyClientProj.dproj.Lalu pilih component TSQLConnection pada form client dan rubah property Connected menjadi true.Penting , biarkan form server tetap running , karena bila tidak , maka component TSQLConnection property connected tidak bisa di set menjadi true.Selanjutnya , klik kanan pada component TSQLConnection dan pilih Generate DataSnap client classes.Maka akan muncul unit baru yang berisi informasi mengenai implementasi class pada server dan method yang terdapat pada class.Simpan unit baru tersebut dengan nama MyDSClient.Jangan lupa untuk meng-include-kan (bahasanya apa sih -,-") unit tersebut di unit MyClient.Caranya pilih form client , lalu pilih file > use unit dan pilih MyDSClient.Okay , masuk ke tahap akhir.Sebagaimana dikatakan sebelumnya , bahwa kita akan melakukan operasi penjumlahan.Dimana nilai kesatu yaitu editA akan di jumlahkan dengan nilai kedua yaitu editB.Dan ketika tombol hitung di tekan , maka hasilnya akan tampil di editResult.Kita sudah membuat function untuk process tersebut yang terdapat pada MyClass.Dan kita akan memanggilnya di form client.Double-klik button hitung dan ketikan kode berikut.

procedure TForm2.Button1Click(Sender: TObject);
var temp:TMyClassClient;//inisialisasi TMyCLassClient
    a,b:Double;
begin
    //deklarasi temp yang merupakan TMyClassClient dan
    //menjadikan TSQLConnection sebagai parameter
   temp:=TMyClassClient.Create(SQLConnection1.DBXConnection);
   try
    a:=StrToFloat(editA.Text);
    b:=StrToFloat(editB.Text);
    editResult.Text:=FloatToStr(temp.sum(a,b));
   finally
    temp.Free;
   end;
end;

Yuph , beres.Pada kondisi MyServerProj running , double-klick MyClientProj lalu pilih build dan run.Silahkan inputkan angka pada editA dan editB lalu tekan tombol hitung.Maka hasilnya akan tampil di editResult.Wow , untuk membuat aplikasi yang hanya melakukan operasi penjumlahan kok repot sekali !? Haha.Mungkin itu tanggapan anda.Jangan lihat dari fungsionalitas aplikasinya.Namun coba telaah konsep pembuatannya.Anda telah berhasil membuat aplikasi berbasis client-server dengan DataSnap.Bayangkan ketika kita membuat aplikasi dengan banyak client yang secara simultan menginputkan data ke database.Dengan konsep seperti ini , penanganan proses tersebut menjadi jauh lebih mudah dan performanya lebih cepat.Oia , sebelum anda menutup aplikasi ini jangan lupa untuk merubah TSQLConnection property connected menjadi false.Okey , sekian untuk postingan kali ini semoga bermanfaat.
Untuk source code tutorial ini bisa agan download DISINI.
Lebih Lanjut

Rabu, 28 September 2011

Simulasi Declare Component Secara Run Time di Delphi 7

Selamat siang agan-agan , siang yang sangat panas disini.Menusuk-nusuk kulit , menghujam jantung dan mencabik hati.Lebay !!Pada postingan kali ini saya akan membahas mengenai Simulasi Declare Component Secara Run Time di Delphi 7.Maksudnya !?Pernahkah agan ngebayangin gimana kalau kita membuat sebuah program GUI(Graphical User Interface) di Delphi 7 tanpa mendrag-drop component apapun !? Ya, kita melakukannya secara runtime dengan terlebih dahulu mendeklarasikan component yang akan digunakan pada file Unit.Sebenarnya , proses drag-drop component ke form merupakan proses pendeklarasian component itu sendiri.Namun di bungkus oleh IDE(Integrated Developement Environtment) yang dalam kasus ini Delphi 7 sehingga kita tidak perlu menuliskan code untuk pendeklarasian component.Bingung !?Bagusss !!haha.Mari kita contohkan dengan praktek.Seperti biasa gan.Silahkan buka borland delphi 7 agan.Tambahkan 1 buah component TButton.1 TEdit dan 1 TListBox.Ketika aplikasi di jalankan , bila user menekan tombol button1 , maka text yang ada di edit1 akan di tambahkan ke ListBox1.Bila edit1 Kosong , maka akan muncul pesan kesalahan.Dengan menggunakan IDE , kita cukup mendrag-drop component tersebut kedalam form1.Susun component tersebut sesuai gambar berikut













lalu double-klik button1 dan ketikan kode berikut.

procedure TForm1.Button1Click(Sender: TObject);
begin
   if Edit1.Text<>'' then
    begin
      ListBox1.Items.Add(Edit1.Text);
    end
   else
    begin
      ShowMessage('Edit belum di isi');
    end;
end;

Yuph , hanya dengan cara seperti itu program yang kita buat sudah selesai.Cepat , mudah dan hemat waktu.Bagaimana jika kita membuat program yang sama namun tanpa mendrag-drop component apapun kedalam form , mungkinkah !? Tentu saja , itulah inti dari postingan saya kali ini.Buat program baru.Pada unit1 klause private , ketikan kode berikut.

private
    lbBox:TListBox;   //inisialisasi TListBox  dengan nama lbBox
    tombol:TButton;  //Inisialisasi TButton    dengan nama tombol
    edInput:TEdit;   // inisialisasi TEdit     dengan nama edInput
    procedure tombolClick(Sender:TObject); //inisialisai event OnClick pada tombol
    { Private declarations }

Pada klausa private tersebut , kita menginisialisasi component baru sesuai parent yang akan di tambahkan (TEdit , TListBox , TButton).Pada form1 event onShow , ketikan kode berikut.

procedure TForm1.FormShow(Sender: TObject);
begin
  Form1.Height:=213; //mengatur tinggi form1
  Form1.Width:=151;  //mengatur lebar form1

  lbBox:=TListBox.Create(Self); //pendeklarasian component
  lbBox.Parent:=Self;
  lbBox.Top:=10;
  lbBox.Left:=10;

  tombol:=TButton.Create(Self);
  tombol.Parent:=Self;
  tombol.Top:=150;
  tombol.Left:=30;
  tombol.Caption:='Tambah';
  tombol.OnClick:=tombolClick; //menambahkan event onClick pada tombol

  edInput:=TEdit.Create(Self);
  edInput.Parent:=Self;
  edInput.Top:=120;
  edInput.Left:=10;
end;

Pada saat program di jalankan , proses deklarasi component dimulai.Selanjutnya , kita akan mendeklarasikan event onClick pada tombol.ketikan kode berikut setelah kode sebelumnya.

procedure TForm1.tombolClick(sender:TObject); //deklarasi tombol event ocClick
begin
  if edInput.Text<>'' then
    begin
      lbBox.Items.Add(edInput.Text);
    end
  else
    begin
      ShowMessage('Edit harus di isi');
    end;
end;

Lalu pada form1 event onClose , ketikan kode berikut.

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  lbBox.Free;   //membebaskan component dari memori
  tombol.Free;
  edInput.Free;
end;

Berikut kode lengkap dari program tersebut.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    lbBox:TListBox;   //inisialisasi TListBox  dengan nama lbBox
    tombol:TButton;  //Inisialisasi TButton    dengan nama tombol
    edInput:TEdit;   // inisialisasi TEdit     dengan nama edInput
    procedure tombolClick(Sender:TObject); //inisialisai event OnClick pada tombol
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
begin
  Form1.Height:=213; //mengatur tinggi form1
  Form1.Width:=151;  //mengatur lebar form1

  lbBox:=TListBox.Create(Self); //pendeklarasian component
  lbBox.Parent:=Self;
  lbBox.Top:=10;
  lbBox.Left:=10;

  tombol:=TButton.Create(Self);
  tombol.Parent:=Self;
  tombol.Top:=150;
  tombol.Left:=30;
  tombol.Caption:='Tambah';
  tombol.OnClick:=tombolClick; //menambahkan event onClick pada tombol

  edInput:=TEdit.Create(Self);
  edInput.Parent:=Self;
  edInput.Top:=120;
  edInput.Left:=10;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  lbBox.Free;   //membebaskan component dari memori
  tombol.Free;
  edInput.Free;
end;

procedure TForm1.tombolClick(sender:TObject); //deklarasi tombol event ocClick
begin
  if edInput.Text<>'' then
    begin
      lbBox.Items.Add(edInput.Text);
    end
  else
    begin
      ShowMessage('Edit harus di isi');
    end;
end;
end.

Nah sekarang, coba jalankan program anda.Bila sukses , maka program akan berfungsi sama seperti program sebelumnya yang di buat dengan cara drag-drop.Perbedaan yang paling terlihat adalah dari besarnya file *.exe yang di hasilkan.Ini adalah file *.exe dari proses drag-drop.










Sedangkan dengan proses coding , file *.exe nya adalah sebagai berikut.











Namun , apakah sebanding keuntungan file *.exe yang lebih kecil dengan waktu yang digunakan untuk membuatnya !?Saya rasa tidak.Penggunaan IDE lebih efisien dan efektif dibandingkan mengetik secara manual source code program kita.Namun , ada perasaan "gagah" bila membuat program dengan menulis source code secara manual.Sayangnya , deadline tidak mengenal gagah :D
Sekian postingan kali ini semog bermanfaat.
Lebih Lanjut

Kamis, 22 September 2011

Konsep Inheritance/Pewarisan Di Delphi 7

Selamat siang agan-agan.Senang rasanya bisa posting lagi.Dan untuk postingan kali ini , saya akan membahas mengenai Konsep Inheritance / Pewarisan Di Delphi 7.Inheritance/pewarisan merupakan fitur yang tersedia dalam OOP(Object Oriented Programming).Dimana kita bisa menduplikasi sifat-sifat sebuah class , dan memanfaatkannya di class yang lain.Class dalam delphi 7 sendiri ialah file Unit yang bersisi source code dari program.Dan class itu sendiri merupakan sebuah object.Okay , saya tau anda bingung.Bukan karena anda kurang pintar , namun karena penjelasan saya yang belibet.Dan jujur saja , saya sangat tidak pandai berteori.Untuk itu seperti biasa , saya akan menjelaskannya secara praktek.Diharapkan agan mengerti maksud dari postingan saya kali ini.Sediakan kopi dan rokok agar tidak kebosanan !! hehe.

1.Apakah Konsep Inheritance Penting !?
Pertanyaan yang bagus.Dalam membangun sebuah program , kita tidak bisa melakukannya sekali jadi.Dalam artian , program tersebut memerlukan proses maintenance , patch , atau penambahan fitur.Dengan konsep traditional , dimana kita menuliskan source code program tumplek pada satu file unit , tentu proses itu akan memakan waktu yang banyak dan memelintir kepala kita.Pada aplikasi yang kompleks tentunya.Memanfaatkan konsep inheritance , tentu program kita menjadi lebih mudah di maintenance.

2.Keuntungan Konsep Inheritance!?
Lagi-lagi pertanyaan yang bagus.Pemisahan fungsionalitas menjadi beberapa class/unit tentu bukan tanpa tujuan.Dengan memanfaatkan konsep ini , program kita lebih terstruktur dan tentu saja memudahkan dalam proses pengembangan / maintenance selanjutnya.

Katanya tidak berteori , kamu banyak omong deh !! haha.Well , mari kita praktekan saja dengan membuat program sederhana yang memanfaatkan konsep inheritance.Bila pada postingan SEBELUMNYA saya menjelaskan mengenai Optimalisasi Procedure , maka postingan kali ini akan mengoptimalkannya lebih jauh.Untuk itu , silahkan buka Borland Delphi 7 anda.Tambahkan 5 buah komponen TEdit dan 1 buah TButton.Kita akan membuat program seperti Sebelumnya .Selanjutnya , pilih file -> new -> Unit.Maka anda akan melihat unit baru dengan tampilan sebagai berikut.

unit Unit2;

interface

implementation

end.

Itu adalah standar file unit.Ketikan kode berikut pada Unit2 tersebut.

unit Unit2;
 
interface

uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  
  Dialogs, StdCtrls;
 
type
  Tprosedur = class (TObject)//kita membuat object baru dengan nama TProsedur
  private
    {private declaration}
  public
     procedure cekEdit(sender1,sender2:TObject); //registrasi procedure
     procedure bersih(namaForm:TObject);
     {public declaration}
  end;

implementation

procedure Tprosedur.cekEdit(sender1,sender2:TObject); //inisialisasi procedure
begin
  with(sender1 as TEdit) do
    begin
      if Text='' then
        begin
          Application.MessageBox('maaf data tidak boleh kosong','informasi',MB_OK or MB_ICONINFORMATION);
        end
      else
        begin
          with(sender2 as TEdit) do
            begin
              Enabled:=true;
              SetFocus;
            end;
        end;
    end;
end;

procedure Tprosedur.bersih(namaForm:TObject);
var a:Integer;
begin
   with(namaForm as TForm) do
    begin  
      for a :=0 to ComponentCount-1 do
        begin  
          if Components[a] is TEdit then TEdit(Components[a]).Clear;   //membersihkan semua komponen TEdit  
          if Components[a] is TEdit then TEdit(Components[a]).Enabled := False;  //menonaktifkan semua komponen TEdit
        end;  
    end;
end;

end.

Unit2 diatas merupakan class yang berisi procedure , dimana fungsi procedure cekEdit tersebut ialah memvalidasi field TEdit.Bila tombol enter di tekan , maka focus akan berpindah ke TEdit selanjutnya , kecuali bila TEdit tersebut kosong.Dan procedure Bersih untuk membersihkan juga menonaktifkan semua TEdit.Nah , sekarang kembali ke Unit1.Pada klausa Uses , tambahkan Unit2.Perhatikan kode berikut.
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,Unit2;//unit2 di tambahkan ke unit1

Lalu pada klausa Var ,inisialisasi Inheritance terjadi.Tambahkan kode berikut.Kita akan menamainya kumpulanProsedur
var
  Form1: TForm1;
  kumpulanProsedur:Tprosedur;//kumpulanProsedur merupakan turunan dari Tprosedur yang terdapat pada Unit2

Pada Form1 event on show , tambahkan kode berikut.

procedure TForm1.FormShow(Sender: TObject);
begin
  kumpulanProsedur.bersih(Self);
  //procedure bersih yang terdapat pada Unit2 dipanggil
end;

Pada button1 ketikan kode berikut.

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Enabled:=true;//mengaktifkan edit1
  Edit1.SetFocus;//focus berpindah ke edit1
end;

Selanjutnya pada edit1 event on key press , ketikan kode berikut.

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then //jika tombol enter di tekan
    begin
      kumpulanProsedur.cekEdit(sender,Edit2);
      //procedure cekEdit yang terdapat pada Unit2 dipanggil
      //sender merupakan edit asal , dan edit2 merupakan tujuan focus
    end;
end;

Lakukan hal yang sama pada setiap TEdit , tentu dengan merubah focus tujuan.Jalankan program anda.Biasa saja !? Yuph benar , yang berbeda ialah konsep codingnya.Dimana kita memisahkan procedure tersebut pada unit yang berbeda.Bayangkan bila anda memiliki 10 form dengan masing-masing memiliki 10 buah TEdit.Dimana TEdit tersebut harus di validasi.Dengan cara seperti diatas , kita cukup menambahkan Unit pada klausa uses , menginisialisasi object , dan memanggil procedure / function yang terdapat pada unit yang kita buat.Berikut kode lengkap dari Unit1.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,Unit2;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Button1: TButton;
    procedure FormShow(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure Edit4KeyPress(Sender: TObject; var Key: Char);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  kumpulanProsedur:Tprosedur;//kumpulanProsedur merupakan turunan dari Tprosedur yang terdapat pada Unit2
implementation

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
begin
  kumpulanProsedur.bersih(Self);
  //procedure bersih yang terdapat pada Unit2 dipanggil
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Enabled:=true;
  Edit1.SetFocus;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then //jika tombol enter di tekan
    begin
      kumpulanProsedur.cekEdit(sender,Edit2);
      //procedure cekEdit yang terdapat pada Unit2 dipanggil
      //sender merupakan edit asal , dan edit2 merupakan tujuan focus
    end;
end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
   if key=#13 then
    begin
      kumpulanProsedur.cekEdit(sender,Edit3);
    end;
end;

procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
   if key=#13 then
    begin
      kumpulanProsedur.cekEdit(sender,Edit4);
    end;
end;

procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
   if key=#13 then
    begin
      kumpulanProsedur.cekEdit(sender,Edit5);
    end;
end;

procedure TForm1.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
   if key=#13 then
    begin
      kumpulanProsedur.cekEdit(sender,Edit1);
    end;
end;
end.

Saya berharap agan mengerti maksud dari postingan saya.Memang , saya hanya menyajikan contoh yang sangat sederhana.Namun saya tekankan , yang terpenting ialah agan paham konsep Inheritance / Pewarisan itu sendiri.Bila agan ingin mendownload source codenya , silahkan download DISINI.Sekian tutorial kali ini semoga bermanfaat :)
Lebih Lanjut

Rabu, 21 September 2011

Optimalisasi Penggunaan Procedure di Delphi 7

Selamat siang agan-agan sekalian.Apa kabarnya !? Mudah-mudahan selalu diberi kesehatan dan kekuatan juga semangat untuk terus menambah ilmu.Pada postingan kali ini saya akan menyajikan tutorial mengenai Optimalisasi Penggunaan Procedure di Delphi 7.Bila anda belum tau apa itu procedure , alangkah baiknya bila anda membaca postingan Berikut terlebih dahulu.Seperti kita tau , delphi 7 merupakan sebuah IDE(Integrated Developement Environment) dari bahasa pemrograman Pascal.Dengan modifikasi yang kompleks , maka lahirlah object pascal yang merupakan delphi 7 itu sendiri.Mengapa dinamakan object pascal !? Yuph , karena
Lebih Lanjut

Kamis, 15 September 2011

Cara Mencegah Flash CS4 Terkunci DI Windows 7

Selamat siang agan-agan.Postingan kali ini sedikit melenceng dari main focus blog saya.Yaitu Cara Mencegah Flash CS4 Terkunci DI Windows 7.Selain menggiati Delphi 7 , saya juga senang untuk ngoprek flash dengan actionscript3 nya yang menawan.Konsep animasi dipadu dengan barisan source code membuat saya tertarik untuk menyelaminya lebih dalam.Salah satu hasil dari kegiatan saya ngoprek flash , bisa dilihat DISINI.Nah yang jadi permasalahan adalah ,ketika laptop tercinta ini connect ke internet , ternyata adobe flash tersebut melakaukan transfer data yang bertujuan untuk memvalidasi serial number yang saya masukan ketika proses instalasi.Tentu saja program saya bajakan.Walhasil flash CS4 saya TERKUNCI :@.Miris rasanya.seperti di tusuk-tusuk jarum , cekit-cekit cekit-cekit.Nah oleh karena itu , saya mengakalinya dengan melakukan setting khusus pada firewall.Memang kita bisa mengganti host file yang terletak di C:\Windows\System32\drivers\etc.Believe me , it won't work di Windows 7.Saya saksinya !! hehe.Maka dari itu , saya mencoba jurus lain untuk mengatasinya.Mari kita simak.

1.Masuk ke Control Panel dan pilih System and Security
2.Pilih Windows Firewall
3.Pilih Advanced Settings

Maka akan muncul sebuah tampilan seperti ini

























Pilih inbound rules dan cari koneksi yang berhubungan dengan adobe flash.Bila agan menemukan lebih dari satu , maka semuanya harus di blok koneksinya.Caranya , klik kanan pada koneksi tersebut lalu pilih properties , pilih tab general lalu pada panel action pilih block connection.Lakukan hal tersebut pada semua koneksi yang berhubungan dengan adobe flash.Setelah beres , pilih outbound rules yang terletak di  bawah inbound rules.Pilih menu action lalu pilih new rules.Pilih program dan klik next , lalu browse dan pilih file flash.exe.Isi name serta descriptionnya bebas.Lalukan hal yang sama , namun kali ini browse file adobe_updater.exe yang terletak di C:\Program Files\Common Files\Adobe\Updater6.Restart komputer anda dan seharusnya sekarang , flash CS4 anda bebas dari kekhawatiran terkunci.Sekian tutorial kali ini semoga bermanfaat.
Lebih Lanjut

Rabu, 24 Agustus 2011

Fungsi Drag and Drop String ke Komponen TEdit di Delphi 7

Selamat malam agan-agan (gesruk-gesruk , nyapu blog yang udah lama gak update).Haduh , maaf bukannya gak kangen posting , tapi akhir-akhir ini saya lagi sibuk ngurusin bisnis jaket kulit yang baru aja beres.Sekalian promosi aja deh , silahkan agan-agan sambangin JQueat , Leader of Leather Jacket (Promosi terselubung).Okey , trus kali ini mau ngebahas apa yu !? Simpel aja , saya cuma mau ngeshare tips biar kita bisa menggunakan Fungsi Drag and Drop String ke Komponen TEdit di Delphi 7.Maksudnya !? Misal kita punya kumpulan string pada suatu komponen , dan karena kita males ngetiknya satu-satu , alangkah baiknya kita menggunakan tips berikut.Ayo buka Borland Delphi 7 tercinta anda.Setelah itu tambahkan satu buah komponen TListBox dan satu buah TEdit.Tambahkan beberapa item pada TListBox , terserah mau apa aja.Nama binatang , buah atau apa aja.Jangan lupa pada TListBox Properties DragMode , rubah menjadi dmAutomatic.Setelah itu pada event TEdit onDragDrop , ketikan kode berikut

procedure TForm1.Edit1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  (Sender as TEdit).Text := (Source as TListBox).Items
    [(Source as TListBox).ItemIndex];
end;

Selanjutnya , pada TEdit event onDragOver , ketikan kode berikut.

procedure TForm1.Edit1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept:=true;
end;

Sip , coba jalankan program anda.Lalu pilih item pada TListBox dan drag ke komponen TEdit.Harusnya , item yang di drag tersebut akan tercopy ke TEdit.Okay deh , sekian postingan kali ini semoga bermanfaat.
Lebih Lanjut

Kamis, 11 Agustus 2011

Cara Membuat Aplikasi SWF-EXE Converter di Delphi 7

Selamat siang agan-agan.Siang yang sangat panas disini.Pada postingan kali ini saya akan memberikan tutorial mengenai Cara Membuat Aplikasi SWF-EXE Converter di Delphi 7.Maksudnya !? Seperti kita tau , kalau aplikasi flash itu memiliki ekstensi *.swf.Yang artinya , kita memerlukan AVM (Adobe Virtual Machine) /Flash Player untuk menjalankan aplikasi tersebut.Memang dalam program semisal adobe flash CS 4 , ada fitur untuk mengeksport aplikasi SWF kita menjadi EXE , nah kita akan membuat converter tersebut menggunakan Delphi 7.Lalu tunggu apa lagi !? Buka borland delphi 7 anda dan bersiap-siap untuk bergembira (apa sih).Yang pertama kali dilakukan , ialah kita akan menuliskan sebuah function yang bertugas untuk mengconvert file SWF menjadi EXE.Dengan 3 buah parameter bernilai string.Parameter pertama , nama file swf , selanjutnya nama output file EXE dan terakhir file flash player.Tambahkan 3 buah variabel pada deklarasi var.Yaitu tujuan ,sumber dan flashPlayer ,ketiganya bertipe String.Ketikan kode berikut setelah {$R *.dfm}

function Swf2Exe(SourceSWF, exeFile, FlashPlayer : string): string;
var
  SourceStream , DestinyStream , LinkStream : TFileStream ;
  flag : Cardinal;
  SwfFileSize : integer;
begin
  result := 'Error';
  DestinyStream := TFileStream .Create(exeFile, fmCreate);
  try
    LinkStream := TFileStream .Create(FlashPlayer , fmOpenRead or fmShareExclusive );
      try
        DestinyStream .CopyFrom(LinkStream, 0);
      finally
        LinkStream .Free;
      end;
      SourceStream := TFileStream .Create(SourceSWF, fmOpenRead or fmShareExclusive );
      try
        DestinyStream .CopyFrom(SourceStream , 0);
        flag := $FA123456;
        DestinyStream .WriteBuffer (flag, sizeof(integer));
        SwfFileSize := SourceStream .Size;
        DestinyStream .WriteBuffer (SwfFileSize , sizeof(integer));
        result := '';
        finally
          SourceStream .Free;
        end;
      finally
        DestinyStream .Free;
      end;
end;

Terlihat , kalau ketiga parameter tersebut sangat krusial.Tambahkan komponen saveDialog , openDialog , 3 buah button.Button1 berfungsi untuk mencari file SWF sekaligus menyimpannya menjadi EXE.Double klik pada button1 dan ketikan kode berikut.

procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
    begin
      sumber:=OpenDialog1.FileName;
      SaveDialog1.FileName:=ChangeFileExt(sumber,'.exe');
    end;
  if SaveDialog1.Execute then
    begin
      tujuan:=SaveDialog1.FileName;
    end;
end;

Pada kode tersebut kita mengisi nilai sumber dan tujuan dengan string yang di dapat dari open dan save dialog.Button2 berfungsi untuk mencari flash player.Double klik button2 dan ketikan kode berikut.

procedure TForm1.Button2Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
    begin
      flashPlayer:=OpenDialog1.FileName;
    end;
end;

Dan yang terakhir yaitu button3 , berfungsi untuk mengeksekusi proses convert.Double klik button3 dan ketikan kode berikut.

procedure TForm1.Button3Click(Sender: TObject);
begin
  //pastikan semua variabel terisi
  if(sumber<>'')and(tujuan<>'')and(flashPlayer<>'') then
    begin
      //eksekusi function
      Swf2Exe(sumber,tujuan,flashPlayer);
      ShowMessage('Convert Selesai');
    end
  else
    begin
      //kalau ada parameter yang tidak lengkap
      ShowMessage('Parameter tidak lengkap');
    end;
end;

Beres deh.Jalankan program anda lalu pilih file swf yang akan di convert.Pilih juga file flash playernya.Lalu silahkan convert !! Kalau ternyata masih bingung , agan-agan bisa download sourcenya berikut file SWF dan flash playernya DISINI.Sekian tutorial kali ini semoga bermanfaat.
Lebih Lanjut

Senin, 01 Agustus 2011

Cara Membuat Aplikasi WinRar di Delphi 7

Selamat siang agan-agan.Pada puasa gak !? Hehe.Untungnya siang ini cuaca agak mendung , jadinya tidak terlalu kehausan.Biarpun puasa , aktifitas coding , blogging dan learning tetep harus jalan.Pada postingan kali ini , saya akan memberikan tutorial Cara Membuat Aplikasi WinRar di Delphi 7.Udah tau dong WinRar itu apa !? Yups , aplikasi yang berfungsi untuk mengkompres beberapa file menjadi satu , dan tentu mendekompresnya lagi.Berguna banget kalau kita mau mengkopi file yang berjumlah banyak , agar lebih ringkas dan terlihat rapi.Lalu tunggu apa lagi !? Buka borland Delphi 7 anda dan mari kita berguling (maksudnya rolling !! haha)
Lebih Lanjut

Minggu, 31 Juli 2011

Cara Membuat Aplikasi Penghitung Kapasitas Hard Disk di Delphi 7

Selamat malam agan-agan.Langsung aja deh , tutorial kali ini akan membahas mengenai Cara Membuat Aplikasi Penghitung Kapasitas Hard Disk di Delphi 7.Aplikasi sederhana ini nantinya akan menampilkan sisa space pada hard disk , total space terpakai dan persentase memori yang terpakai dari total keseluruhan partisi.Kalau sudah gak sabar , langsung saja buka borland delphi 7 anda.Tambahkan 4 buah component TLabel , 1
Lebih Lanjut

Sabtu, 30 Juli 2011

Cara Membuat Aplikasi TuneUp Shredder di Delphi 7

Selamat siang agan-agan.Postingan kali ini akan membahas mengenai Cara Membuat Aplikasi TuneUp Shredder di Delphi 7.Jika di komputer anda terinstall aplikasi Tune Up Utilities , tentu sudah tak asing lagi dengan Tune Up Shredder.Yaitu fitur untuk menghapus file secara permanen dan membersihkan alokasi memori di hardisk.Maksudnya !? Bila kita menghapus file secara konvensional dalam hal ini dengan menekan tombol delete , file tersebut maka akan di pindahkan ke recycle bin.Dan benar-benar hilang ketika kita menghapusnya di recycle bin.Benarkah hilang secara permanen !?
Lebih Lanjut

Kamis, 28 Juli 2011

Cara Konversi Karakter TEdit Menjadi UpperCase di Delphi 7

Selamat siang agan-agan.Selalu menyenangkan rasanya bisa terus konsisten untuk posting.Syukur-syukur kalau agan-agan merasa terbantu dengan postingan saya.Pada kesempatan kali ini , saya akan memberikan tutorial mengenai Cara Konversi Karakter TEdit Menjadi UpperCase di Delphi 7.Maksudnya apa bay !?Jadi gini , ketika kita menginputkan karakter pada TEdit terkadang kita menginginkan supaya karakter awal pada tiap kata yang di inputkan tersebut menjadi UpperCase atau huruf besar.Memang tanpa code pun kita bisa membuat karakter awal
Lebih Lanjut

Rabu, 27 Juli 2011

Cara Membuat Aplikasi HJ Split di Delphi 7

Selamat petang agan-agan !! Waktu yang tepat rasanya untuk posting.Setelah sekian abad vacum , akhirnya bisa juga ngasih tutorial mengenai Cara Membuat Aplikasi HJ Split di Delphi 7.Tau kan HJSplit itu apa !?Yuph benar sekali , HJSplit adalah aplikasi untuk memecah file menjadi beberapa file dengan ukuran yang lebih kecil.Fungsinya !? Kalau anda seperti saya (yang suka download film) tentu lebih menyenangkan bila mendownload file dengan ukuran lebih kecil walaupun jumlahnya lebih banyak.Lalu , bisakah kita membuat software tersebut
Lebih Lanjut

Selasa, 26 Juli 2011

Video Tutorial :: Membuat Pencarian Data Super Cepat di Delphi 7

Selamat siang agan-agan.Udah lama saya gak posting.Karena kesibukan yang menumpuk (alasan klasik) , terpaksa aktifitas ngeblog saya sedikit di sunat.Pada postingan kali ini , saya akan membagikan video tutorial Membuat Pencarian Data Super Cepat di Delphi 7.Konsepnya sama seperti tutorial pada postingan SEBELUMNYA,Namun kali ini mungkin lebih mendetail.Dan lagi tutorial berikut berbentuk video yang tentu saja lebih mudah untuk dipahami (harusnya).Silahkan simak saja video di bawah ini.Okay , saya akui suara saya memang rebek :D
Lebih Lanjut

Minggu, 10 Juli 2011

Cara Menggunakan Case Of di Delphi 7

Selamat siang agan-agan.Postingan kali ini akan membahas mengenai Cara Menggunakan Case Of di Delphi 7.Case of berfungsi layaknya keyword if then else.Yaitu mengolah percabangan dari beberapa pilihan.Bingung dan mumet !? Saya juga.Lebih baik saya contohkna dengan praktek saja.Untuk mengikuti praktek ini , agan harus membaca terlebih dahulu arikel SEBELUMNYA sebagai perbandingan dengan praktek yang akan kita lakukan sekarang.Bila sudah , silahkan cari kode berikut :

procedure TForm1.Button1Click(Sender: TObject);
var harga_minum , harga_makan , harga_dessert , total : real; //variable tambahan
begin
  if RadioGroup1.ItemIndex = 0 then
    begin
      harga_minum := 2000;
    end
  else
    if RadioGroup1.ItemIndex = 1 then   //pilihan menu minuman
      begin
        harga_minum := 3000;
      end
    else
      begin
        harga_minum := 1000;
      end;

  if ComboBox1.Text = 'Nasi Ayam' then
    begin
      harga_makan := 5000;
    end
  else
    if ComboBox1.Text = 'Nasi Rawon' then  //pilihan menu makanan
      begin
        harga_makan := 6000;
      end
    else
      begin
        harga_makan := 3000;
      end;

  if ComboBox2.Text = 'Semangka' then
    begin
      harga_dessert := 1500;
    end
  else
    if ComboBox2.Text = 'Pisang' then  //pilihan menu dessert
      begin
        harga_dessert := 1000;
      end
  else
    begin
      harga_dessert := 3000;
    end;

  total := harga_minum + harga_makan + harga_dessert;
  if CheckBox1.Checked = true then
    begin
      total := total + 500;      //jika di antar , ada biaya tambahan
    end;
    Edit1.Text := FloatToStr(total);  //menghitung total pemesanan
end;

Terlihat bahwa kode tersebut terlalu panjang dan kurang sedap di pandang.Kondisi percabangan diatas , bisa kita rubah kodenya menjadi lebih pendek namun degan fungsionalitas yang sama.Ketikan kode berikut untuk mengganti kode di atas :

procedure TForm1.Button1Click(Sender: TObject);
var harga_minum , harga_makan , harga_dessert , total : real; //variable tambahan
begin
    case RadioGroup1.ItemIndex of
      0:harga_minum:=2000;
      1:harga_minum:=3000;
      2:harga_minum:=1000;
    end;

    case ComboBox1.ItemIndex of
      0:harga_makan:=5000;
      1:harga_makan:=6000;
      2:harga_makan:=3000;
    end;

    case ComboBox2.ItemIndex of
      0:harga_dessert:=1500;
      1:harga_dessert:=1000;
      2:harga_dessert:=3000;
    end;

  total := harga_minum + harga_makan + harga_dessert;
  if CheckBox1.Checked = true then
    begin
      total := total + 500;      //jika di antar , ada biaya tambahan
    end;
    Edit1.Text := FloatToStr(total);  //menghitung total pemesanan
end;

Terlihat , bahwa kode pengganti memiliki jumlah baris yang lebih sedikit dan lebih rapih dibanding kode sebelumnya.Dalam beberapa kondisi percabangan , penggunaan case of lebih disarankan.Namun , ada juga kondisi yang lebih baik menggunakan if then else.Sekian untuk tutorial kali ini semoga bermanfat.
Lebih Lanjut

Cara Membuat Aplikasi Pemesanan Kantin Di Delphi 7

Selamat siang agan-agan.Postingan kali ini akan membahas mengenai Cara Membuat Aplikasi Pemesanan Kantin Di Delphi 7.Terdengar menarik !? Bagus kalau begitu.Aplikasi yang akan di buat , ialah yang di gunakan oleh kasir ketika ada pemesanan oleh pembeli.Aplikasi yang dibuat masih sederhana , namun yang perlu diperhatikan ialah logika atau alur dari aplikasi tersebut.Alurnya seperti ini : Kantin menyediakan beberapa jenis makanan dan minuman.Juga pelayanan di antar pemesanan.Ketika ada pembeli dengan memesan makanan serta minuman , kasir menginputkan pilihan tersebut pada
Lebih Lanjut

Kamis, 07 Juli 2011

Greeting Blogger Template Dengan JQuery

Yups , dan pasti sudah bisa di tebak sebelumnya.Saya akan memposting mengenai JQuery lagi.Kali ini saya akan berbagi template Greeting Blogger Template Dengan JQuery.Karena gf saya di rp itu orang italia yang notabene 5 jam lebih lambat dari indonesia , makanya saya seringkali tidur terlebih dahulu daripada dia.Agar lebih menarik , saya ucapkan selamat malam lewat tampilan blog.Anda bisa bisa melihat contohnya DISINI.Dan seperti biasa , bila anda tertarik untuk membuatnya juga , silahkan download templatenya DISINI.Dan cara settingnya pun sangat mudah.Silahkan agan cari kode berikut :
Lebih Lanjut

Flip Blogger Template Dengan JQuery

Selamat siang agan-agan.Lagi-lagi , saya ngebahas mengenai JQuery.Tepatnya , Flip Blogger Template Dengan JQuery.Seperti postingan SEBELUMNYA ,kali ini pun saya membuat template ini karena perkara di RP , saya mulai ngaco nih kayaknya :D.Ceritanya sang kekasih lagi marahan sama BFF(best friend forever)-nya.Untuk itu , saya ngasih ide gimana kalo kita (saya dan gf) ngasih surprise ke bff-nya tersebut.Dengan cara membuat galeri unik dengan JQuery.Galeri ini menggunakan plugin JQuery Flip.Plugin yang rupawan bila digunakan sebagai galeri.Agan-agan bisa bisa lihat contohnya DISINI.Sudah lihat !? Apakah agan tertarik untuk membuatnya juga !? Tentu dan pastinya saya sudah menyiapkan template tersebut.Silahkan agan download DISINI.Yang perlu agan-agan perhatikan , hanya kode berikut :

Image 1
   Image 2
   Image 3
   Image 4
   Image 5
   Image 6
   Image 7
   Image 8
   Image 9  

Itu adalah kode sumber gambar.Ada 2 jenis , yaitu gambar kecil dan gambar besar.Gambar kecil , memiliki ukuran 250x180 , dan ukuran gambar yang besar ialah 600x400.Silahkan ganti url gambarnya sesuai dengan yang agan-agan inginkan.Seperti biasa , agan boleh upload sendiri javascriptnya atau menggunakan punya saya.Okey deh , sekian untuk tutorial kali ini , semoga bermanfaat.
Lebih Lanjut