Programming Learning

Free IT e-learning

[Delphi] Membuat Komponen Sendiri

Di tutorial ini,saya akan sedikit mencontohkan bagaimana membuat suatu komponen(VCL). seperti yang telah kita ketahui, ketika kita memakai delphi kita akan menemukan banyak sekali komponen-komponen yang dapat kita lihat di component pallete tetapi bagaimana membuat suatu komponen itu sendiri?rumitkah?jawabannya adalah tidak, “tidak” disini adalah dalam artian strukturisasi pembuatan sebuah komponen itu sendiri sebenarnya adalah simple, yang membuat itu tidak simple adalah ketika kita akan membuat suatu komponen yang sangat komplek tentunya🙂. untuk membuat suatu komponen sebelumnya kita harus dapat memahami tentang struktur class, apabila anda belum memahami ini alangkah baiknya apabila anda mencoba melihat artikel terdahulu yang ada di https://programminglearning.wordpress.com/2009/05/02/bermain-main-dengan-class/.

Dalam tutorial ini akan saya bahas bagaimana membuat suatu komponen yang saya beri nama TSimpleEncryptor. seperti namanya, komponen ini mampu untuk melakukan proses enkripsi string sederhana. terlebih dahulu kita akan membuat package baru dengan cara membuka delphi lalu klik New -> Package dan akan terbentuk suatu package kosong dengan gambar sebagai berikut :

Package

Kemudian kita membuat suatu unit baru dengan cara biasa yaitu klik new – unit dan akan terbentuk suatu unit baru yang otomatis akan terdaftar di package tersebut. lalu setelah itu kita membentuk suatu class TSimpleEncryptor yang merupakan suatu class dari TComponent, berikut ini adalah pendeklarasian TSimpleEncryptor beserta atribut-atributnya :

type
TModeOperation = (moEncrypt,moDecrypt);
TSimpleEncryptor = class(TComponent)
private
FInputStr: string;
FOutputStr: string;
FKey: integer;
FModeOperation: TModeOperation;
function Encrypt(const s: String; CryptInt: Integer): String;
function Decrypt(const s: String; CryptInt: Integer): String;
procedure SetInputString(const Value: string);
published
property InputString: string read FInputStr write SetInputString;
property OutputString: string read FOutputStr write FOutputStr;
property Key: integer read FKey write FKey;
property Mode: TModeOperation read FModeOperation write FModeOperation;
end;

pada kode di atas dapat kita lihat pendeklarasian “TModeOperation = (moEncrypt,moDecrypt);” . pendeklarasian type ini akan menjadi suatu indikator yang membedakan operasi enkripsi / dekripsi.

Pada sub Published, terdapat beberapa property-property yang nantinya akan muncul pada object inspector. Komponen ini nantinya akan melakukan operasi enkripsi / dekripsi ketika InputString telah terisi / berubah. Sebelum melanjutkan lebih jauh saya akan menempelkan kode selengkapnya daripada unit ini  :


unit MainUnit;

interface
uses
Classes;

type
TModeOperation = (moEncrypt,moDecrypt);
TSimpleEncryptor = class(TComponent)
private
FInputStr: string;
FOutputStr: string;
FKey: integer;
FModeOperation: TModeOperation;
function Encrypt(const s: String; CryptInt: Integer): String;
function Decrypt(const s: String; CryptInt: Integer): String;
procedure SetInputString(const Value: string);
published
property InputString: string read FInputStr write SetInputString;
property OutputString: string read FOutputStr write FOutputStr;
property Key: integer read FKey write FKey;
property Mode: TModeOperation read FModeOperation write FModeOperation;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('ProgrammingLearning',[TSimpleEncryptor]);
end;

{ TSimpleEncryptor }

function TSimpleEncryptor.Decrypt(const s: String;
CryptInt: Integer): String;
var
i: integer;
s2: string;
begin
if not (Length(s) = 0) then
for i := 1 to Length(s) do
s2 := s2 + Chr(Ord(s[i]) - cryptint);
Result := s2;
end;

function TSimpleEncryptor.Encrypt(const s: String;
CryptInt: Integer): String;
var
i: integer;
s2: string;
begin
if not (Length(s) = 0) then
for i := 1 to Length(s) do
s2 := s2 + Chr(Ord(s[i]) + CrypTint);
Result := s2;
end;

procedure TSimpleEncryptor.SetInputString(const Value: string);
begin
case FModeOperation of
moEncrypt: FOutputStr := Encrypt(Value,FKey);
moDecrypt: FOutputStr := Decrypt(Value,FKey);
end;
FInputStr := Value;
end;

end.

Untuk mendaftarkan komponen ke dalam menu Component pallete kita harus mendeklarasikan procedure Register yang isinya sebagai berikut (telah tercantum juga pada kode di atas) :


procedure Register; //pendeklarasiannya

implementation

procedure Register; //penjabarannya
begin
RegisterComponents('ProgrammingLearning',[TSimpleEncryptor]);
end;

Untuk menginstall komponen yang baru saja kita buat ini, kita simpan terlebih dahulu package + unit yang telah kita buat ini dan kita klik Install pada package dan apabila berhasil akan muncul dialog informasi sebagai berikut :

