Fungsi dalam Delphi

Pangkat:
a:=2;
b:=3;
c:=exp(b*ln(a)); // nilai = 8

format:
edkurs.text:=format(‘%25.2n’,[kurs]);
keterangan:
d : integer
u : integer tanpa + atau –
e : argumen bertipe floating point
f : sama e, tetapi tidak menggunakan angka eksponen
g : format antara e dan f
n : floating point, tanpa angka eksponen, ada pemisah ribuan dan desimal
m : floating point, format currency
p : argumen harus berupa pointer, hasil 8 karakter string dalam heksa desimal
s : argumen bertipe string / pchar
x : integer, hasil string dalam bentuk heksa desimal

pos: mencari string di string lain
x:=pos(‘ab’,’abcdef’); // hasilnya x=1

delete: menghapus tanda titik
while pos(‘.’,skurs)>0 do
delete (skurs, pos(‘.’,skurs),1);

length: panjang string
if length(sjumlah)>0 then
jumlah:=strtocurr(sjumlah);

keypress:
if key=chr(13) then gridbarangdblclick(sender);

Searching pada Delphi

Searching: findnearest // tidak sama persis
tbbarang.indexname:=’namabrg’;
ada:=tbbarang.findnearest([edcari.text])

Searching: findkey // sama persis
tbbarang.indexname:=’namabrg’;
ada:=tbbarang.findkey([edcari.text])
if ada then
begin
tbbarang.edit;
tbbarang[‘stock’]:=tbbarang.text;
end;

Searching majemuk:
var caritgl:tdate;
begin
tbbeli.indexname:=’kdbrgtgl’; // index majemuk
try
begin
caritgl:=strtodate(edtgl.text);
tbbeli.findkey([edkodebrg.text, caritgl]);
end
except
tbbeli.findkey([edkodebrg.text]);
end;
end;

delete tabel:
tbtemp.first;
while not tbtemp.eof do
begin
tbtemp.delete;
end;

Append tabel;
begin
for i=1 to 10 do
begin
tbtemp.append;
tbtemp[‘kodebrg’]:=’ ‘;
tbtemp.post;
end;
end;

Link E Book Delphi

Link E Book Delphi

Link Tutorial Delphi7.0…!

Link Delphi dengan MySQL…!

Link Pengenalan Ms Access…!

Link Koneksi Delphi ke Ms Access…!

Link Komponen Tabel…!

Link Komponen Query…!

Link Komponen Representasi Data…!

Link Komponen Report…!

Link Membuat Form Uniik Dengan Dellphii 7..0…!

Silahkan -> Free DownLoad…!!!

the mr.fox guard

Contact : RAHMADI, SE, SKom

Phone : 0511 7514143

Address : Jl.Sekumpul Gang Puji Rahayu RT.12 RW.06 Martapura-Kalimantan Selatan -Indonesia

Email ke Boutique Software Programming

ADO Query, ADO Command, Grafik dan Tips dan Triks

Teddy Marcus, Agus Prijono, Josef Widiahi, 2002, “Pemprograman Delphi dengan ADOExpress:Meangakses Basisdata MS.Access”,Informatika,Bandung

ADOQUERY

With ADOQuery1 do

Begin

Close;

SQL.Clear;

SQL.Add:=’select * from data_parkir’;

SQL.Add:=’order by Operator Desc’;

Open;

End;

With ADOQuery1 do

Begin

Close;

SQL.Clear;

SQL.Add(‘select * from applications where type=:apptype’);

ParamByName(‘apptype’).Value:=QuotedStr(Edit1.Text);

//Properties ADOQuery1.Params : Name : apptype

Open;

End;

Procedure TForm1.FormCreate(Sender:TObject);

Begin

ADOConnection1.GetTableNames(ComboBox1.Items);

End;

Procedure TForm1.ButtonClick(Sender:TObject);

Var tblname:string;

Begin

If ComboBox1.ItemIndex<0 then Exit;

Tblname:=ComboBox1.Items[ComboBox1.ItemIndex];

With ADOQuery1 do

Begin

Close;

SQL.Text:=’select * from ‘+tblname;

Open;

End;

End;

ADOCOMMAND

Procedure TForm1.FormCreate(Sender:TObject);

Begin

Session.GetTableName(‘DBDEMOS’,’*.db’,False,False,ComboBox1.Items); //tab data access

ComboBox1.Text:= ComboBox1.Items.Strings[0];

End;

Implementation

{$R *.dfm}

Function AccessType(fd:TFieldDef):string;

Begin

Case fd.DataType of

ftString : result:=’TEXT(‘+IntToStr(fd.size)+’)’;

ftSmallint: result:=’SMALLINT’;

ftInteger: result:=’INTEGER’;

ftWord: result:=’WORD’;

ftBoolean: result:=’YESNO’;

ftFloat: result:=’FLOAT’;

ftCurrency: result:=’CURRENCY’;

ftDate, ftTime, ftDateTime: result:=’DATETIME’;

ftAutoInc: result:=’COUNTER’;

ftBlob, ftGraphic: result:=’LONGBINARY’;

ftMemo, ftFmtMemo: result:=’MEMO’;

else

result:=’MEMO’;

End;

End;

Procedure TForm1.Button1Click(Sender:TObject);

//create command

Var i:integer;

s:string;

Begin

Table1.TableName:=ComboBox1.Text;

Tabel1.FieldDefs.Update;

s:=’create table ‘+Table1.TableName+’ (’;

with table1.FieldDefs do

Begin

For i:=0 to Count-1 do

Begin

s:=s+’ ‘+Items[i].Name;

s:=s+’ ‘+AccessType(Items[i]);

//Tambahkan function AccessType sebelum procedure TForm1.FormCreate

s:=s+’,’;

end;//for

s[length(s)]:=’)’;

end;//with

Memo1.Clear;

Memo1.Lines.Add(s);

End;

Procedure TForm1.Button2Click(Sender:TObject);

//Create Table and copy data

Var i:integer;

tblname:string;

begin

tblname:=ComboBox1.Text;

//refresh

Button1Click(Sender);

//menghapus table, jika table sudah ada

ADOCommand1.CommandText:=’drop table ‘+tblname;

ADOCommand1.Execute;

//create table

ADOCommand1.CommandText:=Memo1.Text;

ADOCommand1.Execute;

ADOTable1.Tablename:=tblname;

//salin data

Table1.Open; //table paradox

ADOTable1.Open; //table MS Access

Try

While not Table1.Eof do

Begin

ADOTable1.Insert;

For i:=0 to Table1.Fields.Count-1 do

Begin

ADOTable1.FieldByName(Table1.FieldDefs[i].Name).Value:=Table1.Fields[i].Value;

End;//for

ADOTable1.Post;

Table1.Next;

End;//while

Finally

Table1.Close;

ADOTable1.Close;

End; //try

End;

CREATE DATABASE

Procedure TForm1.BtnNewDatabaseClick(Sender:TObject);

Var DataSource:String;

DbName:String;

Begin

DbName:=’SampleData.mdb’;

DataSource:=’Provider=Microsoft.Jet.OLEDB.4.0’+’;Data Source=’+DbName+’;Jet OLEDB:Engine Type=4’;

ADOXCatalog1.Create1(DataSource);//tab ActiveX page

End;

CREATE AND LINK TABLES

Procedure TForm1.BtnAddTablesClick (Sender:TObject);

Var DataSource:String;

Cs:String;

