Home / Tutorial / Delphi / MENAMBAHKAN PROPERTY DELPHI XE

MENAMBAHKAN PROPERTY DELPHI XE

Ini merupakan hal yang sangat menarik dan tentunya perlu diketahui oleh programmer Delphi agar mereka dapat bekerja dengan mudah dan tidak bertele-tele dalam menghadapi kasus dan kebutuhan yang sama. Sebenarnya konsepnya sangat sederhana, namun efek atau dampak yang diberikan sungguh luar biasa. Melalui Artikel ini, Anda akan ditunjukkan salah satu cara membuat project dengan cepat, mudah dan tidak bertele-tele, namun hasilnya efektif hingga bisa menghasilkan performance aplikasi yang tinggi, yaitu dengan mengedit komponen melalui proses penambahan property. Jadi, tidak mungkin tim Embarcadero akan membuat sebuah komponen yang spesifik untuk kebutuhan yang spesifik pula. Mereka akan berusaha membuat sebuah komponen secara umum. Tujuannya jelas adalah agar semua programmer dapat menggunakannya untuk berbagai kebutuhan. Namun demikian, kita tetap diberikan hak untuk memanipulasinya agar bisa lebih menjawab kebutuhan kita yang lebih spesifik. Sebagai contoh adalah komponen TTimer. Jika Anda perhatikan komponen ini, property yang masuk dalam section Published hanyalah Enable dan Interval . Padahal Anda ingin sebuah property yang digunakan untuk mengasosiasikan dengan timer lain, di mana nantinya jika komponen TTimer sudah selesai dieksekusi, dia akan menonaktifkan dirinya dan melanjutkan untuk mengeksekusi timer yang lain. Mungkin kebutuhan bisa lebih kompleks daripada isu di atas. Intinya adalah kita ingin sebuah komponen tertentu memiliki kemampuan lebih dalam mengelola property karena kita tidak mau mengerjakan sesuatu.

dengan monoton yang kadang membuat mood kita hilang ketika kita dihadapkan dengan banyak kerjaan dalam waktu yang bersamaan. Paling tidak dengan kita memiliki kemampuan untuk meng-customize suatu komponen, kita dapat menghadapi segala kondisi dan tekanan dengan baik. Kita tahu dan sadar bahwa tekanan seorang programmer sangat besar sebab pekerjaan programmer bukanlah pekerjaan yang tetap dan harus bisa memiliki daya kreativitas yang tinggi serta harus mampu menciptakan inovasi-inovasi agar bisa bersaing. Apabila Anda memiliki senjata yang banyak dan ampuh, tentunya tekanan dan persaingan tersebut akan berubah menjadi tantangan yang sangat menantang dan bukan sebagai sesuatu yang menakutkan yang kadang membuat stres berat hingga tidak bisa tidur dengan tenang. Seperti telah disinggung di atas, akan ditunjukkan tentang bagaimana cara membuat komponen baru turunan TTimer dan kita akan menambahkan beberapa property tambahan yang sekiranya bisa Anda jadikan referensi untuk meng-customize komponen lain. Untuk lebih detail mengenai proses untuk melakukan cuztomize komponen TTimer, ikuti langkah-langkah berikut:

  • Buka Delphi XE

MENAMBAHKAN PROPERTY DELPHI XE

  • Buat project baru Package Project. lalu Tekan tombol Alt + F, N, P
  • Tambahkan satu project Package Project lagi

Tambahkan satu project Package Project lagi

  • Tambahkan Unit pada Package1 dan Package2
  • Tambahkan beberapa uses seperti Classes, Graphics, StdCtrls dan ExtCtrls di bagian Interface.
 type TEditCustomize = class(TEdit)
 private
 public
   constructor Create(AOwner: TComponent); override; 
   destructor Destroy; override; 
 published 
   property CheckBox: TCheckBox; 
 end;
 TTimerCustomize = class(TTimer) 
 private 
 public 
   constructor Create(AOwner: TComponent); override; 
   destructor Destroy; override; 
   procedure RunNext; 
   procedure RunPrevious; 
   procedure RunFirst;
   procedure ShowPanel; 
 published 
   property TimerNext: TTimer; 
   property TimerPrevious: TTimer; 
   property TimerFirst: TTimer; 
   property Panel: TPanel; 
   property CheckBox: TCheckBox; 
   property Edit: TEditCustomize; end;

 

MENAMBAHKAN PROPERTY DELPHI XE

  • Arahkan kursor di baris kode deklarasi tersebut lalu tekan tombol Ctrl + Shift + C.
  • Tuliskan kode program di dalam procedure RunNext, RunPrevious, RunFirst dan ShowPanel seperti terlihat pada potongan kode program berikut:
  • RunNext:
      procedure TTimerCustomize.RunNext; 
        begin 
         if Assigned(FTimerNext) then 
           begin 
              FTimerNext.Enabled := True; 
           end; 
        end; 
      RunPrevious: procedure TTimerCustomize.RunPrevious; 
       begin 
         if Assigned(FTimerPrevious) then 
            begin 
              FTimerPrevious.Enabled := True; 
            end; 
       end; 
      RunFirst: procedure TTimerCustomize.RunFirst; 
       begin 
         if Assigned(FTimerFirst) then 
           begin 
             FTimerFirst.Enabled := True; 
           end; 
       end;
  • ShowPanel:
     procedure TTimerCustomize.ShowPanel; 
     var 
       LocalIndex: Integer; 
       LocalComponent: TComponent; 
     begin 
      for LocalIndex := 0 to Self.Owner.ComponentCount - 1 do 
       begin LocalComponent := Self.Owner.Components[LocalIndex]; 
         with LocalComponent do 
           begin 
             if InheritsFrom(TPanel) then 
               begin 
                 TPanel(LocalComponent).Color := clBtnFace; 
               end; 
           end; 
       end; 
         if Assigned(FPanel) then 
          begin 
             FPanel.Color := clNavy; 
          end; 
     end;
  • Tuliskan kode program di Unit1 pada Package1 untuk meregister komponen tersebut.
    procedure register; 
      begin 
       RegisterComponents('Mastering Delphi XE', [TTimerCustomize]); 
      end;

MENAMBAHKAN PROPERTY DELPHI XE

Jangan lupa untuk menambahkan Unit1 ke dalam bagian Interface pada Unit2. Ini tujuannya untuk dapat mengakses class TTimerCustomize . Selanjutnya juga Anda konfigurasi untuk DCP Output Directory, Package Output Directory dan Unit Output Directory dengan nilai <.\> pada kedua Package.

  • Lakukan konfigurasi Package seperti berikut:
  • Package1:
    package Package1; 
       {$R *.res} 
       {$ALIGN 8} 
       {$ASSERTIONS ON}
       {$BOOLEVAL OFF} 
       {$DEBUGINFO ON} 
       {$EXTENDEDSYNTAX ON} 
       {$IMPORTEDDATA ON} 
       {$IOCHECKS ON} 
       {$LOCALSYMBOLS ON} 
       {$LONGSTRINGS ON} 
       {$OPENSTRINGS ON} 
       {$OPTIMIZATION ON} 
       {$OVERFLOWCHECKS OFF} 
       {$RANGECHECKS OFF} 
       {$REFERENCEINFO ON} 
       {$SAFEDIVIDE OFF} 
       {$STACKFRAMES OFF} 
       {$TYPEDADDRESS OFF} 
       {$VARSTRINGCHECKS ON} 
       {$WRITEABLECONST OFF} 
       {$MINENUMSIZE 1} 
       {$IMAGEBASE $400000} 
       {$DESCRIPTION 'Design Time Package'} 
       {$DESIGNONLY} 
       {$IMPLICITBUILD ON}
     requires Package2; 
        contains Unit2 in 'Unit2.pas'; 
     end.
  • Package2:
     package Package2; 
       {$R *.res} 
       {$ALIGN 8} 
       {$ASSERTIONS ON} 
       {$BOOLEVAL OFF} 
       {$DEBUGINFO ON} 
       {$EXTENDEDSYNTAX ON}
       {$IMPORTEDDATA ON} 
       {$IOCHECKS ON} 
       {$LOCALSYMBOLS ON} 
       {$LONGSTRINGS ON} 
       {$OPENSTRINGS ON} 
       {$OPTIMIZATION ON} 
       {$OVERFLOWCHECKS OFF} 
       {$RANGECHECKS OFF} 
       {$REFERENCEINFO ON} 
       {$SAFEDIVIDE OFF} 
       {$STACKFRAMES OFF} 
       {$TYPEDADDRESS OFF} 
       {$VARSTRINGCHECKS ON} 
       {$WRITEABLECONST OFF} 
       {$MINENUMSIZE 1} 
       {$IMAGEBASE $400000} 
       {$DESCRIPTION 'Run Time Package'} 
       {$RUNONLY} 
       {$IMPLICITBUILD ON} 
         requires rtl;  
           contains Unit1 in 'Unit1.pas';  
         end.
  • Simpan kedua project tersebut di dalam direktori yang sama, lalu Tekan tombol Ctrl + Shift + S 
  • Lakukan proses Build All pada kedua project tersebut. Selanjutnya, Anda akan melihat kotak dialog seperti ditunjukkan pada Gambar dibawah ini.

MENAMBAHKAN PROPERTY DELPHI XE

  • Lakukan eksekusi command Install pada Package1. Lalu Klik kanan Package1 | Install
  • Apabila proses instalasi ini berhasil, akan ditunjukkan tampilan seperti Gambar dibawah ini

MENAMBAHKAN PROPERTY DELPHI XE

  • Tekan tombol OK.
  • Setelah itu, tutup semua dokumen yang terbuka.

MENAMBAHKAN PROPERTY DELPHI XE

  • Setelah itu, tambahkan proejct baru VCL Forms Application ke dalam project group tersebut.
  • Tambahkan beberapa komponen ke dalam TForm.

MENAMBAHKAN PROPERTY DELPHI XE

  • Setelah itu, asosiasikan komponen-komponen ke masing-masing property dari komponen TEditCustomize dan TTimerCustomize . Sebagai contoh untuk komponen EditCustomize1 , property CheckBox diasosiasikan dengan komponen CheckBox1 . Tentukan untuk komponen TEditCustomize yang lain. Kemudian untuk komponen TTimerCustomize , property CheckBox, Edit, Panel Anda asosiasikan dengan TCheckBox, TEditCustomize dan TPanel untuk indek yang sama. Sebagai contoh, TimerCustomize1
    dengan komponen CheckBox1 , EditCustomize1 dan Panel1 . Sedangkan untuk property TimerNext, TimerPrevious dan TimerFirst , tentukan berdasarkan urutan.
  • Langkah selanjutnya, pilih semua komponen TEditCustomize, kemudian tampilkan tabsheet Events pada pane Object Inspector lalu klik 2x event OnChange . Tuliskan kode program di dalamnya seperti berikut:
       procedure TForm3.EditCustomize1Change(Sender: TObject); 
        begin 
         with TEditCustomize(Sender) do 
          begin 
           if Text = '5' then 
             begin 
                CheckBox.State := cbChecked; 
             end 
             else 
             begin 
                CheckBox.State := cbGrayed; 
             end; 
          end; 
        end;
  • Selanjutnya, pilih semua komponen TTimerCustomize , kecuali komponen TimerCustomize11 kemudian tampilkan tabsheet Events pada panel Object Inspector . Setelah itu, klik 2x event OnTimer . Tuliskan kode program di dalamnya seperti berikut:
    procedure TForm3.TimerCustomize1Timer(Sender: TObject); 
      var 
       LocalInteger: Integer; 
         begin 
          with TTimerCustomize(Sender) do 
            begin 
              Enabled := False; 
              ShowPanel; 
                if CheckBox.State = cbChecked then 
                    begin 
                      RunNext; 
                    end 
                    else 
                    begin 
                      LocalInteger := StrToInt(Edit.Text) + 1; 
                      Edit.Text := IntToStr(LocalInteger); 
                      RunPrevious; 
                     end; 
           end; 
        end;
  • Tuliskan kode program berikut di dalam event OnTimer pada komponen TimerCustomize11 .
       procedure TForm3.TimerCustomize11Timer(Sender: TObject); 
         begin 
          with TTimerCustomize(Sender) do 
           begin 
             Enabled := False; 
             ShowPanel; 
             RunNext; 
           end; 
          end;
  • Tuliskan kode program berikut di dalam event OnClick pada komponen Button1 .
     procedure TForm3.Button1Click(Sender: TObject); 
     var 
        LocalIndex: Integer; 
     begin 
      for LocalIndex := 0 to ComponentCount - 1 do 
        if Components[LocalIndex].InheritsFrom( TEditCustomize ) then 
          TEditCustomize(Components[LocalIndex]).Text := IntToStr(Random(5)); 
          TimerCustomize6.Enabled := True; 
     end;
  • Selanjutnya, tentukan nilai property Enabled dengan False dan Interval bernilai 200 untuk semua komponen TTimerCustomize
  • Setelah itu, simpan project tersebut
  • Biasakan untuk selalu menyimpan project setiap kali Anda melakukan perubahan penting dan mendasar. Ini dimaksudkan agar Anda tidak kehilangan perubahan tersebut ketika komputer Anda tiba-tiba terjadi konflik yang memaksa untuk
  • Build project tersebut dengan  Tekan tombol Shift + F9 atau Tekan tombol Alt + P, B 
  • Run project tersebut. dengan Tekan tombol Ctrl + Shift + F9
  • Tekan tombol Button1.
  • Selesai.
  • Tutup aplikasi dan tutup semua project. dengan Tekan tombol Alt + F, L

Catatan

Jika Anda perhatikan, ada beberapa hal penting yang bisa dijadikan sebagai sebuah kesimpulan, di antaranya:

  • Anda tidak perlu menuliskan banyak baris kode program yang bertele-tele untuk membuat program aplikasi seperti didemokan di atas.
  • Dengan mengasosiasikan komponen-komponen, hal ini akan memudahkan Anda dalam memanipulasi sebuah proses tertentu tanpa harus ribet menentukan nama komponen secara eksplisit. Hal ini tentu akan membuat kode program Anda menjadi lebih efektif dan secara performa akan memberikan nilai lebih karena tidak terlalu ada banyak baris kode program di dalamnya.
  • Selain itu, dengan manipulasi property seperti ditunjukkan pada komponen-komponen TEditCustomize dan TTimerCustomize , tentunya akan membuat Anda merasa lebih nyaman dan ringan dalam menghafal kode-kode dari nama komponen.
  • Tidak hanya itu saja, sebenarnya Anda juga bisa menambahkan property yang lain seperti DateCreate, Programmer dan lain-lain untuk membuat komponen tersebut lebih terkontrol dan mudah untuk dianalisis serta dipertanggungjawabkan ketika ada hal-hal yang tidak diinginkan ke depannya.

Dengan contoh demo project di atas, diharapkan Anda mendapatkan inspirasi untuk memanipulasi komponen yang lain sehingga Anda bisa bekerja lebih efektif dan dapat menggunakan waktu dengan baik.



					
									

About admin

Check Also

Mengenal fungsi fold and unfold pada delphi XE

Mengenal Fungsi FOLD and UNFOLD pada Delphi XE

Untuk membantu mengoptimasi pekerjaan menganalisis kode program menjadi lebih cepat dan mudah, Anda bisa menggunakan …

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *