Buat Aplikasi Trial
Langsung saja tanpa harus panjang-panjang kultumnya, silahkan
temen-temen lihat kode program yang ada didalam file dpr dari
program aplikasi yang akan kita buat nantinya.
Perhatikan baik-baik contoh program beserta penjelasan berikut ini:
Code:
// Nama program aplikasi yang anda buat
// anda bisa ganti sesuai dengan nama program yang anda tentukan
program OncePerSessionTrialTest;
uses
// anda harus menambahkan library windows, sebab secara default
ketika kita
// membuat program, library ini belum disertakan. Dengan demikian,
anda harus
// menambahkannya secara manual. Jangan sampai lupa ya....
Windows,
Forms,
// ini pas dari unit program yang anda buat
mainUnit in 'mainUnit.pas' {FormMain};
{$R *.res}
begin
Application.Initialize;
// Ketikkan kode program berikut ini untuk mengecek apakah program
aplikasi
// ini sudah pernah dijalankan atau belum
if 0 = GlobalFindAtom('SOME-UNIQUE-TEXT-RELATED-TO-
THISAPPLICATION')then
/ Kondisi ketika program aplikasi belum pernah dijalankan
begin
GlobalAddAtom('SOME-UNIQUE-TEXT-RELATED-TO-THIS-APPLICATION');
Application.CreateForm(TFormMain, FormMain);
Application.Run;
end
else
begin
// Kondisi ketika program aplikasi pernah dijalankan
Application.MessageBox(
'You can run the trial version '+
'of this application '+
'only once per Windows session!',
'Test Trial Protection');
end;
end.
Tambahan :
Perlu diketahui bahwa, anda dapat menjalankan program aplikasi ini
hanya sekali untuk setiap session.
Semoga contoh kode program ini bisa menambah wawasan tementemen
yang ingin memperdalam pengetahuan mengenai bahasa
pemrograman terutama delphi.
Regards,
Jika memang masih ada temen-temen yang belum bisa, janganlah
khawatir,
berikut ini saya akan berikan contoh 2 program aplikasi dengan
bagian seperti berikut ini.
1. Program aplikasi Trial
2. Program Manager untuk control Program aplikasi Trial.
Untuk tahap awal, kita kerjakan untuk program aplikasi Trial.
Langsung saja silahkan anda lihat kode program beserta penjelasan
seperti terlihat pada kode program berikut ini.
Code:
unit Unit1;
interface
uses
// Jangan lupa temen-temen untuk menambahkan library Registry agar
bisa
// mendeklarasikan object TRegistry
// Awas lho ya kalau sampai lupa...... tak juewer kupingnya....
weakakakak
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, Registry, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Bevel1: TBevel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
// Deklarasikan dulu nama atomnya
// ini dilakukan jika anda menjadikannya sebagai variabel
// So jika setiap kali anda menganggapnya sebagai variabel,
// maka jangan lupa anda mendeklarasikannya terlebih dahulu
NamaAtom : PChar;
// Deklarasikan object TRegistry
// Ini digunakan jika memang temen2 yang ingin contoh sebenarnya
// menggunakan registry itu seperti apa sih...
// tapi untuk caranya pasti banyak sekali caranya dan ini
// merupakan salah satu cara bagaimana kita memanfaatkan database
// registry untuk memproteksi program aplikasi kita dengan
// cara trial.
// Semoga ini bisa menjadi acuan atau bahan untuk belajar object
// registry, apabila ada yang kurang jelas silahkan buat thread
baru
// atu bisa juga PM bahwkan email maupun YM di eko_elits@yahoo.com
// dan eko_elits
Reg : TRegistry;
begin
// Create object TRegistry agar bisa diakses dan digunakan
Reg := TRegistry.Create;
// proses perampingan koding dengan memanggil nama object sekali
with Reg do
begin
// Buka key dari database registry dengan default root key-nya
// di posisi -->> HKEY_CURRENT_USER
// Jika nama Section "Registry Eko Indriyawan" tidak dijumpai,
maka
// akan dibuat Section tersebut.
// kenapa ini dibuat, karena kita memberikan status default True
// seperti ditunjukkan pada baris kode program dibawah ini
OpenKey('Registry Eko Indriyawan',True);
// Jika anda ganti default status buat-nya dengan False, maka
// jika section yang anda maksudkan tidak dijumpai, section yang
anda
// tentukan tadi diakan dibuat atau di-create....
// Berikut dibawah ini adalah baris kode program untuk mengambil
// data dari database registry dengan nama key "Key Registered"
// tentu saja value yang diambil dari data key dikonversi dulu
// ke tipe PChar agar bisa dibaca oleh fungsi GlobalFindAtom
NamaAtom := PChar(ReadString('Key Registered'));
// Validasi apakah ditemukan atom-nya
// selain itu juga di cek apakah nama atom yang ditentukan
// benar-benar ada atau tidak.
// Ini digunakan untuk menditeksi apakah program aplikasi sudah
// diregister atau belum diregister.
// Jika jumlah karakter nama atom sama dengan nol, maka kita
anggap
// bahwa program aplikasi belum diregister. Dengan catatan key
// untuk regsiter tidak null atau kosong
if (GlobalFindAtom(NamaAtom) = 0)and(Length(NamaAtom)<>0) then
begin
// register atom ke sistem
GlobalAddAtom(NamaAtom);
// keluar dari eksekusi baris program selanjutnya
// dan program siap dioperasikan
exit;
end
else if Length(NamaAtom) = 0 then
begin
// karena jumlah karakter dari variabel NamaAtom adalah 0
// maka sesuai dengan kesepakatan sebelumnya, bahwa program
aplikasi
// ini berarti belum diregister
MessageDlg('Program aplikasi ini belum
diregister...',mtInformation,[mbOK],0)
end
else
begin
// Informasi kalau program aplikasi sudah pernah diregister dan
masa
// trial sudah habis.
// untuk menjalankannya, silahkan anda register ulang dengan
cara
// mengganti key registernya...
// ini merupakan cara yang bagus sekali karena tanpa harus
melakukan
// proses restart komputer
MessageDlg('Program ini hanya dapat dijalankan sekali dalam
satu sesi Windows'+#10#13+
'Untuk menjalankan program ini lagi, restart
komputer Anda atau silakan' + #10#13+
'Silahkan anda minta untuk register ulang
!!',mtInformation,[mbOK],0);
end;
// CloseKey, digunakan untuk menutup key yang sekarang sedang
// aktif
CloseKey;
// Hapus alokasi memory yang telah digunakan oleh Object
TRegistry
Free;
// Tutup Program aplikasi
Application.Terminate;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose:
Boolean);
begin
CanClose := True;
case MessageDlg('Apakah anda yakin akan keluar dari program aplikasi
ini?'+#13#13+
'Ingat lho... anda tidak ada kesempatan lagi'+#13+
'NB : Anda bisa aktifkan lagi dengan cara register
ulang....',
mtConfirmation,[mbYes,mbNo],0) of
mrYes:
begin
end;
mrNo:
begin
CanClose := False;
end;
end;
end;
end.
Kumudian silahkan anda setting Formnya seperti berikut dibawah
ini.
Sebelumnya, silahkan anda hapus semua object yang ada didalam
form
Namun apabila anda belum menambahkan sama sekali object
kedalam form,
maka langsung saja silahkan anda klik kanan form-nya dan pilih
View as Text, setelah itu atur konfigurasi form dan objectnya
seperti berikut.
Namun temen2 jangan konyol dengan mengetikkan seperti dibawah
ini,
cukup copy dari konfigurasi berikut ini, setelah itu lanjutkan paste
di Delphi-nya.
Code:
object Form1: TForm1
Left = 152
Top = 100
Width = 393
Height = 208
Caption = 'Program develop by Eko Indriyawan'
Color = clWhite
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnCloseQuery = FormCloseQuery
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 116
Top = 64
Width = 154
Height = 13
Caption = 'Aplikasi berhasil untuk diaktifkan'
end
object Bevel1: TBevel
Left = -8
Top = 141
Width = 388
Height = 9
Shape = bsTopLine
end
object Label2: TLabel
Left = 4
Top = 88
Width = 95
Height = 13
Caption = 'For more information'
end
object Label3: TLabel
Left = 76
Top = 104
Width = 142
Height = 13
Caption = 'eko_elits@yahoo.com'
Font.Charset = DEFAULT_CHARSET
Font.Color = clOlive
Font.Height = -11
Font.Name = 'Verdana'
Font.Style = [fsBold]
ParentFont = False
end
object Label4: TLabel
Left = 20
Top = 104
Width = 34
Height = 13
Caption = 'E - mail'
end
object Label5: TLabel
Left = 20
Top = 120
Width = 16
Height = 13
Caption = 'YM'
end
object Label6: TLabel
Left = 76
Top = 120
Width = 60
Height = 13
Caption = 'eko_elits'
Font.Charset = DEFAULT_CHARSET
Font.Color = clOlive
Font.Height = -11
Font.Name = 'Verdana'
Font.Style = [fsBold]
ParentFont = False
end
object Button1: TButton
Left = 305
Top = 144
Width = 75
Height = 25
Caption = 'Close'
TabOrder = 0
OnClick = Button1Click
end
end
Setelah itu, klik kanan dan pilih View as Form
Tekan tombol Ctrl + A
Lanjutkan dengan tekan tombol Ctrl+X
Teruskan dengan tekan tombol Ctrl+V
Sekarang silahkan anda tekan tombol Ctrl + F9 untuk cek apakah
ada error atau tidak.
Jika tidak ada error maupun warning, maka silahkan anda tekan
tombol F9.
Apa yang terjadi.....
Ternyata program aplikasi anda belum diregister...
untuk itu jangan bingung dulu untuk registrasinya.....
kita lanjutkan terlebih dahulu untuk buat aplikasi yang kedua.
Langsung saja silahkan buat program aplikasi baru
dan tuliskan kode programnya seperti berikut dibawah ini
Code:
unit Unit1;
interface
uses
// Sekali lagi jangan lupa untuk tambahkan library Registry kedalam
uses
Registry, Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
Bevel1: TBevel;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
// Deklarasikan object TRegistry
Reg : TRegistry;
begin
// Buat Object Tregistry agar bisa diakses dan digunakan
Reg := TRegistry.Create;
// Ringkas object
with Reg do
begin
// Buka section, jika tidak ada maka akan dibuat
OpenKey('Registry Eko Indriyawan',True);
// proses registrasi key berdasarkan yang anda tentukan
// dari object Edit1
WriteString('Key Registered',Edit1.Text);
// CloseKey
CloseKey;
// Lepaskan alokasi memory
Free;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
end.
Sekarang silahkan anda tekan tombol F12 hingga didapatkan
tampilan form
setelah itu silahkan anda klik kanan dan pilih View as Text/b]
Kemudian, silahkan anda copy konfigurasi form beserta
object-object yang ada didalamnya seperti berikut dibawah
ini dan lanjutkan dengan mem-paste kedalam program
delphi anda.
Code:
object Form1: TForm1
Left = 192
Top = 114
Width = 318
Height = 172
Caption = 'Develop by Eko Indriyawan'
Color = clWhite
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 16
Top = 16
Width = 18
Height = 13
Caption = 'Key'
end
object Bevel1: TBevel
Left = 16
Top = 104
Width = 289
Height = 25
Shape = bsTopLine
end
object Button1: TButton
Left = 16
Top = 56
Width = 75
Height = 25
Caption = 'Registered'
TabOrder = 0
OnClick = Button1Click
end
object Edit1: TEdit
Left = 16
Top = 32
Width = 121
Height = 21
TabOrder = 1
Text = 'Eko Cakep'
end
object Button2: TButton
Left = 231
Top = 108
Width = 75
Height = 25
Caption = 'Close'
TabOrder = 2
OnClick = Button2Click
end
end
Baiklah, sekarang silahkan anda lanjutkan dengan klik kanan dan
pilih View as Form
Tekan tombol Ctrl + F9 untuk mengecek apakah ada error atau
tidak.
setelah tidak ada error silahkan anda lanjutkan dengan menekan
tombol F9
Program siap jalan...
sekarang silahkan anda tentukan key untuk register, sebagai contoh
Eko Cakep.
Tutup program aplikasi ini..
kemudian silahkan anda buka lagi program aplikasi trialnya...
apa yang terjadi ?
ternyata program bisa jalan...
jika anda akan matikan, sebelumnya ada konfirmasi....
apabila anda matikan, maka program sudah tidak bisa dijalankan
lagi sebagaimana mestinya.
Namun anda bisa jalankan lagi apabila anda melakukan proses
registrasi ulang.
Semoga contoh program ini bisa memberikan ilmu tambahan buat
temen-temen yang belum mengetahuinya...
Amin....
jangan lupa untuk berbagi ilmu dengan temen2 lain yang belum
mengerti...
Sunday, November 11, 2007
Buat Aplikasi Trial
Subscribe to:
Post Comments (Atom)
0 Comments:
Post a Comment