Begin

DataSource:=’Provider=Microsoft.Jet.OLEDB.4.0’+’;Data Source=SampleData.mdb’+’;Persist Security Info=False’;

ADOConnection1.ConnectionString:=DataSource;

ADOConnection1.LoginPrompt:=False;

ADOCommand1.Connection:=ADOConnection1;

Cs:=’create table parkir (jeniskendaraan text(6),biayajampertama float,biayaberikut float,gambar longbinary)’;

ADOCommand1.CommandText:=Cs;

ADOCommand1.Execute;

Cs:=’create table operator (operator text(6),namaoperator text(50))’;

ADOCommand1.CommandText:=Cs;

ADOCommand1.Execute;

Cs:=’create index idxPrimary On Parkir (jeniskendaraan) with Primary’;

//with Primary,Disallow Null,Ignore Null, dan Unique

ADOCommand1.CommandText:=Cs;

ADOCommand1.Execute;

Cs:=’create index idxPrimary On operator (operator) with Primary’;

//with Primary,Disallow Null,Ignore Null, dan Unique

ADOCommand1.CommandText:=Cs;

ADOCommand1.Execute;

Cs:=’create table dataparkir (nopolisi text(9),jeniskendaraan text(6) references parkir (jeniskendaraan), jammasuk datetime, jamkeluar datetime, pos text(3), operator text(6) references operator (operator), biaya float);

ADOCommand1.CommandText:=Cs;

ADOCommand1.Execute;

End; //BtnAddTablesClick

GRAFIK (DBCHART)

ADOQuery1.String

Select top 5 customer.company, sum(orders.itemstotal) as sumitems, count(orders.orderno) as numorders

from customer, orders

where customer.custno=orders.custno

group by customer.company

order by sum(orders.itemstotal) desc

RecordSet Chart tanpa Chart Editor

OnCreate Event:

ADOQuery1.Close;

DBChart1.Legend.Visible:=False;

With DBChart1.SeriesList.Series[0] do

Begin

DataSource:=ADOQuery1;

XLabelsSource:=ADOQuery1Company.FieldName;

XValues.ValueSource:=ADOQuery1SumItems.FieldName;

YValues.ValueSource:=’ ‘;

Marks.Style:=smsXValue;

CheckDataSource;

End;

With DBChart1.SeriesList.Series[1] do

Begin

DataSource:=ADOQuery1;

XLabelsSource:=’ ‘;

XValues.ValueSource:=ADOQuery1NumOrders.FieldName;

YValues.ValueSource:=’ ‘;

CheckDataSource;

End;

ADOQuery1.Open;

INDENTASI PENULISAN

-Indent ke kanan : Ctrl+Shift+i

-Indent ke kiri : Ctrl+Shift+u

MENGUBAH UKURAN KOMPONEN

-Tekan Shift + Geser Panah

MEMINDAH KOMPONEN

-Tekan Control + Geser Panah

PINDAH ANTAR JENDELA

-Tekan F11 atau F12

MENAMPILKAN ITEM TERAKHIR YANG TELAH DITAMBAHKAN

-ListBox1.TopIndex:=ListBox1.Items.Count-1;

HINT DALAM BEBERAPA BARIS

Button1.Hint:=’Hint baris-1’+chr(13)+’ Hint baris 2’;

Button1.ShowHint:=True;

MENJALANKAN PROGRAM EXTERNAL

Menggunakan fungsi windows API yaitu: ShellExecute dan tambahkan pada bagian uses yaitu uses ShellApi

1.Aplikasi Umum

ShellExecute(handle,’open’,PChar(‘c:\test\app.exe’), nil, nil, SW_SHOW);

2.Aplikasi NotePad

ShellExecute(handle,’open’,PChar(‘notepad’), nil, nil, SW_SHOW);

3.Aplikasi NotePad dan membuka file

ShellExecute(handle,’open’,PChar(‘notepad’), PChar(‘c:\test\readme.txt’), nil, SW_SHOW);

4.Aplikasi web

ShellExecute(handle,’open’,PChar(‘http://www….’), PChar(‘c:\test\readme.txt’), nil, SW_SHOW);

5.Aplikasi print

ShellExecute(handle,’print’, PChar(‘c:\test\readme.txt’), nil, nil, SW_SHOW);

MESSAGE

-ShowMessage(‘Ini Tombol Pesan’);

-MessageDlg(‘Ini Tombol Pesan’,mtInformation,[mbYes],0);

If MessageDlg(‘Pilih Yes atau No?’,mtConfirmation,[mbYes,mbNo],0)=mrYes then

Begin

Label1.Text:=’Pilihan Anda Yes’;

End;

TMsgDlgtye:

mtWarning, mtError, mtInformation, mtConfirmation, mtCustom

TMsgBtn:

mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbHelp

Return Value:

mrYes, mbNo, mrOK, mrCancel, mrAbort, mrRetry, mrIgnore, mrAll, mrHelp

MEMINTA MASUKAN (INPUT BOX)

Var InputString:String;

Begin

InputString:=InputBox(‘Masukkan Nama:’,’Nama Anda Please’,’’);

End;

LISTBOX CASE OF

Procedure TForm1.FormActivate(Sender:TObject);

Begin

ListBox1.ShowHint:=true;

ListBox1.Hint:=’Pilih…!’;

ListBox1.items[0]:=’England’;

ListBox1.items[1]:=’Germany’;

ListBox1.items[3]:=’Spain’;

End;

Procedure TForm1.ListBox1Click(Sender:TObject);

Begin

ListBox1.Caption:=ListBox1.items[ListBox1.itemindex];

Case ListBox1.itemindex of

0 : Label1.caption:=’Hello’;

1 : Label1.caption:=’Oke’;

else

Label1.caption:=’ ’;

end;

end;

LISTBOX FOR TO DO

Procedure TForm1.btn_ulang(Sender:TObject);

Var i:integer;

Begin

ListBox1.Items.Clear;

For i:=1 to 5 do

Begin

ListBox1.items.add(inttostr(i));

End;

End;

LISTBOX WHILE DO

Procedure TForm1.btn_ulang(Sender:TObject);

Var i:integer;

Begin

ListBox1.Items.Clear;

i:=1;

While i<=5 do

Begin

ListBox1.items.add(inttostr(i));

i:=i+1;

End;

End;

LISTBOX REPEAT UNTIL

Procedure TForm1.btn_ulang(Sender:TObject);

Var i:integer;

Begin

ListBox1.Items.Clear;

i:=1;

Repeat

ListBox1.items.add(inttostr(i));

i:=i+1;

Until i>5;

End;

WARNA

Procedure TForm1.btn_warna(Sender:TObject);

Begin

Panel1.color:=clred;

Application.ProcessMessages;//repaint color form

Sleep(3000);//delays 3000 msec

Panel1.color:=clgreen;

End;

SAVE DAN LOAD FILE

1.

Procedure TForm1.loadfromfileTomemo(Sender:TObject);

Begin

If OpenDialog1.Execute then

Memo1.Lines.LoadFromFile(OpenDialog1.FileName);

End;

Procedure TForm1.savememoTofile(Sender:TObject);

Begin

If SaveDialog1.Execute then

Memo1.Lines.SaveToFile(SaveDialog1.FileName);

End;

2.

Procedure TForm1.loadfromfileTocombobox(Sender:TObject);

Begin

If OpenDialog1.Execute then

Combobox1.Items.LoadFromFile(OpenDialog1.FileName);

End;

Procedure TForm1.savecomboboxTofile(Sender:TObject);

Begin

If SaveDialog1.Execute then

Combobox1.Items.saveTofile(SaveDialog1.FileName);

End;

3.

Procedure TForm1.loadfromfileTochecklistbox(Sender:TObject);

Begin

If OpenDialog1.Execute then

Checklistbox1.Items.LoadFromFile(OpenDialog1.FileName);

End;

Procedure TForm1.savechecklistbox.Tofile(Sender:TObject);

Begin

If SaveDialog1.Execute then

Checklistbox1.Items.saveTofile(SaveDialog1.FileName);

End;

4.

Procedure TForm1.loadfromfileToradiobutton(Sender:TObject);

Begin

If OpenDialog1.Execute then

RadioGroup1.Items.LoadFromFile(OpenDialog1.FileName);

If Radiogroup1.Items.Count>5 then

RadioGroup1.Columns:=2;

End;

LAIN-LAIN

Procedure TForm1.FormShow(Sender:TObject);

Begin

If not ADOTable1.Active then ADOTable1.Open;

End;

Procedure TForm1.FormCloseQuery(Sender:TObject; var canclose:boolean);

Begin

If ADOTable1.Active then ADOTable1.Close;

End;

Procedure TForm1.DataSource1StateChange(Sender:TObject);

Var ds:string;

Begin

Case ADOTable1.State of

dsInactive:ds:=’tertutup’;

dsBrowse:ds:=’browse’;

dsEdit:=ds:=’edit’;

dsInsert:=ds:=’insert’;

Else

ds:=’’;

End;

Label1.caption:=ds;

End;

Procedure TForm1.HitungClick(Sender:TObject);

Var vtotal:integer;

Vbookmark:TBookmarkStr;

Begin

Vtotal:=0;

ADOTable1.DisableControls;

//ADOTable1.First;

Vbookmark:=ADOtable1.Bookmark;//simpan posisi record

While not ADOTable1.Eof do

Begin

Vtotal:=Vtotal+ADOTable1.FieldByName(‘Biaya’).AsInteger;

ADOTable1.Next;

End;

Label1.Caption:=IntToStr(Vtotal);

ADOtable1.Bookmark:= Vbookmark;//kembali ke posisi record

ADOTable1.EnableControls;

End;

Procedure TForm1.TampilDataClick(Sender:TObject);

Begin

Edit1.text:=ADOTable1.FieldByName(‘nama operator’).AsString;

End;

Procedure TForm1.EditDataClick(Sender:TObject);

Begin

ADOTable1.Edit;

ADOTable1.FieldByName(‘nama operator’).AsString:= Edit1.text;

ADOTable1.Post;

End;

Procedure TForm1.SimpanDataClick(Sender:TObject);

Begin

ADOTable1.Insert; // atau Append

ADOTable1.FieldByName(‘operator’).AsString:= Copy(Edit1.text,1,4);

ADOTable1.FieldByName(‘nama operator’).AsString:= Edit1.text;

//ADOTable1.InsertRecord(Copy(Edit1.Text,1,4), Edit1.Text);

ADOTable1.Post;

End;

Procedure TForm1.LocateDataClick(Sender:TObject);

Var fnamafield, fvaluefield:string;

Voptcari:TLocateOptions;

Begin

fnamafield:=’operator’;

fvaluefield:=Edit1.text;

voptcari:=[loCaseInsensitive];//pencarian tidak membedakan huruf

//voptcari:=[loPartialKey];//pencarian sebagian atau keseluruhan

if not ADOTable1.Locate(fnamafield, fvaluefield, voptcari) then

ShowMessage(fvaluefield+’ tidak ada ’+fnamafield+#13+’ record ke Eof’)

Else

ShowMessage(fvaluefield+’ ada ’+fnamafield+#13+’ record ke record tersebut’);

End;

Procedure TForm1.LookUpDataClick(Sender:TObject);

Var fnamafield, fvaluefield,fresultfield:string;

hasillookup:variant;

Begin

fnamafield:=’nama operator’;

fvaluefield:=Edit1.text;

fresultfield:=’operator; nama operator’;

hasillookup:=ADOTable1.Lookup(fnamafield, fvaluefield, fresultfield);

if not VarIsNull(hasillookup) then

ShowMessage(‘Data ’+VarToStr(hasillookup[1])+’ditemukan ’+#13+’ record tidak berubah’)

Else

ShowMessage(‘Data ’+VarToStr(hasillookup[1])+’tidak ditemukan ’+#13+’ record tidak berubah’);

End;

Procedure TForm1.SeekDataClick(Sender:TObject);

Var valuefield:string;

Begin

fvaluefield:=Edit1.text;

ADOtable1.Seek(fvaluefield, soFirstEQ);

if ADOTable1.Eof then

ShowMessage(fvaluefield+’ tidak ada ’+fnamafield+#13+’ record ke Eof’)

Else

ShowMessage(fvaluefield+’ ada ’+fnamafield+#13+’ record ke record tersebut’);

End;

Procedure TForm1.CompacDBClick(Sender:TObject);

Var dbSource,dbDestination:widestring;

Const

vcaProvider=’Provider=Microsoft.Jet.OLEDB.4.0; Data Source=’;

Begin

dbSource:=vcsProvider+EdSource.Text;

dbDestination:=vcsProvider+EdDestination.Text;

if FileExists(EdDestination.Text) then

begin

ShowMessage(‘Hapus File ‘+EdDestination.Text);

DeleteFile(EdDestination.Text);

End;

JetEngine1.CompactDatabase(dbSource, dbDestination);

ShowMessage(‘File ‘+EdDestination.Text+’ telah di Compact’);

End;

DataBase Desktop

1. Hubungan Antara Combo Box dan Memo:

Procedure Tform1.ComboBox1Change(Sender:TObject);

Begin

Memo1.Lines.Clear;

Case Combobox1.ItemIndex of

0: Memo1.Lines.Add(Combobox1.Items[0]);

1: Memo1.Lines.Add(Combobox1.Items[1]);

2: Memo1.Lines.Add(Combobox1.Items[2]);

3: Memo1.Lines.Add(Combobox1.Items[3]);

4: Memo1.Lines.Add(Combobox1.Items[4]);

End;

End;

Procedure Tform1.Memo1Change(Sender:TObject);

Begin

If Combobox1.ItemIndex=0 then

Begin

Memo1.Color:=clblue;

Memo1.Font.Style:=[fsitalic];

Memo1.Font.Color:=clwhite;

End;

End;

2.Database Desktop

Navigator:

-Previous

Procedure Tfrmjurusan.btnPreviousClick(Sender:Tobject);

Begin

Tbjurusan.Prior;

End;

-Next

Tbjurusan.Next;

-Top

Tbjurusan.First;

-Bottom

Tbjurusan.Last;

FormCreate:

Begin

Ednim.text:=’ ‘;

Edjurusan.text:=’ ‘;

Ednim.enabled:=true;

DbComboJurusan:=false;

Edjurusan.enabled:=false;

Ednim.color:=clMenu;

DbComboJurusan.color:= clMenu;

Edjurusan.color:= clMenu;

End;

NIM KeyPress:

Var Ada:Boolean;

Begin

If not (key=chr(13)) then exit;

If length(ednim.text)<12 then exit;

Ada:=Tmahasiswa.FindKey([ednim.text]);

If Ada then

Begin

Beep;

Ednim.SetFocus;

Ednim.SelectAll;

Ednama.text:=Tmahasiswa[‘nama’];

DbComboJurusan.text:= Tmahasiswa[‘kodejurusan’];

//Pengembangan

Tjurusan.FindKey([DbComboJurusan.Text]);

Edjurusan.text:=Tjurusan[‘jurusan’];

Exit;

Ednama.SetFocus;

End;

End;

Simpan Click:

Begin

With Tmahsiswa do

Begin

Append;

FieldByName(‘NIM’).AsString:=edNIM.text;

FieldByName(‘Nama’).AsString:=ednama.text;

FieldByName(‘Kodejurusan’).AsString:=DbCombojurusan.text;

FieldByName(‘Jurusan’).AsString:=edjurusan.text;

Post;

End;

End;

DataBaruClick:

Begin

FormCreate(Sender);

edNIM.SetFocus;

End;

3.Relasi Database Engine ADO

-Klik Objek ADOTable2 kemudian pilih properties MasterSource=DataSource1, MasterField (Joined Fields=KodeJurusan->KodeJurusan)

-Procedure Tform1.DBGridMahasiswaKeyPress(Sender:Tobject; Var Key:Char);

Begin

If Key=Chr(13) then

Edjumlah.text=IntToStr(ADOTable2.RecordCount);

End;

4.Data Module

-Buat : Menu File -> New -> DataModule

-Masukkan komponen akses ke dalam DataModule

Stopwatch, Tipe Data, Konversi Nilai, Format Nilai, Error Detection dan Function / Procedure

Membuat stopwatch

Procedure tform1.formcreate(sender:tobejct);

Begin

Timer1.interval:=1;

End;

Procedure tform1.button1click(sender:tobejct);

Begin

If button1.caption=’Start’ then

Begin

Awal:=time; // awal : tdatetime; pada variabel global

Edit1.text:=TimeToStr(Time)

Button1.caption:=’Stop’;

End

Else If button1.caption=’Stop’ then

Button1.caption:=’Selesai’;

Else

Application.termenate;

End;

Procedure tform1.timer1timer(sender:tobejct);

Var slama:string;

Begin

If button1.caption=’Stop’ then

Begin

Akhir:=time; // akhir : tdatetime; pada variabel global

Edit2.text:=TimeToStr(akhir);

Lama:=(akhir-awal)*100000; // lama : real; pada variabel global

Str(lama:12:2,slama);

Edit3.text:=slama;

End;

End;

Komponen Delphi

1.Project

Sekumpulan form, unit, dan beberapa hal lain dalam program aplikasi (program aplikasi itu sendiri).

2.Form

Suatu object yang dipakai sebagai tempat bekerja program aplikasi.

3.Unit

Modul kode program. Unit dapat berisi kumpulan function atau procedure yang dipakai project.

4.Program

Program dibangun dari satu unit atau lebih. Program akan mengatur form dan unit serta menjalankannya. Pendeknya, kalau unit form dipakai untuk mengelola form, maka program dipakai untuk mengelola project.

4.Properties

Mendefinisikan atribut atau setting suatu object, misalnya menentukan warna object, ukuran object dan lain-lain.

5.Event

Peristiwa atau kejadian yang diterima oleh suatu object, misalnya klik, drag dan lain-lain.

6.Metode

Procedure atau perintah yang melekat pada suatu object, misalnya object dataset mempunyai metode untuk menggerakkan petunjuk record.

7.Pilihan editor kode program

Menu tools -> editor options

-Code completion

Untuk membantu menyelesaikan pengetikan kode program.

Atau mengetik suatu pernyataan, diikuti tombol Ctrl+Spasi untuk menampilkan pilihan-pilihan.

-Code parameters

Untuk menampilkan parameter pada metode yang diketik.

-Tooltip Expression Evalution

Untuk proses debugging

-Tooltip Symbol Insight

Menampilkan informasi deklerasi pada semua identifier yang ditunjuk mouse.

Tipe Data

1.Tipe Integer

Tipe Rentang nilai Byte

Byte 0..255 1

Word 0..65535 2

Longword 0..4294967295 4

ShortInt -128..127 1

SmallInt -32768..32767 2

LongInt -2147483648..2147483647 4

Integer -2147483648..2147483647 4

Cardinal 0.. 4294967295 4

Int64 -263..263-1 8

“Sebaiknya gunakan Int64 untuk unjuk kerja yang lebih baik“

2.Tipe Real

Tipe Rentang nilai Byte

Real48 2.9×10-39..1.7×1038 6

Single 1.5×10-45..3.4×1038 4

Double 5.0×10-324..1.7×10308 8

Extended 3.6×10-4951..1.1×104932 10

Comp -263+1..263-1 8

Currency -922337203685477.5808..

922337203685477.5807 8

“Tipe Double ekuivalen dengan tipe Real yang umum dipakai dan Tipe Currency termasuk fixed-point (tidak ditulis ax10b yang mempunyai sifat meminimalkan kesalahan penghitungan pembulatan untuk nilai mata uang“

3.Tipe Boolean

Tipe Byte

Boolean 1

ByteBool 1

WordBool 2

LongBool 4

“Sebaiknya gunakan tipe Boolean. Tipe yang lain hanya digunakan untuk menjaga kompatibilitas, yaitu jika program akan dihubungkan dengan program dalam bahasa lain atau dengan bagian windows yang menggunakan tipe yang sama“

4.Tipe Character

Tipe Isi Byte

Char 1 karakter ANSI (8 bit) 1

AnsiChar 1 karakter ANSI (8 bit) 1

WideChar 1 karakter Unicode (16 bit) 2

5.Tipe String

Tipe Isi Maksimal Byte

ShortString 256 karakter 2 s.d. 256

AnsiString 231 karakter 4 s.d. 2GB

WideString 230 karakter 4 s.d. 2GB

“Gunakan tipe String yang umum dipakai. Pada saat kompilasi, tipe string akan otomatis dianggap sebagai AnsiString jika direktif adalah {$H+} atau dianggap ShortString jika direktif adalah {$H-}.

Jika tidak menggunakan direktif maka dianggap default {$H+}“

6.Tipe Array

Variabel tunggal yang dapat dipakai menyimpan sekumpulan data sejenis.

Contoh:

Var Bulan:array[1..12] of AnsiString;

Begin

Bulan[1]:=’Januari’;

Bulan[2]:=’Pebruari’;

Edit1.text:=Bulan[1];

Edit2.text:=Bulan[2];

7.Tipe Record

Untuk menyimpan sekumpulan data yang mungkin berbeda tipe, tetapi saling berhubungan.

Contoh:

Type RecBrg=Record

Kode : AnsiString[6];

Nama : AnsiString[30];

Hsatuan : Currency;

End;

Var Barang:RecBrg;

Begin

Barang.kode:=’PS.001’;

Barang.nama:=’Pensil 2B’;

Barang.hsatuan:=2500;

End.

8.Tipe Terenumerasi dan Subrange

Untuk menyatakan data berurutan yang tipe sama.

Contoh enumerasi:

Type warna=(merah, biru, hijau, kuning);

Var warnacat:warna;

Contoh subrange:

Type

warnaku=biru..orange;

hurufbesar=’A’..’Z’;

Nilai=0..100;

Var

Warnacat:warnaku;

Nilaiujian:nilai;

Nilaiakhir:hurufbesar;

9.Tipe ordinal

Tipe ordinal terdiri atas tipe integer, character, boolean, enumerated dan subrange tipe. Tipe ordinal mempunyai sifat terurut.

Function Hasil Keterangan

Ord(n) n misal n=3, hasil=3

Pred(n) n-1 misal n=3, hasil=2

Succ(n) n+1 misal n=3, hasil=4

High(n) nilai tertinggi tipe data n misal n adalah integer, hasil = 2147483647

Low(n) nilai terendah tipe data n misal n adalah integer, hasil = -2147483648

10.Konstanta

Suatu nilai yang bersifat tetap.

Contoh:

Const DisAng=0.1;

11.Variabel

Suatu tempat yang dialokasikan dalam memori yang diberi nama (sebagai pengenal) untuk menampung suatu data.

12.Operator

Untuk memanipulasi dan mengolah data.

Operator hierarki

@, not first tertinggi

*,/,div,mod,and,shl,shr,as kedua

+,-,or,xor ketiga

=,<>,<,>,<=,>=,in,is keempat

12.1.Operator Penugasan (Assignment)

Simbol dengan :=

12.2.Operator Aritmatika

*,/,div,mod,+,-

Pangkat:

A:=2; b:=3;

a:=exp(b*ln(a)); // 23 = 8

12.3.Operator Relasi

=,<>,<,>,<=,>=

12.4.Operator Logika

Not, And, Or, Xor

Kontrol Program

1.Pengulangan

While data[i] <> x do i:=i+1; // pengulangan satu pernyataan

– While not eof (inputfile) do // pengulangan satu blok pernyataan

Begin

Readln(inputfile,line);

Proses(line);

End;

– Repeat

k:=i mod j;

i:=j;

j:=k;

Until j=0;

– For x:=listbox1.items.count-1 downto 0 do

Listbox1.items[x]:=uppercase(listbox1.items[x]);

– For c:=red to blue do check(c);

2.Percabagan bersyarat

if j=0 then

Exit

Else

Hasil:=i/j;

– case warnaku of

merah :x:=1;

hijau :x:=2;

biru :x:=3;

kuning, orange, hitam : x:=0;

end;

3.Percabagan tidak bersyarat

begin

Label awal;

A:=A+2;

If (a<100) then goto awal;

End;

4.Pernyataan

– break; // keluar dari pengulangan

– exit; // keluar dari suatu blok program (procedure atau function)

5.Percabangan

try

x:=y/z;

except

on EzeroDivide do HandleZeroDivide;

on Eoverflow do HandleOverflow;

on EmathError do HandleMathError;

else

HandleAllOthers;

end;

“Jika terdapat kesalahan pada pernyataan di bawah try, maka program langsung melompat ke pernyataan except dan melaksanakan pernyataan di bawahnya”

“Struktur ini akan bekerja hanya jika pilihan Stop on Delphi Exceptions yang terdapat pada tab Language Exceptions dalam menu tools, debugger options tidak diberi tanda pilih”

try

…//proses file F

Finally

Closefile(F);

end;

“Pernyataan Finally selalu dilaksanakan”

6.Function dan Procedure

Procedure akan ditulis sebagai satu pernyataan yang berdiri sendiri, sedangkan function ditulis di sebelah kanan pernyataan lain atau ditulis sebagai suatu nilai yang dimasukkan ke dalam variabel.

1.Str // procedure untuk mendapatkan nilai string

Contoh:

Begin

I:=1500;

Str(I:8:2, S);

From1.caption:=S;

End;

2.StrToCurr // function untuk mendapatkan nilai currency

Contoh:

Var I:currency;

S:string;

Begin

S:=’1500’;

I:=StrToCurr(S);

End;

3.StrToDate // function untuk mendapatkan nilai Tdatetime

Contoh:

Var

Adate : tdatetime;

Days : Array [1..7] of string;

Begin

Days[1]:=’sunday’;

Days[2]:=’monday’;

Adate := StrToDate(edit1.text);

ShowMessage(edit1.text+’ is a ‘+days[DayOfWeek(Adate)];

End;

4.StrToFloat // function untuk mendapatkan nilai extended

5.StrToInt // function untuk mendapatkan nilai integer

6.Uppercase // function untuk mendapatkan huruf besar

7.Lowercase // function untuk mendapatkan huruf kecil

8.Val // procedure untuk mendapatkan nilai numerik dari string

Contoh:

Var I, Code : integer;

Begin

Val(edit1.text, i ,code);

If code<>0 then

ShowMessage(‘error pada posisi:’+IntToStr(code))

Else

ShowMessage(‘nilai:’+IntToStr(i));

End;

9.DateToStr // function untuk mendapatkan nilai string dari data bertipe Tdatetime

Contoh:

Procedure tform1.button1click(sender:tobject);

Begin

Label1.caption:=’today is:’+DateToStr(date());

End;

10.Format // function untuk mendapatkan nilai string dari data array

Code Keterangan

d argumen atau data yang diformat harus bertipe integer

u sama dengan d, tetapi tidak menghasilkan tanda positif atau negatif

e argumen harus bertipe floating-point

f sama dengan e, tetapi tidak menggunakan angka eksponen

g menggunakan format yang paling mungkin antara e dan f

n argumen harus bertipe floating-point, tidak menggunakan angka eksponen, menggunakan pemisah ribuan dan desimal

m argumen harus bertipe floating-point, menggunakan format currency

p argumen harus bertipe pointer, hasilnya berupa 8 karakter string yang menunjukkan nilai pointer dalam heksa desimal

s argumen harus bertipe string atau Pchar

x argumen harus bertipe integer, hasilnya berupa string dalam bentuk heksa desimal

Contoh:

Format(‘%8.2f’,[123.456]);

Edkurs.text:=Format(‘%25.2n’,[kurs]);

Edhbeli.text:=Format(‘%12.2m’,[nhbeli]);

11.Pos // function untuk mencari string didalam string lain

Contoh:

X:=Pos(‘ab’,’abcdef’); // x berisi 1

X:=Pos(‘cde’,’abcdef’); // x berisi 3

X:=Pos(‘ba’,’abcdef’); // x berisi 0

12.Copy // function untuk mengambil sebagian string dari string lain

Contoh:

A:=’bandung kota kembang’;

B:=copy(A,2,10); // B berisi andung kot

7. Interaksi dengan delphi lewat VCL (Visual Compenent Library)

1. Menghapus tanda koma

Contoh:

Procedure tform1.edkurschange(sender:tobject);

Var

Kurs, jumlah, rupiah : currency;

Skurs, sjumlah : string[30];

Begin

Skurs:=edkurs.text;

//buang tanda koma

While pos(‘.’, skurs)>0 do

Delete(skurs, pos(‘.’, skurs),1);

Sjumlah:=edjumlah;

//buang tanda koma

While pos(‘.’, sjumlah)>0 do

Delete(sjumlah, pos(‘.’, sjumlah),1);

If length(sjumlah)>0 then

Jumlah:=StrToCurr(sjumlah)

Else

Jumlah:=0;

Kurs:StrToCurr(skurs);

Rupiah:=kurs*jumlah;

Edrupiah.text:=format(‘%m’, [rupiah]);

End;

Proses Variabel, Logika, Looping dan Operasional Form

Contoh pertama:

//nilai awal

procedure tform1.cmulaiclick(sender:tobject);

begin

tlm.text:=’’;

thk.text:=’’;

tjumlah.text:=’’;

tlm.setfocus() // fokus

end;

procedure tform1.formcreate(sender:tobject);

begin

tjumlah.enabled:=false; //tidah aktif

tjumlah.color:=clbtnface; //warna form standar

end;

procedure tform1.thkchange(sender:tobject);

var sjml:string[30];

tsem:integer;

slm,shk,sjumlah:single;

begin

val(tlm.text, slm, tsem); //konversi dari huruf ke angka

val(thk.text, shk, tsem); //konversi dari huruf ke angka

sjumlah:=slm*shk;

str(sjumlah:30:0,sjml); //konversi dari angka ke huruf

tjumlah.text:=sjml; //menyimpan nilai ke text

end;

procedure tform1.cbatal(sender:tobject);

begin

formcreate(sender); // menjalankan formcreate

tlm.setfocus(); // fokus

end;

procedure tform1.cselesai(sender:tobject);

begin

application.terminate; //menutup aplikasi atau close; //menutup form

end;

Contoh kedua:

procedure tform1.thkchange(sender:tobject);

var sjml, sds, sbyr :string[30];

tsem:integer;

slm,shk,sjumlah,sdis,sbayar:single;

begin

val(tlm.text, slm, tsem); //konversi dari huruf ke angka

val(thk.text, shk, tsem); //konversi dari huruf ke angka

sjumlah:=slm*shk;

str(sjumlah:30:0,sjml); //konversi dari angka ke huruf

tjumlah.text:=sjml; //menyimpan nilai ke text

//syarat kondisi if

If sjumlah>=100000 then

Sdis:=sjumlah*0.1

Else

Sdis:=0; //akhir kondisi if

Sbayar:=sjumlah-sdis;

Str(sdis:30:0,sds);

Str(sbayar:30:0,sbyr);

Tdis.text:=sds;

Tbayar.text:=sbyr;

end;

Contoh ketiga:

procedure tform1.thkchange(sender:tobject);

var sjml, sds, skdis, sbyr :string[30];

tsem:integer;

slm,shk,sjumlah,sdis,sbayar:single;

begin

val(tlm.text, slm, tsem); //konversi dari huruf ke angka

val(thk.text, shk, tsem); //konversi dari huruf ke angka

sjumlah:=slm*shk;

str(sjumlah:30:0,sjml); //konversi dari angka ke huruf

tjumlah.text:=sjml; //menyimpan nilai ke text

//syarat kondisi if

If sjumlah>=100000 then

begin

Sdis:=sjumlah*0.1;

Skdis:=’dapat diskon’;

end

Else

begin

Sdis:= 0;

Skdis:=’tak dapat diskon’;

End; //akhir kondisi if

Sbayar:=sjumlah-sdis;

Str(sdis:30:0,sds);

Str(sbayar:30:0,sbyr);

Tdis.text:=sds;

Tkdis.text:=skdis;

Tbayar.text:=sbyr;

end;

Contoh keempat: //IF , RADIO BUTTON ATAU CHECK BOX

procedure Tform1.thkChange(Sender: TObject);

var sjml, sds, skdis, sbyr :string[30];

tsem:integer;

slm,shk,sjumlah,sdis,sbayar:single;

begin

val(tlm.text, slm, tsem); //konversi dari huruf ke angka

val(thk.text, shk, tsem); //konversi dari huruf ke angka

sjumlah:=slm*shk;

str(sjumlah:30:0,sjml); //konversi dari angka ke huruf

tjumlah.text:=sjml; //menyimpan nilai ke text

//syarat kondisi if dengan radio button atau check box

If pil1.Checked=true then

Sdis:=sjumlah*0.1;

Else

If pil2.Checked=true then

Sdis:=sjumlah*0.2;

else

Sdis:= 0; //akhir kondisi if

If pil1.checked or pil2.checked then

Skdis:=’dapat diskon’;

Else

Skdis:=’tak dapat diskon’; //akhir kondisi if

Sbayar:=sjumlah-sdis;

Str(sdis:30:0,sds);

Str(sbayar:30:0,sbyr);

Tdis.text:=sds;

Tkdis.text:=skdis;

Tbayar.text:=sbyr;

end;

Contoh kelima: //CASE OF

procedure Tform1.thkChange(Sender: TObject);

var sjml, sds, skdis, sbyr :string[30];

tsem:integer;

spil:byte;

slm,shk,sjumlah,sdis,sbayar:single;

begin

val(tlm.text, slm, tsem); //konversi dari huruf ke angka

val(thk.text, shk, tsem); //konversi dari huruf ke angka

sjumlah:=slm*shk;

str(sjumlah:30:0,sjml); //konversi dari angka ke huruf

tjumlah.text:=sjml; //menyimpan nilai ke text

val(tpil.Text,spil,tsem);

//syarat kondisi case

case spil of

1:begin

pil1.Checked:=true;

Sdis:=sjumlah*0.1;

end;

Else

begin

pil2.Checked:=true;

Sdis:=0;

End; //akhir kondisi case

end;

if pil1.Checked then

skdis:=’dapat diskon’

else

skdis:=’tak dapat diskon’;

Sbayar:=sjumlah-sdis;

Str(sdis:30:0,sds);

Str(sbayar:30:0,sbyr);

Tdis.text:=sds;

Tkdis.text:=skdis;

Tbayar.text:=sbyr;

end;

Contoh keenam: //FOR TO DO

procedure Tform1.tposisiChange(Sender: TObject);

var Tsem, A, Ss, I, F, Sposisi : integer;

Tss : string[30];

Begin

Val(Tposisi.text, Sposisi, Tsem);

If Sposisi<1 then

Ss:=0

Else

If Sposisi=1 then

Ss:=1

Else

Begin

A:=2;

Ss:=1;

F:=2;

For I:=2 to Sposisi Do

Begin

F:=F*A;

Ss:=Ss+(F-1);

End;

End;

Str(Ss:30,Tss);

Ts.text:=Tss;

End;

Contoh ketujuh: //WHILE DO

procedure Tform1.tposisiChange(Sender: TObject);

var Tsem, A, Ss, I, F, Sposisi : integer;

Tss : string[30];

Begin

Val(Tposisi.text, Sposisi, Tsem);

If Sposisi<1 then

Ss:=0

Else

If Sposisi=1 then

Ss:=1

Else

Begin

A:=2;

Ss:=1;

F:=2;

I:=2;

While I<=Sposisi Do

Begin

F:=F*A;

Ss:=Ss+(F-1);

I:=I+1;

End;

End;

Str(Ss:30,Tss);

Ts.text:=Tss;

End;

Contoh kedelapan: //REPEAT

procedure Tform1.tposisiChange(Sender: TObject);

var Tsem, A, Ss, I, F, Sposisi : integer;

Tss : string[30];

Begin

Val(Tposisi.text, Sposisi, Tsem);

If Sposisi<1 then

Ss:=0

Else

If Sposisi=1 then

Ss:=1

Else

Begin

A:=2;

Ss:=1;

F:=2;

I:=2;

Repeat

F:=F*A;

Ss:=Ss+(F-1);

I:=I+1;

Until I=Sposisi

End;

Str(Ss:30,Tss);

Ts.text:=Tss;

End;

Contoh kesembilan: //COMBOBOX

Procedure tform1.formcreate(sender:tobject);

Begin

Cmbjnsukr.items.clear;

Cmbjnsukr.items.append(‘M’);

Cmbjnsukr.items.append(‘CM’);

Cmbjnsukr.onchange:=Edhrgkonv.onchange; // perubahan pada objek

End;

Procedure tform1.edpanjangchange(sender:tobject);

Var

Lebar, panjang, luas, hrgkonv:single;

Kode:integer;

Begin

If UPPERCASE(cmbjnsukr.text)=’M’ then

hrgkonv:=100

Else

If UPPERCASE(cmbjnsukr.text)=’CM’ then

hrgkonv:=1

Else

begin

Cmbjnsukr.selectall;

Cmbjnsukr.setfocus;

End;

Edhrgkonv.text:=format(‘%8.0n’,[hrgkonv]); // format desimal

Val(edpanjang.text, panjang, kode);

Val(edlebar.text, lebar, kode);

Val(edhrgkonv.text, hrgkonv, kode);

Luas:=(panjang*lebar)*(lebar*hrgkonv);

Edluas.text:=format(‘%20.0n’,[luas]);

End;

Contoh kesepuluh: // SCROLLBAR

Procedure tform1.SBPLchange(sender:tobject);

Begin

Edpl.text:=format(‘%18.0n’,[sbpl.position/100);

End;

Procedure tform1.formcreate(sender:tobject);

Begin

Sbpl.min:=0;

Sbpl.max:=100000;

Sbpl.smallchange:=100;

Sbpl.largechange:=1000;

End;

Contoh kesebelas: //SIMPAN

Procedure tform1.cbatalclick(sender:tobject);

Begin

Formcreate(sender);

Edkdbrg.setfocus();

End;

Procedure tform1.csimpanclick(sender:tobject);

Var

Mreorder, mqty, kode : integer;

Begin

Val(edqty.text, mqty, kode);

Val(edreorder.text, mreorder, kode);

Tbbarang.append; // nama dari table1.name

Tbbarang[‘kdbrg’]:=edkdbrg.text;

Tbbarang[‘nmbrg’]:=ednmbrg.text;

Tbbarang[‘qty’]:=mqty;

Cbatalclick(sender);

End;

Procedure tform1.edkdbrgchange(sender:tobject);

Var

Ada:boolean;

Mreorder, mqty : single;

Begin

If LENGTH(edkdbrg.text)<20 then

Exit;

Ada:tbbarang.findkey([edkdbrg.text]);

If ada then

Begin

Beep;

Edkdbrg.focused;

Edkdbrg.selectall;

Ednmbrg.text:=tbbarang[‘nmbrg’];

Edjenis.text:=tbbarang[‘jenis’];

Mqty:=tbbarang[‘qty’];

Edqty.text:=format(‘%4.0n’, [Mqty]);

Exit;

End

Else

Begin

Showmessage(‘data barang tidak ada’);

Exit;

End;

Contoh keduabelas: //EDIT

Procedure tform1.ceditclick(sender:tobject);

Var

Mreorder, mqty, kode : integer;

Begin

Val(edqty.text, mqty, kode);

Val(edreorder.text, mreorder, kode);

Tbbarang.EDIT; // nama dari table1.name

Tbbarang[‘kdbrg’]:=edkdbrg.text;

Tbbarang[‘nmbrg’]:=ednmbrg.text;

Tbbarang[‘qty’]:=mqty;

Cbatalclick(sender);

End;

Contoh ketigabelas: //HAPUS

Procedure tform1.chapusclick(sender:tobject);

Begin

Tbbarang.DELETE; // nama dari table1.name

Cbatalclick(sender);

End;

Contoh keempatbelas: //CARI dan ditampilkan di GRID

Procedure tform1.ednmbrgchange(sender:tobject);

Begin

With Tbbarang do

Begin

Indexname:=’namabrg’;

Findnearest([ednmbrg.text]); //mencari nama barang

End;

End;

Contoh kelimabelas: //Mencetak & Lihat Layar Data Tabel

  1. Merancang Bentuk Report
  2. Membuat Qreport (File New, Report (QuickReport) )
  3. Tempatkan Ttable
  4. Atur report dengan mengklik ganda pada report
  5. menampilkan report :
    1. Qrbarang.preview;
    2. Qrbarang.print ;

Contoh keenambelas: //Menginput data tabel hubungan (relasi)

Procedure tform1.formcreate(sender:tobject);

Var i:integer;

Begin

Edtotal.enabled:=true;

Ednmsup.enabled:=true;

Mtotal:=0;

Edtotal.text:=format(“%20.0m”, [mtotal]);

Ednonta.text:=””;

Edkdsup.text:=””;

Ednmsup.text:=””;

Edtglnota.text:=datetostr(now);

Tbstransb.first;

While not tbstransb.eof do

Begin

Tbstransb.delete;

End;

For i:=1 to 20 do

Begin

Tbstransb.append;

Tbstransb[‘kdbrg’]:=’’;

End;

Tbstransb.first;

Beep;

End;

Artinya:

Penentuan nilai awal pada saat form dimuat/dipanggil.

Procedure tform1.dbgstransbkeypress(sender:tobject;Var key:char);

Var ada:boolean;

Jmllama:single;

Jmlbaru:=single;

Begin

If not (key=chr(13)) then exit;

If dbgstransb.selectedindex>1 then begin end;

Artinya:

Event dilaksanakan pada saat user menekan tombol tertentu pada grid, jika tombol enter ditekan maka akan keluar dan jika user memilih field kunatiti beli,

harga beli, jumlah maka program akan tetap.

If dbgstransb.selectedindex=0 then // nama barang

Begin

Tbbarang.indexname:=’barang’;

TRY

Ada:=tbbarang.findkey([uppercase(tbstransb[‘nmbrg’])]);

EXCEPT

Dbgstransb.selectedindex:=1;

End;

Artinya:

Jika memilih field nmbrg maka akan diaktifkan file index dengan nama barang dan mencari data nama barang pada tabel barang, jika proses salah kursor akan difokus pada field kdbrg.

If ada then

Begin

Tbstransb.edit;

Trstransb[‘kdbrg’]:=tbbarang[‘kdbrg’];

Trstransb[‘nmbrg’]:=tbbarang[‘nmbrg’];

Beep;

Dbgstransb.selectedindex:=2;

End

Else

Dbgstransb.selectedindex:=1;

Exit;

End;

Artinya:

Jika kodebarang ketemu maka akan dilakukan proses edit kode barang dan nama barang ke tabel stransb dan kursor difokus ke field harga, tetapi jika kode barang tidak ditemukan maka difokus ke kodebrg.

If dbgstransb.selectedindex=1 then //kode barang

Begin

Tbbarang.indexname:=’’;

TRY

Ada:=tbbarang.findkey([uppercase(tbstransb[‘kdbrg’])]);

EXCEPT

Dbgstransb.selectedindex:=1;

Exit

End;

Artinya:

Jika pada objek grid dbgstransb diplih field kode barang, maka index file dikembalikan ke index kode barang, jika proses salah maka kursor akan difokus ke field kode barang.

If dbgstransb.selectedindex=2 then //harga beli

Begin

Jmllama:=tbstransb.fields[4].as float;

Tbstransb[‘jumlah’]:=tbstransb[‘hrgbeli’]*tbstransb[‘qtybeli’];

Jmlbaru:=tbstransb.fields[4].as float;

Mtotal:=mtotal+(jmlbaru-jmllama);

Edtotal.text:=format(‘%20.2m’, [mtotal]);

Dbgstransb.selectedindex:=3;

Exit

End;

If dbgstransb.selectedindex=3 then //kuantiti beli

Begin

Jmllama:=tbstransb.fields[4].as float;

Tbstransb[‘jumlah’]:=tbstransb[‘hrgbeli’]*tbstransb[‘qtybeli’];

Jmlbaru:=tbstransb.fields[4].as float;

Mtotal:=mtotal+(jmlbaru-jmllama);

Edtotal.text:=format(‘%20.2m’, [mtotal]);

Dbgstransb.selectedindex:=0;

Tbstransb.next;

End;

End; // end procedure

Artinya:

Jika field harga beli dipilih maka akan dihitung jumlah lama dan jumlah baru dari perhitungan harga beli dikali kuantiti beli, kemudian dihitung total dari perhitungan seluruh jumlah. Setelah itu kursor difokus pada field nama barang pada record berikutnya.

Procedure tform1.dbgstransbkeypress(sender:tobject;Var key:char);

Var cektgl:tdatetime;

Begin

TRY

Cektgl:=strtodate(edtglnota.text);

Edkdsup.setfocus;

EXCEPT

Showmessage(‘format tanggal : dd-mm-yyyy’);

Edtglnota.setfocus;

End;

End;

Artinya:

Jika format tanggal tidak sesuai maka difokus ke tanggal nota.

Procedure tform1.csimpanclick(sender:tobject);

Var ada:boolean;

Begin

Tbstransb.first;

Tbbarang.indexname:=’’;

While not tbstransb.eof do

Begin

Ada:=tbbarang.findkey([tbstransb[‘kdbrg’]]);

If ada then

TRY

Begin

Tbtransb.append;

Tbtransb[‘nonota’]:=ednonota.text;

Tbtransb[‘kdbrg’]:= Tbstransb[‘kdbrg’];

Tbtransb[‘qtybeli’]:= Tbstransb[‘qtybeli’];

Tbtransb[‘hrgrg’]:= Tbstransb[‘hrgbrg’];

End;

EXCEPT

Showmessage(‘ednonota.text+’ ,’+edtglnota.text+’,’+tbstransb[‘kdbrg’]

+chr(13)+’sudah ada !!!’);

End;

Tbstransb.next;

End;

Tbtransb.append;

Tbtransb[‘nonota’]:=ednonota.text;

Tbtransb[‘kdbrg’]:= Tbstransb[‘kdbrg’];

Tbtransb[‘qtybeli’]:= Tbstransb[‘qtybeli’];

Tbtransb[‘hrgrg’]:= Tbstransb[‘hrgbrg’];

Formcreate(sender);

End;

Artinya:

Untuk menyimpan dari tabel sementara stransb ke dalam tabel transb.

Procedure tform1.cbatalclick(sender:tobject);

Begin

Formcreate(sender);

End;

Artinya:

Untuk melakukan modul program formcreate.

Procedure tform1.edkdsupchange(sender:tobject);

Var ada:boolean;

Begin

If length(edkdsup.text)<9 then exit;

Ada:=tbsupplier.findkey([edkdsup.text]);

If ada then

Begin

Beep;

Ednmsup.text:=tbsupplier[‘nmsup’];

Dbgstransb.setfocus;

End;

End;

Artinya:

Jika edkdsup dirubah maka jika panjang < 9 digit akan keluar, jika tidak maka dicari di tabel supplier, jika ketemu akan ditampilkan nama supplier pada ednmsup dan kursor difokus ke grid dbgstransb.

Procedure tform1.enmbrgpress(sender:tobject;var key:char);

Begin

If key=chr(13) then

Begin

Tbstransb.edit;

Tbstransb[‘kdbrg’]:=tbbarang[‘kdbrg’];

Tbstransb[‘nmbrg’]:=tbbarang[‘nmbrg’];

Dbgstransb.setfocus;

Dbgstransb.selectedindex:=1;

End;

End;

Procedure tform1.enmbrgchange(sender:tobject;var key:char);

Begin

Tbbarang.index:=’barang’;

Tbbarang.findnearest([enmbrg.text]);

End;

Artinya:

Jika enmbrg dienter maka field kode barang dan nama barang akan diedit dan kursor difokus ke grid dbgstransb pada field kode barang.

Contoh ketujuhbelas: //SQL



Procedure tform1.btampilclick(sender:tobject);

Var mtotal:single;

Begin

TRY

Begin

Qutransb.sql.clear;

If length(edselect.text)=0 then

Qutransb.sql.add(‘select *’)

Else

Qutransb.sql.add(‘select ’+edselect.text);

Qutransb.sql.add(‘from ’+quotedstr(‘c:\databorland\program\transb.db’));

If length(edwhere.text)>0 then

Qutransb.sql.add(‘where ’+edwhere.text);

If length(edorder.text)>0 then

Qutransb.sql.add(‘order by ’+edorder.text);

Qutransb.open;

Qutransb.first;

Mtotal:=0;

While not qutransb.eof do

Begin

Mtotal:=mtotal+(qutransb.fieldbyname(‘qtybeli’)asfloat* qutransb.fieldbyname(‘hrgbeli’)asfloat);

qutransb.next;

end;

qutransb.first;

edtotal.text:=format(‘%22.0m’, [mtota;]);

end;

EXCEPT

Begin

Beep;

Edtotal.text:=’’;

Showmessage(‘pernyataan sql salah !!!’);

End;

End;

End;

Procedure tform1.edselectchange(sender:tobject);

Begin

Btampil.default:=true;

End;

Procedure tform1.edwherechange(sender:tobject);

Begin

Btampil.default:=true;

End;

Procedure tform1.edorderchange(sender:tobject);

Begin

Btampil.default:=true;

End;

Contoh kedelapanbelas: //setup disk

Langkah:

  1. Buat file .exe.
  2. Pilih installshield express for delphi dan express for delphi.
  3. Pilih a new setup project.
  4. Tentukan project name, folder hasil dari setup, create.
  5. Pilihan application information, setelah itu tentukan aplikasi, OK.
  6. Tentukan komponen Specify installshield objects for delphi dan Specify components and files (tidak tidak terdapat borland delphi)
  7. Klik disk builder dan klik bulid
  8. Pilih copy to floppy atau pilih disk image kemudian copy selected disk image.

Splash & Login Form

Contoh pertama://Membuat Splash

Procedure tform1.formcreate(sender:tobject);

Begin

Timer1.enabled:=true;

X:=1; // global variabel

End;

Procedure tform1.timer1timer(sender:tobject);

Begin

X:=X+1;

If X=7 then // jika tujuh detik

Begin

Flogin.show;

Form1.destroy;

End;

End;

Procedure tform1.formshow(sender:tobject);

Begin

If (form1.width>width) then

Left:=form1.left+(form1.width-width) div 2

Else

Left:=form1.left;

If (form1.height>height) then

top:=form1.top+(form1.height-height) div 2

Else

Top:=form1.top;

End;

Contoh kedua://Membuat Login

Procedure tform1.bitbtn1click(sender:tobject);

Begin

If (edit1.text:=’public’) then

Begin

With fmenutama do

Begin

Mahasiswa1.enabled:=false; // items di menu

Praktikum1.enabled:=false; // items di menu

Fmenutama.show;

Flogin.close;

End;

End

Else

If (edit1.text:=’operator’) and (edit2.text=table1.fields[0].AsString) then

Begin

Fmenutama.show;

Flogin.close;

End

End;