Penginstalan komponen

Selanjutnya daftarkan path library komponen dengan klik Tools->Environment Options masuk ke dalam tab library lalu tambahkan path pada input Library Path .

Sekedar review percobaan hasil komponen ditunjukkan pada gambar di bawah ini :

List komponen Baru

Property Komponen

Apabila anda ingin melihat source komponen yang dibahas disini silahkan mendownloadnya di sini.

Demikian tutorial ini semoga dapat menambah wawasan teman-teman dalam pemrograman khususnya delphi.

23 responses to “[Delphi] Membuat Komponen Sendiri

  1. afre_N Juli 12, 2009 pukul 3:31 am

    nice post😀

  2. Ridwan Juli 23, 2009 pukul 4:03 pm

    good post bro.. well done..

  3. BENK Agustus 18, 2009 pukul 2:07 pm

    mas klo bisa buat komponentNya di lengkapi alghorithma yang di gunakan dong…

    • Tigor Manurung September 22, 2009 pukul 5:29 pm

      algoritma apa ya???enkripsinya???hihhihi…ini khan topik pembuatan komponen delphi, jadi lebih terfokus pada segi cara pembuatan komponennya…😀

  4. fajar September 20, 2009 pukul 3:14 am

    wah kalo udah master kalo ngejelasin sesuatu suka sulit dimengerti…tp gpp lah saya ulik sendiri..makasih mas Ilmunya ^__^ sedikit dari anda bermanfaat untuk org lain!

  5. D4RA7 Oktober 16, 2009 pukul 8:59 am

    Asik bro… Ada tutor buat applikasi penjualan ga? kirimin dunk… thank🙂

    • Tigor Manurung Oktober 17, 2009 pukul 8:19 am

      lum ada tutorialnya, ada yang aplikasi dah jadi tapi g gratis😀 …mungkin lain kali klo ada waktu saya coba membuatkan tutorialnya.

  6. jauza Desember 10, 2009 pukul 3:11 pm

    mas mao nanya…
    minta penjelasannya dong di syntax yang ini :
    1. property InputString: string read FInputStr write SetInputString;

    bisa dijelaskan ga fungsi read dan write di potongan source code tsb…

    makasih ya sebelumnya..

  7. Tigor Manurung Desember 10, 2009 pukul 4:14 pm

    hmm…jadi property merupakan suatu control untuk mengakses class field, dmn dalam pendeklarasiannya memerlukan write and read…jadi ketika mendapatkan value/nlai maka akan ditempelkan sesuai dengan nama variabel yang berada di write property dan kebalikannya. property ini akan menempel pada object inspector apabila ditempelkan di section published. pelemparan di write and get bisa berupa variabel langsung maupun method jadi contohnya ketika ditempelkan di method :

    property InputString: string read GetInputString write SetInputString;

    nah di section lainnya (biasanya private) itu terdapat pendeklarasian target variabel :
    Private
    FInputString: string;

    nah ada 2 method juga yang ditempelkan di section lain (biasanya protected), untuk get merupakan fungsi,set merupakan procedure….contohnya adalah :

    protected
    function GetInputString: string;
    procedure SetInputString(Value: string);

    dan penjabarannya :

    function TClassnya.GetInputString: string;
    begin
    result := FInputString; //sesuai dengan nama variabel target
    end;

    procedure TClassnya.SetInputString(Value: string);
    begin
    FInputString := value;
    end;

    semoga membantu🙂

  8. mas_kofa Juli 14, 2010 pukul 12:59 am

    mantap!!! betul2 mantap!!!

  9. reza Agustus 2, 2010 pukul 12:59 am

    Halo mas Tigor,

    saya sebenarnya lagi nyari cara untuk membuat komponen dalam c++ builder, tp ngga ketemu, malah nemunya page mas ini yg buat Delphi.

    Nah berhubung Delphi dan C++ bernaung di bawah satu developer, secara teori bisa saling cross-language ga? Atau kalau mas Tigor tau cara membuat komponen di c++ builder, wah, itu sangat membantu saya =D

    Terima kasih sebelumnya

    • Tigor Manurung Agustus 3, 2010 pukul 2:24 am

      sebenernya ga bgtu jauh berbeda antara pembuatan component di delphi dengan c++ builder,coba mas tengok di demosnya.ada sample pembuatan component dstu.

  10. singgih primawan Oktober 26, 2010 pukul 3:47 pm

    mas saya boleh minta tolong ga??download delphi untuk windows 7 tu dman???cz kbnyakan ga cocok sama windows 7…thanksssss

  11. achsins Maret 12, 2012 pukul 2:36 pm

    mas maun nanya kalo componen delphi7 yang buat bikin aplikasi GIS pake’ ARCVIEW 3.3 pake’nya componen apa ? terus bisa dibikin sendiri atu klo mau download dimana, minta linknya mas… thankssss

  12. niken Februari 7, 2013 pukul 6:12 am

    mas kalau aplikasi enkripsi yg menggunakan algoritma vigenere cipher ada ga ya,,

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: