P. 1
modul-Delphi.pdf

modul-Delphi.pdf

|Views: 221|Likes:
Dipublikasikan oleh Idris Kautsar
belajar delphi
belajar delphi

More info:

Published by: Idris Kautsar on May 18, 2013
Hak Cipta:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/31/2015

pdf

text

original

INFORMASI PEMROGRAMAN DELPHI

Informasi Pemrograman Delphi

i

Delphi adalah salah satu tool memberikan kemudahan

pemrograman visual yang programmer untuk

kepada

membangun perangkat lunak. Borland Delphi didukung oleh supplier pihak ketiga yang menyediakan komponen-komponen yang dibutuhkan oleh para programmer. Delphi merupakan tool pemrograman yang menganut event drivent konsep, dimana programmer dalam membangun program tinggal merespon pada event dari komponen yang di kehendaki. Tetapi juga Delphi menyediakan console, vcl untuk pemrograman terstruktur. Delphi juga memberikan kemudahan dalam mengakses basis data dan pembuatan laporan. Banyak sekali yang dapat diungkapkan dari Delphi, tetapi pada modul ini, yang akan dibahas adalah : IDE, Mendesain Sebuah Form, Konsep Event Drivent, Variable, Constanta, Type Record, Statement Percabangan, Statement Perulangan, Konsep DataBase, Pemrograman Database dan Pembuatan Laporan. Penyajian modul ini adalah mini konsep dan banyak latihan, karena modul ini merupakan modul praktek dan merupakan pelengkap dari materi perkuliahan pemrograman visual.

Informasi Pemrograman Delphi

ii

Daftar isi
Pengantar Daftar Isi Modul I : Cara Bekerja Delphi Integrated Developent Environment Mendesain Sebuah Form Konsep Event Driven Variable, Konstanta dan Type Record Struktur Dasar Selection Struktur Dasar Loop : Bekerja Dengan Banyak Form Pemrograman Basis Data (Beck End) Pemrograman Basis Data (Front End) Structure Query Laguage Report Modul II : Modul III : Modul IV : Modul V : Modul VI : Modul VII : Modul VIII Modul IX : Modul X : Modul XI : Modul XII :

Informasi Pemrograman Delphi

iii

ANDA TIDAK bahasa DIHARAPKAN pemrograman MENGUBAHNYA Visual (Visual Unit1.. Secara Ini normal.MODUL I CARA DELPHI BEKERJA Apakah Delphi itu?  Delphi (IDE) adalah sebuah Visual Interface antara Anda (the User) dan Komputer anda (yang berjalan diatas Windows )..dfm) yang mendefinisikan bagaimana dibentuknya form dan komponennya termasuk juga propertinya. Panels. apa yang terjadi?  Delphi akan memanggil file . Informasi Pemrograman Delphi 1 . Saat anda menambahkan Components pada Form1 dan merubah nilai properti.) yang ada pada Form kedalam sebuah kode-kode komputer (pseudo in Unit1.  Delphi menterjemahkan Visual Components (Buttons.dpr file (file proyek anda)  Delphi meminta program yang ada dalam proyek tersebut dan file dpr memberikan sbb : uses Forms.dfm File. Unit1 in ‘Unit1.dfm) untuk mendefinikan apa yang anda lakukan. yang dinamakan Programming) Saat anda mengkompilasi program.pas’ {Form1}. Anda hanya bekerja pada Form1 secara Visual. Delphi akan membuat (pseudo) code (dalam Unit1.

pas’ {Form1}. FILE yang ada dalam Delphi: 1) *.pas adalah unit-unit (pascal code file). Unit1 in ‘Unit1. begin Application. Application.CreateForm(Tform1.Initialize. end. bisa terdiri satu atau banyak file 3) *.dfm adalah file definisi Form (special pseudo code file). Form1).Run.Initialize. Delphi meminta. Form1). Application.dpr file memberikan sbb : begin Application.CreateForm(Tform1. Application. end. bisa terdiri satu atau banyak file Informasi Pemrograman Delphi 2 . Apa yang dilakukan pertama kali ? .Run. untuk : 2) *. Application.dpr adalah file proyek yang dibuat berisi program kecil • mendefinisikan Unit yang ada dalam file proyek • menginisialisasi data • membangun form • menjalankan aplikasi uses Forms.

Name = ‘MS Sans Serif’ Font.Style = [] PixelsPerInch = 96 TextHeight = 13 object Button1: Tbutton Left = 176 Top = 116 Width = 75 Height = 25 Caption = ‘Button1’ TabOrder = 0 end end MODUL II Informasi Pemrograman Delphi 3 .Charset = DEFAULT_CHARSET Font.object Form1: Tform1 Left = 200 Top = 108 Width = 696 Height = 480 Caption = ‘Form1’ Font.Color = clWindowText Font.Height = -11 Font.

Misalnya. segala kebutuhan untuk menunjang pemrograman dapat ditelusuri dari menu bar. Menu bar adalah untuk membantu pemrogram dalam menyelesaikan desain sistem (program). project dan lain-lain. seperti : menyimpan Informasi Pemrograman Delphi 4 . speed menu terdiri dari perintah yang sering digunakan. menyimpan unit.INTEGRATED DEVELOPMENT ENVIRONMENT Tampilan utama interface Delphi terdiri dari beberapa bagian yang kesemuanya merupakan bagian yang saling mendukung. IDE dalam Delphi adalah sebagai berikut : Componen Palete Form Design Code Editor Menu bar Speed Toolbar Object Inspector Kegunaan masing-masing bagian adalah: 1. Speed Toolbar adalah untuk memudahkan pemrogram dalam menyelesaikan programnya. tempilan tersebut disebut dengan IDE. 2.

dan kumpulan Event yang dapat dilakukan terhadap suatu komponen. Win32 yaitu kumpulan untuk pemrograman 32 bit. komponen dalam katagori ini diantaranya: BitBTn. ProgressBar. DataControl. Object Inspector adalah bagian Delphi yang berisi Properti dari suatu komponen yang sedang aktif. melihat unit yang ada dalam project dan lain-lain. diantaranya: a. Pada form inilah komponen-komponen dari Component Palete diletakan. Aditional yaitu kmponen yang merupakan tambahan dari katagori standard. Dia berisi koe-kode program yang berkaitan dengan suatu raksi terhadap event dari suatu komponen. unit. PageControl. Standard yaitu komponen yang sering digunakan. b. button dan lain-lain. mengganti tampilan dari desian form ke kode editor dasn sebaliknya. 3. MaskEdit. menjalankan program.project. edit. DatAccess. Componen Palete adalah bagian dari Delphi yang menyediakan kumpulan komponen yang dapat digunakan dalam mendesain form. SpeedButton. System. seperti: label. Componen Palete ini terbagi berdasarkan katagori tersediri. UpDown dan lain-lain d. ImageList. Ado dan lain-lain. Form Design adalah tempat dimana pemrogram melakukan aksinya untuk menampilkan interfacing anatar user dan komputer. 6. komponen dalam katagori ini adalah : TabControl. 4. StringGrid dan lain-lain c. 5. Code Editor adalah sisi belakang dari sebuah sistem. Informasi Pemrograman Delphi 5 .

Item yang ditunjuk adalah item-item yang sering diubah. Dalam object inspector terdapat dua bagian. yaitu : properties kegunaannya untuk mengatur properties dari suatu object. Dan event adalah suatu kejadian yang dapat dikenakan terhadap object: bagian event adalah seperti berikut: Informasi Pemrograman Delphi 6 .Object Inspector Class atau type data Nama Object yang sedang aaktif Cetakan yang akan ditampilkan diform Nama Object yang akan digunakan dalam pemrograman object inspector adalah suatu bagian dari IDE untukmengatur properties dari suatu object dalam moda design time.

misalnya Informasi Pemrograman Delphi 7 .Nama Class Salah satu kejadian yang dapat dikenakan pada object tersebut Nama Object Beberapa komponen yangsering digunakan dalam mata kuliah ini: Label: digunakan sebagai alat Output. biasanya tulisantulisan yang tidak akan diproses lebih lanjut. misalnya : digunakan sebagai pilihan dimana pilihan tersebut dapat dipilih lebih dari satu pilihan. Edit : digunakan untuk alat input data dan juga dapat digunakan untuk menampilkan data di layar Button : digunakan sebagai tombol perintah misalnya untuk tombol Proses dan lain-lain Checkbox hobby Radiobutton : digunakan sebagai pilihan dimana pilihan tersebut hanya dapat dipilih jenis kelamin satu pilihan saja.

seperti close. Panel digunakan untuk mempercantik tampilan Bitbtn ignore : hampir sama dengan button.Listbox : digunakan untuk mendaftar sesuatu yang lebih dari satu. Main Menu : digunakan untuk membuat menu fulldown PopUp Menu : digunakan untuk membuat popup menu Image : digunakan untuk menamplikan gambar Informasi Pemrograman Delphi 8 . tetapi bitbtn dan lain-lain dapat digunakan untuk keperluan khusus. Listbox tidak dapat diinput secara interaksi langsung Combobox: merupakan perpaduang antara edit dan listbox. dengan demikian combobox dapat diisi secara langsung atau dari pilihan daftar yang tersedia Groupbox : digunakan untuk mengelompokan komponen kedalam suatu kotak Radiogroup : digunakan untuk mengelopokan Radiobutton kedalam suatu kotak dan dapat diakses dengan mengunakan index Panel : digunakan sebagai landasar untuk komponen lainnya.

Masih banyak lagi komponen yang dapat digunakan oleh mahasiswa untuk lebih memperdalam bahasa pemrograman Delphi. biasanya melalui nama alias query : digunakan untuk menyaring informasi dari tabel Database: digunakan untuk koneksi ke database DBGrid .Datasource : Digunakan untuk koneksi ke table yangtelah ditunjuk oleh komponen tabel Table : digunakan untuk koneksi ke database. Untuk hal itu silahkan belajar sendiri dengan komponen tersebut. digunakan untuk menampilkan data dari table dalam bentuk sheet DBNavigator : digunakan untuk menelusuri tabel DBEdit : digunakan untuk menampilkan data dari table. Informasi Pemrograman Delphi 9 .

Pada awalnya setiap komponen memiliki nilai standard masingmasing. Programmer dapat mendesain output dari suatu program. yang berfungsi untuk mendefinisikan nilai atau atribut suatu komponen. Setiap katagori terdiri dari beberapa komponen (object) yang dapat ditempelkan pada form. Delphi menyediakan Object Inspector. tugas pemrogram adalah apakan nilai standard tersebut akan diganti atau tidak.MODUL III MENDESAIN SEBUAH FORM Dalam pemrograman visual ada pembalikan kaidah pemrograman jika dibandingkan dengan kaidah pemrograman non-visual. Informasi Pemrograman Delphi 10 . Untuk keperluan tersebut Delphi menyediakan suatu TOOLS yang disebut Component Palete yang terdiri beberapa katagori. selain Component Palete. kemudian merancang yang menjadi input. apa yang menjadi output dan megaimana proses yang terjadi.

pilih salah satu komponen dari kompunen palete sehhingga komponen tersebut seperti dipijit Komponent yang dipilih Informasi Pemrograman Delphi 11 . a.Nilai standars dari komponen form Mendesain Sebuah Form Form adalah tempat dimana komponen tetempelkan. dan form adalah alat antarmuka antara sistem dan pemakai. Ada beberapa cara untuk mendesainsebuah form: 1.

Komponen yang sedang dipilih Merapikan Komponen Pengaturan letak komponen terkadang sangat sulit agar supaya terlihat rapi. c. ukuran kompnen 2. Pindahkan posisinya sesuai kebutuhan. dan lain-lain Informasi Pemrograman Delphi 12 . pemrogram dapat mengganti properties dari komponen tersebut pada item yang ingin diubah pada Object Inspector. b. a.b. Untuk keperluan perapian tersebut Delphi menyediakan sarana yang mengenai: 1. Pada saat komponen tersebut dipilih. bawa pointer mouse pada form dimana komponen tersebut akan diletakan. Klik ganda tombol mouse kiri pada komponen yang akan ditempelkan Komponen tersebut akan tertempel pada form ditengah-tengah form. spasi antara komponen 3. perapian komponen 4. dan ubahkan propertiesnya sesuai kebutuhan juga. jika dilakukan secara manual. kemudian klik dan drag tombol mouse kiri membentuk sebuah kotak sebesar ukuran komponen yang diinginkan. c. 2.

apakah akan merubah pajang atau tinggi.Merubah ukuran komponen secara general 1. klik tombol OK Informasi Pemrograman Delphi 13 . klik kanan pilih size. adalah: a. pilih semua komponen yang akan diubah ukurannya dengan syarat hasilnya semua ukuran dari komponenyang dipilih adalah sama. merubah semua ukuran komponen yang terpilih sama dengan ukuran kmponen tang terbesar d. jika option telah dipilih. 4. tidak ada perubahan b. merubah semua ukuran komponen yang terpilih sama dengan ukuran kmponen tang terkecil c. pilih option yang dikehendaki. merubah semua ukuran komponen yang terpilih secara manual e. option yang tersedia. 2. maka akan muncul kotak dialog sebagai berikut: 3.

Sebelum diubah ukurannya. adalah: a. rata kiri c. rata kanan e. rata tengah d. pilih semua komponen yang akan diubah perapiannya 2. klik kanan pilih align. pilih option yang dikehendaki 4. ukurannya Setelah diubah Merubah perapian komponen 1. tidak ada perubahan b. tengah-tengan window Informasi Pemrograman Delphi 14 . option yang tersedia. jarak antar komponen sama f. maka akan muncul kotak dialog sebagai berikut: 3.

sebelum dirapi kan setelah dirapikan Informasi Pemrograman Delphi 15 .

Hasil dari event-m drivent adalah sebuah prosedur. Istilah aksi dan reaksi itu dikenal dengan event drivent. onenter dan lain-lain. hasilnya adalah : Informasi Pemrograman Delphi 16 . Tetapi hanya event-event yang akan dipakai dalam suatu program sjan yang ditanggapi. Ker\dua: pada saat program dijalankan. Hal tersebut diatas dapat diartikan ada aksi (onclick. yaitu : pertama pada saat mendesain form. misalnya object Button memiliki event onclick. Cara membuat suatu event dari object adalah: 1. Selain karakteristik object juga memunyai kelakuan (event) artinya kalakuan apa saja yang dapat dikenakan pada object tersebut. onenter) ada reaksi (suatu program yang dibuat oleh pemrogram untuk menanggapi jika salah satu event pada suatu object). Manipulasi seperti ini harus menggunakan prosedur.MODUL IV KONSEP EVENT DRIVEN Pemrograman dan memiliki visual kelakuan merupanan (Method). pemrogram dapat melakukannya dengan dua cara. Pilih tabulasi Event pada kotak Object Inspector 3. pemrograman Untuk mengolah yang atau berorientasi pada Object. object yang ditempelkan pada form tersebut dapat dimanipulasi karakteristiknya melalaui jendela Object Inspector. Klik ganda pada even yang dikehendaki 4. Dengan adanya event tersebut. Setiap Object memiliki karakteristik memanipulasi karakteristik suatu object. pemrogram tidah haus membuat kode program untuk setiap event. Pilih object yang akan dibuat event-nya 2.

maka Delphi akan menampilkan semua properties dan method yang dimiliki oleh object tersebut. adalah tempat membuat kode program guna menenggapi event dari object tersebut.Object Prosedur yang tercipta Event yang akan ditanggapi Dalam kode program yang tercipta adalah: Nama class dari form yang aktive Parameter Nama Event Nama Object Bagian tubuh dari prosedur tempat pemrogram membuat kode program untuk menanggapi event Bagian tubuh prosedur. Delphi dalam hal ini memberikan kemudahan dengan wizard-nya. Pemrogram hanya mengetikan nama object dan titik. Informasi Pemrograman Delphi 17 .

Yang kita oleh adalah unit. uses Forms. Jika program dijalankan.CreateForm(TForm1. dan project merupakan kumpulan unit-unit seperti : program Project1. Bagian utama Informasi Pemrograman Delphi 18 . ketikan form1 ( akan mengganti judul form dengan tulisan tertentu). Form1). pada saat tombol button dilkik. {$R *.pas' {Form1}. Program yang terbentuk dalam pemrograman Delphi terdiri dari project dan unit. Untuk membuat judul form . Kecikan c. Dalam tubuh prosedur.Initialize. judul form berubah menjadi ‘Latihan Satu’. properties yang harus diganti adalah Caption.Caption=’Latihan Satu’. maka akan muncul wizard seperti terlihap pada gambar. Hasilnya adalah: Form1. maka baris active pada wizard akan mengarah pada baris yang huruf awalnya c. pindahkan baris active ke tulisan caption kemudian tekan spacebar pada keyboarxd. kemudian ketikan titik. Application.RES} begin Application.Contohnya prosedur didalam gambar tercipta untuk menangapi jika onject button diklik. Nama Program Bagian uses untuk memanggil unit1 Unit1 in 'Unit1.

implementation {$R *. Classes. Object yang ditempel pada form Prototype prosedur Untuk deklarasi variable. Messages. Class form procedure Button1Click(Sender: TObject). klain yang Controls. end. diperlukan type TForm1 = class(TForm) Button1: TButton.prosedur public var Form1: TForm1. interface uses Nama Unit Digunakan untuk memanggil munit Windows. SysUtils. Dialogs. Forms.Application.prosedur lokal Untuk deklarasi variable.Run. StdCtrls. private { Private declarations } public { Public declarations } end.DFM} Untuk deklarasi variable Informasi Pemrograman Delphi 19 . Graphics. Sedangkan unit-unit dalam Delphi strukturnya adalah: unit Unit1.

end. Tubuh dari prosedur Informasi Pemrograman Delphi 20 . end.Button1Click(Sender: TObject).procedure TForm1. begin Form1.

MODUL V VARIABLE. setelah keluar dari prosedur atau fungsi maka variable tersebut tidak dikenal. Salah satu cirri program yang baik adalah tidak ada angka didalamnya. CONSTANTA. sintaknya adalah: Var nama_variable : type data. Permasalahannya. sehingga tidak akan dibahas disini. Untuk mendeklarasikan suatu variable. Setiap variable memiliki type data. TYPE RECORD Pembuatan program kadang memerlukan suatu tempat sementara untuk menampung suatu nilai untuk perhitungan selanjutnya atausebelum disimpan. Informasi Pemrograman Delphi 21 . variable dideklarasikan dibaeah type dan jika bersifat lokal. Alat penampuny suatu nilai disebut dengan variable. Variable dapat bersifat global artinya dapat dipakai diseluruh program atau dapat bersifat lokal artinya variable tersebut hanya hidup dalam suatu prosedur atau fungsi saja. maka orang tersebut mengerti alur dari program tersebut. Program yang baik adalah program yang jika dibaca oleh orang lain. assumsi penulis Mahasiswa telah mengenal berbagai type data pada mata kuliah sebelumnya. Letak pendeklarasian tergantung pada sifat dari variable tersebut. variable dideklarasikan dalam prosedur atau fungus sebelum begin. jika bersifat global. misalnya ada suatu rumus yang memerlukan suatu angka sebagai elemen dari rumus tersebut dan angka tersebut sering digunakan.

Seperti variable konstanta dapat bersifat global dan bersefat lokal. button dan lain-lain. Yang didalam type form tersebut terdiri dari object yang ditempelkan pada form tersebut. edit. Sintak mendeklarasikan type adalah: Type nama tipe = class type Deklarasi object End. tetapi kadang-kadang pemrogram membutuhkan suatu type data ciptaannya sendiri untuk mendukung programnya. Pada dasarnya setiap terjadi penciptaan form. maka angka tersebut diberi nama. Nama seperti diatas disebut dengan konstanta. Jadi konstanta bernilai tetap selama program berjalan. Diluar itu pemrogram dapat menciptakan type data sendiri misalnya tipe record atau tipe data yang lain. Sedangkan deklarasi type record adalah: Informasi Pemrograman Delphi 22 . dan nama tersebut bersifat tetap selama program berjalan.Untuk menangani hal tersebut. sepertu label. Delphi menciptakan type dara form yang merupakaan turunan dari class TForm. real dan lain-lain. Deklarasi konstanta adalah : Const nama_konstanta := nilai. Delphi telah menyediakan type data standard seperti intger.

end.type nama_type = record deklarasi variable. Informasi Pemrograman Delphi 23 .

dengan deklarasi type tersebut kita telah mempunyai tipe data yang baru. private { Private declarations } public { Public declarations } end. end. Y: Single. Edit1: TEdit. Contoh deklarasi type record type TPoint = record X : Single. Contoh: Informasi Pemrograman Delphi 24 . dengan demikian kita dapat mendeklarasikan variable terhadap type date tersebut.Contoh deklarasi type type TForm1 = class(TForm) Label1: TLabel. Button1: TButton.

Var Point: Tpoint. Form1:Tform1. Informasi Pemrograman Delphi 25 .

Pernyataan perulangan Pernyataan sequensial Program adalah seatu kumpulan pernyataan yang akan dieksekusi secara terurut dari pernyataan yang pertama sampai pernyataan yang terakhir. Yang merupakan dasar dari penguasaan pemrograman itu sendiri. Pernyataan sequensial 2. Pernyataan sequensial adalah pernyataan setandard artinya pernyataan yang akan dieksekusi secara berturut-turut. Z:=X*Y. Contoh: X:=2.. Write(Z). Materi yang akan dibahas pada bagian ini adalah : 1. pernyataan X:=2 akan dieksekusi pertama kemudian pernyataan yang ada dibawahnya dan seterusnya sampai pernyataan terakhir yaitu write(Z). Dari kumpulan pernyataan tersebut.MODUL VI STATEMENT DASAR SELECTION Ada tiga bahasan penting dalam pemrograman. Informasi Pemrograman Delphi 26 . Pernyataan percabangan 3. Y:=8.

diantaranya adalah:   pernyataan IF pernyataan Case Pernyataan IF Pernyataan IF digunakan untuk mencabang urutan eksekusi sesuai kondisi yang ada.Pernyataan Percabangan dalam suatu program tidak hanya terdapat tetapi pernyataan loncat pada sequensial saja tetapi kadang kala ada pernyataan yang tidak mengeksekusi pernyataan berikutnya pernyataan yang ada pada baris tertentu sesuai dengan kondisi saat itu. Ada beberapa macam pernyataan IF. Contoh : Informasi Pemrograman Delphi 27 . yaitu: IF…Then. maka harus diawali dengan Begin dan diekhiri dengan End. Ada beberapa pernyataan percabangan. Sintaknya adalah If Kondisi then Pernyataan jika kondisi memenuhi. Pernyataan yang memungkinkan pelompatan eksekusi disebut pernyataan percabangan. Jika pernyataan lebih dari satu baris.

Pernyataan setelah then tidak boleh diakhiri dengan titik koma. IF … Then … Else := y-10. Y End. Dengan pernyataan If tersebut maka pernyataan diantara Begin dan End hanya akan dieksekusi jika x>90. Jika pernyataan lebih dari satu baris. Sintaknya adalah If kondisi then Pernyataan jika kondisi memenuhi Else Pernyataan jika kondisi tidak memenuhi. Contoh: If x > 90 then Informasi Pemrograman Delphi 28 . dan jika x<=90 maka eksekusi berikutnya adalah pada pernyataan setelah end.If x>90 then Begin Hasil := (x+5)*y. maka harus diawali dengan Begin dan diekhiri dengan End.

Y:=y-10. pernyataan IF dapat menanganinya dalam bentuk If bersarang atau If dalam If.begin Hasil:=x + y –5. Sintaknya adalah : If kondisi then If kondisi then Pernyataan benar Else Pernyataan salah2 Else Pernyataa salah1. Pernyataan If juga hanya menampung dua kondisi yaitu benar atau salah. Atau If kondisi then Pernyataan benar1 Else If kondisi then Pernyataan benar2 Informasi Pemrograman Delphi 29 . End Else begin Hasil:=x – y + 5 Y := y-10. End. jika ada suatu kondisi yang meiliki banyak kemungkinan.

Karena pernyataan If hanya menampung dua kemungkinan. Case kondisi of Case Kondisi1: Pernyataan1. Pernyataan If tyangterakhir dapat disederhanakan dengan menggunakan pernyataan Case Pernyataan Case Pernyataan Case adalah untuk menyelseaikan kemungkinan yang lebih dari dua. Sintaknya adalah . 2 adalah pebruari danseterusnya). Informasi Pemrograman Delphi 30 . misalnya konversi bulan dalansatu tahun (1 adalah januari. end. jika ada N kemungkinan maka jumlah if adalah N-1.Else If kondisi then Pernyataan benar3 Else Pernyataan salah. • • • else pernyataan jika salah. Case kondisi2 : Pernyataan2.

99: Caption := 'Out of range'. Informasi Pemrograman Delphi 31 .Contoh read (I).5: Caption := 'Low'.. 6. 10. case I of 1. else Caption := ''.9: Caption := 'High'. 0... end.

MODUL VII STETEMENT DASAR LOOP
penyataan perulangan adalah pernyataan yang memungkinkan suatu eksekusi yang berulang pada suatu pernyatan. Ada beberapa pernyataan perulangan adalah sebagai berikut: 1. Penyataan For 2. Pernyataan While 3. Pernyataan Repeat Pemrogram harus jeli memilih pernyataan perulangan ini, kapan harus menggunakan pernyataan For, kapan menggunakan pernyataan While dan kapan menggunakan pernyataan Repeat. Secara garis besar ada dua katagori pernyataan perulangan yaitu perulangan yang yang sudah tentu jumlah perungangannya dan perulangan yang keluar dari perulangan berdasarkan kondisi tertentu. Sehingga jumlah perulangannya tidak diketahui. Perulangan yang jumlah perulangannya sudah tentu adalah : FOR … DO dan perulangan yang berdasarkan kondisi adalah While dan Repeat

FOR…DO

Sintaknya adalah : For Counter:=Awal to Akhir do Pernyataan yang diulang;

Informasi Pemrograman Delphi

32

Perulangan ini bersifat increment adrinya dimulai dari counter yang kecil sampai batas dimana batas akhir lebbih besar dari batas akhir-1. jika ingin melakukan perulangan menurun, maka sintaknya adalah: For Counter:= Awal DownTo Akhir do Pernyataan yang diulang; Dimana Counter adalah variable pencacah Awal adalah batas awal dan akhir adalah batas akhir perulangan, dengan mengetahui batas awal dan atas akhrnya maka jumlah perulangan adalah akhir-awal. Contoh: Hasil=0; For I:=1 to 10 do Hasil:=hasil+I; Program tersebut untuk menghitung

1+2+3+4+5+6+7+8+9+10 yang disimpan pada variable hasil.

While … Do

Berbeda dengan For … Do, jumlah perulangan pada while tidah diketahui. Eksekusi akan keluar dari perulanga jika suatu kondisi tidak terpenuhi. Jadi pernyataan While akan melakukan perulangan selama keadaan atau kondisi benar.

Informasi Pemrograman Delphi

33

Sintaknya adalah : While Kondisi Do Pernyataan yang diulang; Dengan sintak seperti itu, jumlah minimum perulangan adalah NOL. Pernyataan for jika dikonversi ke While menjadi : counter :=Awal; while counter <= Akhir do begin Pernyataan yang diulang; Counter:=Counter+1; end;

Contoh: Awal:=1; Counter:=Awal; While Counter<=Akhir do Begin Hasil:=Hasil+Awal; Counter:=Counter+1; End;

Repeat

Informasi Pemrograman Delphi

34

Perulangan akan terjadi selama kondisi salah. Informasi Pemrograman Delphi 35 . Until kondisi.Pernyataan Repeat hampir sama dengan pernyataan While tetapi jumlah minimum perulangan adala SATU karena pengujian dalam pernyataan Repeat berada diakhir. Sintak pernyataan Repeat adalah : Repeat Pernyataan yang diulang.

2.showmodal.show.MODUL VIII BEKERJA DENGAN BANYAK FORM Dalam pembuatan program form atau utama. adalah sebagai berikut: 1. perintah ini digunakan untuk mengaktifkan form. sistem Untuk di dunia nyata atau kebanyakan program terdiri dari banyak form sebagai unit dan dikoordinasikan menu File> Form. <nama form>. dan hasilnya from yang aktif dapat didesible untuk kebali mengaktifkan form yang ada di belakangnya. Sedangkan untuk menutup sebuah form untuk kembali ke form pemanggil dalat dilakukan dengan perintah: <nama form>. <nama form>. Pengaktifan form dapat dilakukan dengan perintah: 1. Informasi Pemrograman Delphi 36 . 2. perintah ini untuk mengaktifkan form. penutupan form saat tidak diperlukan lagi. dan hasilnya form yang aktif akan selalu on top. atau klik tool oleh membuat menambah form ke dalam aplikasi adalah dengan cara pilih Hal-hal yang perlu diperhatikan dalam program dengan banyak form. pengaktifan form lain dari suatu form.close.

Contoh Berikut adalah form-form dalam sebuah project: Form Utama: Form Penjumlahan Form Perkalian Form Pengurangan Form Operasi string Komponen dan properties yang diperlukan Form1 Component Properties Label1 Caption Label2 Label3 Label4 Label5 Label6 Button1 Edit1 Caption Caption Caption Caption Caption Name Caption Name Value Contoh Operasi dengan mengunakan banyak form Hasil penjumlahan Hasil Pengurangan Hasil Perkalian Total Hasil Operasi String LblHasil Total Edhjumlah Informasi Pemrograman Delphi 37 .

Edit2 Edit3 Edit4 Form2 Component Label1 Label2 Bitbtn1 Bitbtn Form3 Component Label1 Label2 Bitbtn1 Bitbtn Form4 Component Label1 Label2 Bitbtn1 Bitbtn Form5 Name Name Name EdhKurang EdhKali Edtotal Properties Caption Caption Kind Kind Value BilA BilB bkOK bkNo Properties Caption Caption Kind Kind Value BilA BilB bkOK bkNo Properties Caption Caption Kind Kind Value BilA BilB bkOK bkNo Component Properties Radiogroup1 Caption Items Value Olahraga Lari Catur Renang bkOK bkNo Bitbtn1 Bitbtn Kind Kind Kode program untuk membuat aplikasi tersebut adalah: Informasi Pemrograman Delphi 38 .

text).text:='0'.unit Unitutama.Penjumlahan1Click(Sender: TObject).Exit1Click(Sender: TObject). end.text:=inttostr(bila+bilb).showmodal.bilb : integer.free. begin form2 :=Tform2. if (form2. end. begin close.text). end else edhjml. var bila.create(self). Form2. end. form2. procedure TForm1.modalresult=mrok) then begin with form2 do begin bila:=strtoint(edit1. bilb:=strtoint(edit2. Informasi Pemrograman Delphi 39 . edhjml. procedure TForm1.

procedure TForm1. if (form3.text:=inttostr(bila*bilb).create(self).showmodal. form3.text). edhkali.Perkalian1Click(Sender: TObject). begin form3 :=Tform3. end. bilb:=strtoint(edit2.bilb : integer. if (form4.bilb : integer. var bila. begin form4 :=Tform4. Form3. Form4.free.text).procedure TForm1. var bila.modalresult=mrok) then begin with form3 do begin bila:=strtoint(edit1.modalresult=mrok) then Informasi Pemrograman Delphi 40 .text:='0'. end else edhkali.Pengurangan1Click(Sender: TObject).showmodal. end.create(self).

edhkurang.text:='0'. end.kali : integer.Text := inttostr(jml+kurang+kali). kali:=strtoint(edhkali.text). procedure TForm1. procedure TForm1. Informasi Pemrograman Delphi 41 . var str : string. kurang:=strtoint(edhkurang.text).Button1Click(Sender: TObject).text).free.kurang.text). end else edhkurang. bilb:=strtoint(edit2.create(self).text). begin jml:=strtoint(edhjml. edtotal.OperasiString1Click(Sender: TObject). begin form5 :=Tform5. end.text:=inttostr(bila-bilb). end.begin with form4 do begin bila:=strtoint(edit1. form4. var jml.

end. lbhasil. end.Caption:=''.checked=true then str:='Baik untuk mengasah otak' else str:='Baik untuk menyelamatkan diri dari banjir'. form5.checked=true then str:='Baik untuk menguji nafas' else if rbcatur. if (form5.showmodal.Form5.Caption:=str.free. end. Informasi Pemrograman Delphi 42 .modalresult=mrok) then begin with form5 do begin if rblari. end else lbhasil.

pada bab ini akan tentang pemrograman End-nya. seperti membuat table. kita dapat memisahkannya menjadi dua bagian. Pemrograman Back End Untuk membuat database sendiri dibutuhkan aplikasi lain diluar Delphi.MODUL IX PEMROGRAMAN DATA BASE ( BACK END) Kalau bericara peorograman data base. yaitu : pemrogramam Back End atau pemrograman basis datanya. membuat relasi dan sebagainya. Pada saat menjalankan Delphi pilih menu Tools> Database Desktop setelah memilih DataBase Desktop. dan pemrograman Front End yaitu pemrograman yang menyediakan antarmuka bibahas sistem database dengan Back pemakai. delphi menyediakan pemrograman kedua-keduanya. Paradox dapat diaktifkan dengan dua cara: 1. sedangkan pemrograman Front End akan dibahas pada bab selanjutnya. Maka akan muncul jendela paradox seperti berikut: . membuat query. tetapi database standar Delphi adalah paradox yang secara otomatis disertakan pada saat menginstal Delphi. Pilih Start> Programs> Borland Delphi 7 > Database Desktop 2.

misalnya standard 2 untuk paradox. .langkah-langkah mebuat database adalah: 1. Membuat alias untuk tempat table di letakan. yang harus dilakukan adalah : • • • klik tombol New Database alias diisi dengan nama alias Drive type:pilih salah satu.

b. isi field nama dengan atribut suatu table misalnya “NIM”. Pilih Paradox 7 dan klik tombol OK. “NAMA” dan lain-lain. Pada kolom size disi jika type datanya Alpha jika selain Alpha size terisi secara automatis. kemudian tekan space bar. Pilih menu File> New> Table 3. makan jendela pengisian struktur table muncul seperi dibawah ini a. 3 . pindahkan kursor pada kolom type.• • Item yang tidak usah diubah Klik tombol OK 2. maka akan muncul daftar type dan Anda tinggal memilih salah satu diantaranya.

unruk menyimpan table tersebut. buka struktur tabel anak dengan cara a.. pilih Restructure. Kolom key digunakan untuk atribut yang dijadikan kunci. langkah kerja diatas adalah untuk membuat struktur satu tabel. untuk dapat menmerelasikan dua tabel. Setelah pengisian Atribut selesai. secara normalisasi tabel-tabel tersebut dapat direlasikan dengan tabel yang lain untuk kepentingan t\integritas data. Pada ComboBox Table Properties. cara merelasikan dua tabel adalah: 1. pilih Utility. pilih Referential Integrity. Item-item sebelah kanan jendela digunakan untuk membuat aturan dari atribut tersebut. d.c. caranya tekan tombol space bar. e. pada tabel anak (sisi N) harus ada kunci tamu sebagai atribut penghubung dengan tabel induk (sisi 1). maka tampil jendela: b.. klik tombol Save as. jika dalam database tersebut lebih dari satu tabel. Klik menu Tools. klik tombol Define jika belum ada atau klik 4 .

5 . pilih kunci tamu pada table induk. untuk menyimpan relasi tersebut.tombol Modify jika akan mengedit relasi yang telah ada. e. c. pilih table induk dan klik tombol anak panah <-. Kilik tombol OK. d. Jendela seperti dibawah ini akan muncul. kemudian klik tombol anak panah ->.

f. 6 . tampilan jendela table adalah g. dengan cara tekan tombol F9. untuk mengisi atau mengedit data tabel. untuk menambah. tabel yangterbuka harus dalam modus Edit. mengedit atau mengapus data.

cara kedua dengan SQL (Structured Query Language) dan biasanya digunakan untuk pemrograman klien/server.MODUL X PEMROGRAMAN DATA BASE (FORNT END) Delphi menyediakan dua cara untuk membuat program basis data. Delphi menyediakan mesin konverter tersebut yang dikenal dengan .DBF) BDE (Borland Database Engine) Program Anda Dibutuhkan suatu mesin yang menjadi penghubung antara file database BDE. Hubungan file data base dengan Delphi dalam data abse adalah pemrograman File database (*. yaitu dengan menggunakan komponen TTable. cara pertama adalah cara konvensional. *. SQL akan dibahas pada bab selanjutnya. Dalam pemrograman Fornt End ini dibutuhkan dua katagori komponen untuk dapat membuat program database.DB. yaitu: 7 dengan program yang dibuat Delphi. cara ini ini biasanya untuk pemrograman basis data pada komputer stand Alone.

Query d. DBGrid b. Table c. Ada tiga properties yang penting dari Ttable yang perlu diisi. DBListBox h. DataSource b. Data Access yang terdiri dari. Data Control yang terdiri dari : a. yaitu: 8 . DBImage g. yang perlu disiapkan adalah komponen Ttable yang akan menghubungkan program Anda dengan file data base yang ada di hard disk. DBNavigator c. Database f.1. DBComboBox i. DBEdit e. DBMemo f. DLL 2. DBText d. DLL Dasar-Dasar Pemrograman Data Base Untuk membuat aplikasi data base yang sederhana. a. StoredProc e.

diisi dengan nama TdataSource Table dapat dimanipulasi sesuai dengan kebutuhan user. Active. tempelkan komponen yang akan dijadikan antarmuka antara database dengan user. diisi dengan atribut dari suatu table 2. dengan prosedur FIRST 2. 3. TableName. Setelah itu. Menuju record terakhir. dengan prosedur NEXT 4. DataSource. Menuju record Sebelumnya. yaitu diisi dengan nama Ttable yang yang diinginkan. DBGrid dan lain-lain. biasanya menjunjuk alias dari path database tersebut. Menuju record pertama. DataField.1. 2. dengan prosedur LAST 3. telpelkan TdataSource. Properties yang harus diisi dari komponen interfacing itu adalah: 1. untuk menghubungkan Ttable dengan komponen yang menjadi antarmuka database dengan user. dengan prosedur PRIOR 5. diisi true jika table tersebut ingin dibuka(active) dan diisi false jika teble tersebut tetap tertutup (Close). dengan prosedur BOF 9 . Properties yang harus diisi dalam TdataSource adalah DataSet. seperti DBEdit. Menuju record berikutnya. DataBaseName. seperti: 1. Menguji apakah kursor berada pada awal record. menujuk tempat dimana file database disimpan. Setelah Ttable terhubung dengan database. berisi nama-nama table yang ada pada direktori yang ditunjuk.

6. Menguji apakah kursor berada pada akhir record, dengan prosedur EOF 7. Menutup Tabel, dengan prosedur Close atau properties active Ttable diset False 8. Membuka Table, dengan prosedur Open atau properties active Ttable diset True 9. Mengakses Field: Var s: string; S:= Table.Fields[0].AsString;, untuk field yang tipe datanya string Atau S:= Table.FieldByName[‘Name’].AsString; 10. Mengisi Field Table.Fields[0].asString:=’Gurame’; Atau Table.FieldByName[‘Nama’].AsString:=’Gurame’; 11. Mengisi Table Mengisi tabel dengan record baru dapat dilakukan dengan dua cara: 1. dengan perintah Insert, menyisipkan record pada posisi record aktif 2. dengan perintah Append, menambah record pada posisi akhir record 12. 13. 14. Menghapus record, dengan prosedur DELETE Mengedit Record, dengan prosedur EDIT Menyimpan record, dengan prosedur POST
10

15.

Mencari data

Mencari data atau record dalam tabel dapat dilakukan dengan perintah: 1. FindKey, mencari dengan record dengan key, yaitu menggunakan index. Jikan tablel terindex berdasarkan nomor, anda dapat mencari record dengan nomor ‘123’: Table.FindKey(123); 2. FindNearest, hampir sama dengan FindKey, tetapi FindNearest mencari record yang mirip. Table.FindNearest([‘Agus’]), untuk mencari semua record yang bernama Agus. 3. SetKey..GotoKey, hampir sama dengan findKey: Table.SetKey; Table.Fields[0].AsInteger:=123; Table.GotoKey; 4. SetKey..GotoNearest, hampir sama dengan FindNearest Table.SetKey; Table.Fields[0].AsString:=’Agus’; Table.GotoNearest; 5. ApplayRange Pencarian dengan ApplyRange akan membatasi record yang ditampilkan sesuai dengan criteria. Dengan perintah ini Anda harus menentukan dahulu batasan record yang akan ditampilkan dengan menggunakan SetRangeStart dan SetRangeEnd. Table.SetRangeStart;
11

Table.Fields[0].AsInteger:=100; Table.SetRangeEnd; Table.Fields[0].AsInteger:=2000; Table.ApplyRange; 6. CancelRange Perintah ini digunakan untuk membatalkan perintah ApplyRange.

Contoh Program Database Sederhana

Form Utama

12

db DSNegara adalah Nama DataSource dengan DataSet : .Form tambah Data Keterangan : Tnegara adalah Nama Ttable dengan : DatabaseName : DBDEmos TableName Tnegara Kode Programnya adalah: unit Unitdbs. interface uses 13 : Country.

procedure BtEditClick(Sender: TObject). BtHapus: TButton.Windows. BtTambah: TButton. var Formlatihdatabase: TFormlatihdatabase. Classes. private { Private declarations } public { Public declarations } end. Dialogs. Buttons. DBGrid1: TDBGrid. TNegara: TTable. BtEdit: TButton. Graphics. Forms. BitBtn1: TBitBtn. DBGrids. DBTables. Db. Controls. StdCtrls. procedure BtTambahClick(Sender: TObject). SysUtils. implementation 14 . procedure BtHapusClick(Sender: TObject). type TFormlatihdatabase = class(TForm) DSNegara: TDataSource. Grids. Messages.

text.text:=''.text:=''. formtambahdata. begin formtambahdata:=Tformtambahdata.text:=''.showmodal.FormTambahData do begin append.asstring:=edibukota. 15 .text. edbenua.BtTambahClick(Sender: TObject). fieldbyname('Name'). caption :='Menambah data'. edluas. edjumlah. if (formtambahdata. {$R *.text:=''. activecontrol:=ednama.modalresult=mrOK) then with TNegara.text:=''.asstring:=ednama. edibukota.create(self). end.uses Unittmb. with formtambahdata do begin ednama. fieldbyname('capital').DFM} procedure TFormlatihdatabase.

begin formtambahdata:=Tformtambahdata.text:=fieldbyname('continent'). end.asstring:=edjumlah.text:=fieldbyname('capital').asstring. post. formtambahdata. activecontrol:=ednama. fieldbyname('area').asstring. if (formtambahdata. edjumlah.asstring. caption :='Mengedit data'.asstring:=edbenua.formtambahdata do begin ednama.text:=fieldbyname('population'). edibukota. fieldbyname('population').fieldbyname('continent').text:=fieldbyname('Name').modalresult=mrOK) then with TNegara. procedure TFormlatihdatabase.text.text.free.text:=fieldbyname('area').asstring:=edluas.showmodal.FormTambahData do begin edit. edbenua. end.asstring.text. formtambahdata.BtEditClick(Sender: TObject).create(self). 16 . edluas.asstring. end. with TNegara.

asstring:=edibukota.255] of char.text.free.MB_YESNO or MB_ICONQUESTION)=IDYES) then TNegara.Format('Anda Yakin Negara %s dihapus??'. fieldbyname('area').text. [TNegara.. post.asstring:=edjumlah. end.messageBox(S.asstring:=ednama. end. procedure TFormlatihdatabase.BtHapusClick(Sender: TObject).text.fields[0]. fieldbyname('capital'). begin strPcopy(S.text. if (application. fieldbyname('population'). 17 . formtambahdata. fieldbyname('continent').fieldbyname('Name').asstring])). end. var s: array[0.delete.'Perhatian'.text.asstring:=edbenua.asstring:=edluas. end.

Perintah dalam SQL sangat banyak. Untuk menggunakan SQL dalam pemrograman Delphi.Capital from country where population>8000000 A. digunakan komponen QUERY yang ada dalam katagori dataaccess. Format penulisan perintah Select adalah: SELECT [DISTINCT] kolom FROM table [WHERE kondisi_pencarian] [ORDER BY Pengurutan] [GROUP BY Group_list] [HAVING Having_condition] Contoh: Select * from country Select Name. Perintah dalah SQL adalah: 1. dan pada modul ini nhanya akan dibahas perintah yang seding digunakan. SELECT Perintah ini digunakan untuk menampilkan data atau record berdasarkan criteria tertentu. WHERE 18 . Keunggulan SQl adalah memungkinkan Anda untuk memcari dan mengurutkan data tabel yang tidak memiliki index.MODUL XI STRUCTURED QUERY LANGUAGE (SQL) SQL adalah bahasa yang digunakan untuk membuat dan memanipulasi beberapa tabel data yang saling berhubunga.

Contoh: Select continent from country group by continent. ORDER BY Klausa ORDER BY digunakan untuk mengurutkan table berdasarkan salah satu field. Klausa HAVING mempunyai kegunaan mirip dengan WHERE tetapi klausa ini digunakan untuk memberi syarat pada klausa GROUP BY. Contoh: Select * from country order by capital Select * from country order by capital Desc C.Klausa WHERE digunakan untuk memilih record yang akan ditampilkan Contoh: Select * From Country where name like ‘A%’  untuk menampilkan record yang namanya diawali dengan huruf ‘A’ Select * From Country where name like ‘%a’  untuk menampilkan record yang namanya diakhiri dengan huruf ‘a’ B. 19 . baik terurut menaik (ascending) maupun terurut menurun (descending). GROUP BY dan HAVING Klausa GROUP BY digunakan untuk mengelompokkan record menurut field tertentu.

INSERT Perintah ini digunakan untuk menambah data atau record pada table. Capital.2.”5200000. Syntak: INSERT INTO Table ( Field-Field) Values(Data) Contoh: INSERT INTO COUNTRY (Name. Syntak: DELETE FROM Table WHERE Field = Data Contoh: DELETE FROM Country WHERE Name = ‘INDONESIA’ 4. Area. Continent. 3.”Jakarta”. UPDATE 20 .215000000) Untuk mengexekusi perintah sql dalam delphi digunakan perintah ExecSQL.”Asia”. DELETE Menghapus data dengan DELETE tidak berbeda jauh dengan perintah INSERT. Population) Values (“Indonesia”.

Syntak: UPDATE Table SET Field = data WHERE Field = Data Contoh: UPDATE Country SET Population = 23000000 WHERE NAME = “INDONESIA” Query Berparameter Untuk meningkatkan fleksibilitas. dengan menggunakan Object Inspector. VALUE.Perintah UPDATE digunakan untuk mengganti nilai field dari sebuah record. dan TYPE 21 . 1. Kemudian isi properties params. Delphi mempunyai query yang berparameter. Ada dua cara untuk mengisi parameter Nama. Pilih properties SQL pada komponen Query isi dengan perintah select seperti diatas. Contoh: Select * From Country Where Name like :Nama Parameter nama pada perintah ini dapat diganti dengan string lain. isi properties NAME.

dengan menggunakan method parambyname contoh: Query1.AsString:=’C%’. SQL a. Method Komponen Query 1. Close : digunakan untuk menutup query 2. seperti perintah select b. Clear untuk menghapus perintah yang telah ada 22 . Prepare : digunakan untuk meningkatkan performan Query 4.ParamByName (’NAME’). Add untuk menambah perintah SQL. Open : digunakan untuk mengeksekusi query 3.2.

Dialogs. StdCtrls. Messages. DBTables. Controls. SysUtils. Grids. Classes. Db.Contoh Program: Kode program: unit Unitsql1. 23 . Buttons. Forms. interface uses Windows. Graphics. DBGrids.

DBGrid1: TDBGrid. Button1: TButton. private { Private declarations } public { Public declarations } end. implementation 24 . BitBtn1: TBitBtn. Edit1: TEdit. var Form1: TForm1. procedure Button1Click(Sender: TObject). Query1: TQuery.type TForm1 = class(TForm) DataSource1: TDataSource.

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject); begin query1.close; query1.SQL.Clear; query1.sql.Add(edit1.text); query1.open; end; end.

25

MODUL XII REPORT
Report/laporan merupakan bentuk print out dari data. Data yang dimaksud dapat berupa data keseluruhan dari suatu tabel atau data yang diperoleh dari suatu query pencarian. Berikut ini adalah pembahasan bagaimana membuat report dari suatu tabel maupun dari query. Dalam Delphi komponen report ada beberapa seperti rave report yang merpakan bawaan Delphi 7, quick report yang merupakan bawaan Delphi sebelumnya, tetapi dalam Delphi pun dapat diinstalkan quicreport dari CD-nya. Atau dapat menggunakan report dari supplier pihak ketiga seperti fast report dan sebagainya. Hal-hal yang perlu diperhatikan dalam pembuatan report adalah: 1. basis data sebagai data yang akan ditampilkan dalam report tersebut 2. perancangan report untuk antarmukanya 3. koneksi ke aplikasi. Komponen-komponen Quick Report Untuk membuat report dibutuhkan komponen report, dalam modul ini akan mmakai quick report. Komponen-komponen yang ada dalam quick report adalah:
26

TQRLabel label. TQRDBText TQRExpr TQRSysData

teks statis biasanya digunakan untuk judul atau untuk menampilkan field dari database. untuk menampilkan expresi atau fungsi-fungsi unutk menampilkan informasi judul report, page number, date and time. TQRMemo text multiple lines. seperti TQRLabel, tetapi komponen ini dapat menerima

yang dibutuhkan.

TQRRichText TQRShape TQRImage TQRDBImage Contoh Report dari Tabel

untuk menampilkan teks berformat untuk menampilkan rectangles, circles and horizontal and vertical lines. untuk menampilkan image statis. untuk menampilkan image dari database.

Sebagai contoh, kita akan membuat aplikasi yang dapat mencetak semua data yang ada dalam tabel MHS. Desain tampilan aplikasi tampak sebagai berikut:

27

Langkah pertama adalah membuat desain tampilan aplikasi. Untuk membuat program tersebut.Sedangkan report dari aplikasi tampak sebagi berikut: Report tersebut akan muncul setelah tombol CETAK REPORT ditekan. 2. Tambahkan komponen button dan ubah propertiesnya sebagai berikut 28 . langkah-langkah yang harus dilakukan adalah : 1.

Table1 Value Qrband1 rbTitle . QUICKREPORT Properties Name Page Page Dataset Keterangan: Properties di atas mengatur report dengan ketentuan ukuran kertas adalah A4 dan tegak. Selanjutnya adalah membuat report. Berikutnya tambahkan beberapa komponen berikut ini beserta propertiesnya. Sedangkan data yang akan dicetak diambil dari tabel MHS (dalam hal ini mengacu pada komponen TABLE1 pada FORM1) QRBAND Properties Name Bandtype Keterangan: 29 Value Quickreport2 Papersize A4 Orientation Portrait Form1. Caranya dengan mengklik menu FILE > NEW > APPLICATION > OTHER > REPORT 4.Properti Name Caption Value Button1 Cetak Report 3.

Properties Name Bandtype Frame Frame Frame Frame Color Keterangan: Jenis band ini digunakan untuk meletakkan judul kolom dari tabel data Properties Name Bandtype Frame Frame Frame Frame Keterangan: Band ini digunakan untuk meletakkan data Properties Name Bandtype Frame Frame Frame Frame Value QRBand4 rbSummary Drawbootom True Drawleft True Drawright True DrawTop True 30 Value QRBand2 rBColumnheader Drawbootom True Drawleft True Drawright True DrawTop True clRed Value QRBand3 rbDetail Drawbootom True Drawleft True Drawright True DrawTop True . Jenis band ini terletak di bagian atas dari report.QRBAND jenis rbTITLE digunakan untuk meletakkan judul report.

Sedangkan untuk QRLABEL2 s/d QRLABEL7 diletakkan pada band COLUMNHEADER 31 Value QRBand5 rbPagefooter Drawbootom True Drawleft True Drawright True DrawTop True Value QRLabel1 DATA MAHASISWA . Biasanya catatan berupa jumlah total data atau waktu ketika report dicetak. QRLABEL Komponen QRLABEL digunakan untuk menuliskan teks pada report. Properties Name Bandtype Frame Frame Frame Frame Keterangan: Band jenis ini digunakan untuk menuliskan beberapa hal pada bagian footer report. misalnya nomor halaman.Keterangan: Band ini digunakan untuk meletakkan beberapa hal terkait dengan catatan data. Properties Name Caption Keterangan: Komponen di atas diletakkan di band TITLE.

Properties Name Caption Properties Name Caption Properties Name Caption Properties Name Caption Properties Name Caption Properties Name Caption Value QRLabel2 NO Value QRLabel3 NIM Value QRLabel4 NAMA MAHASISWA Value QRLabel5 TGL LAHIR Value QRLabel6 ALAMAT Value QRLabel7 ANGKATAN Untuk QRLABEL8 dan QRLABEL9 diletakkan di band SUMMARY Properties Name Caption Properties Name Value QRLabel8 JUMLAH DATA Value QRLabel9 32 .

Properties Name Dataset DataField Properties Name Dataset DataField Properties Name Dataset DataField Value QRDBTEXT1 Form1.Caption DICEAK PADA TANGGAL dan QRLABEL10 diletakkan di band PAGEFOOTER Properties Name Caption Value QRLabel10 HALAMAN QRDBTEXT Komponen QRDBTEXT nantinya digunakan untuk menampilkan data. dan DATAFIELD yang digunakan untuk menentukan field mana dari tabel atau query yang datanya akan dicetak.table1 TGLLAHIR 33 .table1 NIM Value QRDBTEXT2 Form1.table1 NAMAMHS Value QRDBTEXT3 Form1. Dalam komponen ini terdapat properti DATASET yang digunakan untuk mengarahkan sumber data yang diinginkan. Komponen QRDBTEXT1 s/d QRDBTEXT5 di bawah ini diletakkan di bagian band DETAIL. baik dari table maupun query.

jumlah data total dll. misalnya nomor urut data. Value QRSysData2 qrsDetailCount 34 .table1 ALAMAT Value QRDBTEXT5 Form1. Properties Name Data Keterangan: Properti digunakan Properties Name Data Keterangan: qrsDETAILNO untuk berarti komponen nomor tersebut urut data menampilkan Value QRSysData1 qrsDetailNo (diletakkan di band DETAIL di bawah kolom NO). nomor halaman.Properties Name Dataset DataField Properties Name Dataset DataField QRSYSDATA Sedangkan komponen Value QRDBTEXT4 Form1.table1 ANGKATAN QRSYSDATA bermanfaat untuk menampilkan data-data otomatis yang dihasilkan oleh sistem. tanggal dan waktu saat itu.

Preview. Properties Name Data Keterangan: Value QRSysData3 qrsDate Properti qrsDATE berarti komponen tersebut digunakan untuk menampilkan tanggal saat itu (diletakkan di band SUMMARY). 5. Report dari Query Suatu report juga dapat menampilkan data dari hasil query. Properties Name Data Keterangan: Properti qrsPAGENUMBER berarti komponen tersebut digunakan untuk menampilkan nomor halaman (diletakkan di band PAGE FOOTER).Properti qrsDETAILCOUNT untuk berarti komponen jumlah tersebut data digunakan menampilkan total (diletakkan di band SUMMARY). Sebagai contoh. kita akan membuat aplikasi pencarian data 35 Value QRSysData4 qrsPageNumber . Kemudian tambahkan code berikut ini pada event ONCLICK tombol CETAK REPORT (BUTTON1) yang ada pada FORM1 QuickReport2.

adalah sebagai berikut : QUICKREPORT Properties Name Value Quickreport2 36 . Tampilannya adalah sebagai berikut: Sedangkan tampilan hasil reportnya sebagai berikut: Tambahkan satu tombol (BUTTION2) untuk CETAK DATA PENCARIAN. SELECT * FROM MHS. Sedangkan desain reportnya. tambahkan pula perintah SQL berikut ini pada properti SQL. data hasil pencarian akan ditampilkan ke report untuk dicetak. Setelah proses pencarian. Pada komponen QUERY.mahasiswa (menggunakan tabel MHS).

Query1 Value Qrband1 rbTitle Value QRBand2 rBColumnheader Drawbootom True Drawleft True Drawright True DrawTop True clRed Properties Name Bandtype Frame Frame Frame Frame Value QRBand3 rbDetail Drawbootom True Drawleft True Drawright True DrawTop True Properties Name Bandtype Frame Frame Frame Frame Value QRBand4 rbSummary Drawbootom True Drawleft True Drawright True DrawTop True 37 .Page Page Dataset QRBAND Properties Name Bandtype Properties Name Bandtype Frame Frame Frame Frame Color Papersize A4 Orientation Portrait Form1.

Properties Name Bandtype Frame Frame Frame Frame QRLABEL Value QRBand5 rbPagefooter Drawbootom True Drawleft True Drawright True DrawTop True Komponen QRLABEL digunakan untuk menuliskan teks pada report. Properties Name Caption Properties Name Caption Properties Name Caption Properties Name Caption Properties Name Caption Properties Value QRLabel1 DATA MAHASISWA Value QRLabel2 NO Value QRLabel3 NIM Value QRLabel4 NAMA MAHASISWA Value QRLabel5 TGL LAHIR Value 38 .

query1 NIM Value QRDBTEXT2 39 Value QRLabel10 HALAMAN . Properties Name Dataset DataField Properties Name Value QRDBTEXT1 Form1.Name Caption Properties Name Caption QRLabel6 ALAMAT Value QRLabel7 ANGKATAN Untuk QRLABEL8 dan QRLABEL9 diletakkan di band SUMMARY Properties Name Caption Properties Name Caption Value QRLabel8 JUMLAH DATA Value QRLabel9 DICEAK PADA TANGGAL dan QRLABEL10 diletakkan di band PAGEFOOTER Properties Name Caption QRDBTEXT Komponen QRDBTEXT1 s/d QRDBTEXT5 di bawah ini diletakkan di bagian band DETAIL.

Dataset DataField Properties Name Dataset DataField Properties Name Dataset DataField Properties Name Dataset DataField QRSYSDATA Properties Name Data Form1.query1 ANGKATAN Value QRSysData1 qrsDetailNo 40 .query1 NAMAMHS Value QRDBTEXT3 Form1.query1 TGLLAHIR Value QRDBTEXT4 Form1.query1 ALAMAT Value QRDBTEXT5 Form1.

Preview.Properties Name Data Value QRSysData2 qrsDetailCount Properties Name Data Properties Name Data Setelah melakukan desain Value QRSysData3 qrsDate Value QRSysData4 qrsPageNumber report.Button1Click(Sender: TObject).Clear. If Radiobutton1. Dan tambahkan pula perintah berikut pada event ONCLICK BUTTON1 (CARI DATA) procedure TForm1.SQL.Checked then query := 'SELECT * FROM MHS WHERE NAMAMHS LIKE 41 . var query : string.Checked then query := 'SELECT * FROM MHS WHERE NIM = :katakunci' else If Radiobutton2. selanjutnya tambahkan perintah berikut pada event ONCLICK BUTTON2 (CETAK DATA PENCARIAN) QuickReport2. begin Query1.

SQL.Value := '%'+Edit1.ParamByName('katakunci').Value := Edit1.Value := StrtoInt(Edit1. Query1.Checked then Query1. 42 .Checked then query := 'SELECT * FROM MHS WHERE ANGKATAN = :katakunci' else If Radiobutton4.RecordCount = 0 then MessageDlg('Data tidak ditemukan'.Add(Query).Open. If Radiobutton2.Checked then query := 'SELECT * FROM MHS WHERE ALAMAT LIKE :katakunci'. If Query1.0).mtinformation.Checked then Query1.ParamByName('katakunci').Text+'%' else If RadioButton3.Text.:katakunci' else If Radiobutton3.[mbOK].Checked or Radiobutton4.ParamByName('katakunci').Text) else Query1. Query1. end.

Classes. Messages. 43 . SysUtils. type TFormsatu = class(TForm) Lebartambah: TButton.pas unit Unitsatu. Controls. Graphics. Dialogs. interface uses Windows.Latihan Satu Source Program ……. Lebarkurang: TButton. Forms. StdCtrls.

Tinggitambah: TButton. procedure TinggitambahClick(Sender: TObject). procedure LebartambahClick(Sender: TObject).Width +20.DFM} procedure TFormsatu. procedure TinggikurangClick(Sender: TObject).Width :=formsatu. procedure TFormsatu. begin 44 . implementation {$R *.LebartambahClick(Sender: TObject). private { Private declarations } public { Public declarations } end. procedure LebarkurangClick(Sender: TObject).LebarkurangClick(Sender: TObject). end. var Formsatu: TFormsatu. Tinggikurang: TButton. begin formsatu.

20.Height :=formsatu.TinggikurangClick(Sender: TObject). end.Height -20. end.formsatu.Width .Height :=formsatu.Width :=formsatu. procedure TFormsatu. Latihan Dua 45 . end.TinggitambahClick(Sender: TObject). end.Height +20. begin formsatu. begin formsatu. procedure TFormsatu.

chkmin: TCheckBox. chkhelp: TCheckBox. Dialogs. GroupBox2: TGroupBox. rbnone: TRadioButton. chkmax: TCheckBox. rbsize: TRadioButton. 46 . Graphics. Messages. StdCtrls. Controls. chksistem: TCheckBox. Classes.Source Program unit Unitdua. rbtoolwindow: TRadioButton. SysUtils. rbsingle: TRadioButton. rbdialog: TRadioButton. interface uses Windows. rbsizetoolwin: TRadioButton. Forms. type TFormdua = class(TForm) GroupBox1: TGroupBox.

implementation {$R *.DFM} procedure TFormdua. if chksistem. var Formdua: TFormdua. procedure rbsizeClick(Sender: TObject). 47 . procedure rbsizetoolwinClick(Sender: TObject). procedure rbsingleClick(Sender: TObject). begin sem:=[]. private { Private declarations } public { Public declarations } end. var sem : Tbordericons. procedure rbdialogClick(Sender: TObject). procedure rbnoneClick(Sender: TObject).procedure chksistemClick(Sender: TObject). procedure rbtoolwindowClick(Sender: TObject).Checked =true then sem := sem + [bisystemmenu].chksistemClick(Sender: TObject).

if chkmin.rbdialogClick(Sender: TObject).Checked =true then sem := sem + [bimaximize]. end. end. procedure TFormdua.Checked =true then sem := sem + [biminimize]. begin formdua.rbsizeClick(Sender: TObject). end. procedure TFormdua. formdua. begin formdua. procedure TFormdua.Checked =true then sem := sem + [bihelp].BorderIcons :=sem.BorderStyle :=bsnone. begin formdua.BorderStyle :=bssizeable.rbnoneClick(Sender: TObject). if chkmax. begin 48 . procedure TFormdua. if chkhelp. end.rbsingleClick(Sender: TObject).BorderStyle :=bsdialog.

rbsizetoolwinClick(Sender: TObject).BorderStyle :=bssizetoolwin. procedure TFormdua. end.BorderStyle :=bstoolwindow.rbtoolwindowClick(Sender: TObject). procedure TFormdua. Latihan Tiga 49 . end.formdua. end. end. begin formdua.BorderStyle :=bssingle. begin formdua.

rbcatur: TRadioButton. interface uses Windows. btnulangi: TButton. procedure rbrenagClick(Sender: TObject). Dialogs. lbfitness: TLabel. type TForm1 = class(TForm) rbrenag: TRadioButton. Controls. Forms. Classes. procedure btnkeluarClick(Sender: TObject). lbrenang: TLabel. rbfitnes: TRadioButton. Messages. btnkeluar: TButton. SysUtils.Source Program unit Unittiga. StdCtrls. lbcatur: TLabel. 50 . Graphics.

procedure TForm1. procedure rbcaturClick(Sender: TObject). implementation {$R *. private { Private declarations } public { Public declarations } end.DFM} procedure TForm1.Caption :='Baik untuk mempertinggi badan' 51 . var Form1: TForm1.btnkeluarClick(Sender: TObject).rbrenagClick(Sender: TObject).procedure rbfitnesClick(Sender: TObject). end. begin close. procedure btnulangiClick(Sender: TObject). begin lbrenang.

begin rbrenag.Caption :='Baik untuk memperbesar otot' end.Caption :='Baik untuk mengasah Otak' end. lbfitness.Checked :=false.Caption :=''. begin lbfitness. procedure TForm1. lbrenang. rbcatur. procedure TForm1.end. end. procedure TForm1.Checked :=false. 52 .Caption :=''.btnulangiClick(Sender: TObject). begin lbcatur.Checked :=false.rbfitnesClick(Sender: TObject).Caption :=''. rbfitnes. lbcatur.rbcaturClick(Sender: TObject).

end. SysUtils. Forms. Messages. interface uses Windows. 53 . Controls. Latihan Empat Source Program unit Unitempat. Graphics. Dialogs. Classes.

rbtebal: TRadioButton. procedure btnefekClick(Sender: TObject). GroupBox2: TGroupBox. procedure bbcloseClick(Sender: TObject). edinput: TEdit. procedure btnulangiClick(Sender: TObject). rbgarisbawah: TRadioButton. private { Private declarations } public { Public declarations } end.Buttons. rbmiring: TRadioButton. GroupBox1: TGroupBox. procedure btnprosesClick(Sender: TObject). bbclose: TBitBtn. lbcontoh: TLabel. btnefek: TButton. 54 . StdCtrls. type TFormempat = class(TForm) Label1: TLabel. Label3: TLabel. btnulangi: TButton. btnproses: TButton.

lbcontoh. procedure TFormempat.btnulangiClick(Sender: TObject).Font.Checked :=false.btnprosesClick(Sender: TObject).Checked :=false. edinput.Caption :=''. procedure TFormempat. rbgarisbawah. rbtebal. begin close. begin lbcontoh. edinput. end. begin 55 .Style :=[]. rbmiring. end.Checked :=false.var Formempat: TFormempat.SetFocus . implementation {$R *.Text :=''.bbcloseClick(Sender: TObject).DFM} procedure TFormempat.

Font.Checked = true then lbcontoh. end. 56 .Font.Style :=[fsunderline].btnefekClick(Sender: TObject).Text :=''. begin if rbtebal.Style :=[fsbold] else if rbmiring.Font. edinput.Style :=[fsitalic] else lbcontoh.Caption :=edinput. end.Text .lbcontoh. procedure TFormempat.Checked = true then lbcontoh. end.

Dialogs.Latihan Lima Source Program unit Unitlima. ComCtrls. SysUtils. Spin. Classes. Forms. Graphics. ExtCtrls. Buttons. Controls. Messages. 57 . interface uses Windows. StdCtrls.

btnefek: TButton. rbnavi: TRadioButton. rbmaroon: TRadioButton. chktebal: TCheckBox. GroupBox3: TGroupBox.type TFormlima = class(TForm) GroupBox1: TGroupBox. rb14: TRadioButton. btntambah: TButton. rb12: TRadioButton. Panel3: TPanel. GroupBox2: TGroupBox. Panel2: TPanel. rbhijau: TRadioButton. rbkuning: TRadioButton. btnulangi: TButton. Panel1: TPanel. chkgarisbawah: TCheckBox. bbclose: TBitBtn. chkmiring: TCheckBox. rbmerah: TRadioButton. chkcorettengah: TCheckBox. 58 . btnkurang: TButton. lbcontoh: TLabel.

procedure rbkuningClick(Sender: TObject). procedure btnkurangClick(Sender: TObject).edukuran: TEdit. procedure rbhijauClick(Sender: TObject). procedure rbmaroonClick(Sender: TObject). implementation 59 . procedure rbmerahClick(Sender: TObject). procedure rb12Click(Sender: TObject). procedure edukuranKeyPress(Sender: TObject. procedure edukuranEnter(Sender: TObject). procedure btnulangiClick(Sender: TObject). procedure rb14Click(Sender: TObject). procedure bbcloseClick(Sender: TObject). var Key: Char). procedure btnefekClick(Sender: TObject). private { Private declarations } public { Public declarations } end. procedure rbnaviClick(Sender: TObject). var Formlima: TFormlima. procedure btntambahClick(Sender: TObject).

end.Font. begin lbcontoh. begin lbcontoh. begin lbcontoh.rbmaroonClick(Sender: TObject). end.{$R *.rbnaviClick(Sender: TObject). 60 .DFM} procedure TFormlima.Font.Font.Color :=clred. procedure TFormlima. begin lbcontoh.Font.rbmerahClick(Sender: TObject).rbhijauClick(Sender: TObject).Color :=clgreen. end.Color :=clmaroon.rbkuningClick(Sender: TObject).Color :=clyellow. procedure TFormlima. begin lbcontoh. procedure TFormlima. end.Font.Color :=clnavy. procedure TFormlima.

Size=14 then begin rb14. begin lbcontoh. edukuran.Font. end. end else if lbcontoh.Size :=12. if lbcontoh.Size=12 then begin rb12.Font.Text :='12'.rb12Click(Sender: TObject).Font.Size :=lbcontoh.Checked :=true.rb14Click(Sender: TObject). end.end. procedure TFormlima.Checked :=true.Font.Size :=14.Font. 61 .Text :='14'. begin lbcontoh.Text :='12'. edukuran.btntambahClick(Sender: TObject). procedure TFormlima.Font.Size + 1. edukuran. begin lbcontoh. procedure TFormlima.

end else begin 62 .size). procedure TFormlima. end . rb14.Font. edukuran.Font.edukuran. if lbcontoh.Checked :=true.Text :='14'.btnkurangClick(Sender: TObject).Text :='12'.Size:=lbcontoh.Size=12 then begin rb12.Size .Text :=inttostr(lbcontoh.Text :='14'.Font. end else begin rb12.Font. end else if lbcontoh.1. begin lbcontoh.Size=14 then begin rb14. edukuran.Font. end.Checked :=true.Checked :=false. edukuran.Checked :=false.

begin fs:=[]. end. if chkgarisbawah.Text :=inttostr(lbcontoh.Checked =true then fs:=fs+[fsunderline]. if chkcorettengah.bbcloseClick(Sender: TObject). lbcontoh. end. begin 63 .btnefekClick(Sender: TObject).Checked :=false. end .size). procedure TFormlima.Font.Checked :=false. var fs : Tfontstyles.rb12. rb14. if chktebal.Checked =true then fs:=fs+[fsbold].Font. edukuran. if chkmiring.Checked =true then fs:=fs+[fsstrikeout].Style :=fs.Checked =true then fs:=fs+[fsitalic]. procedure TFormlima.

rbnavi. end.Style :=[].Checked :=false.Checked :=false.Checked :=false. lbcontoh.Font.Checked :=false.close. rbkuning. rbhijau. end.Color :=clblack.Checked :=false. rb14.edukuranEnter(Sender: TObject). lbcontoh. chkcorettengah.Checked :=false.Font.Checked :=false.Text :=''. chkmiring. rb12.Checked :=false. chktebal.Checked :=false. procedure TFormlima.Checked :=false.Checked :=false. procedure TFormlima. chkgarisbawah.btnulangiClick(Sender: TObject). edukuran. lbcontoh. begin rbmaroon. rbmerah.Font.Size :=8. begin 64 .

rb14.text). begin if key =#13 then edukuranenter(sender).edukuranKeyPress(Sender: TObject.text<>'0') then lbcontoh. Latihan Enam 65 .Text='12' then rb12. end.checked:=true else if edukuran.Font. var Key: Char).Text <>'') and (edukuran. procedure TFormlima.Checked :=false.Text ='14' then rb14. if edukuran.if (edukuran. end. end.Size :=strtoint(edukuran. end.Checked :=true else begin rb12.Checked :=false.

66 .

Dialogs. interface uses Windows. Classes. Label2: TLabel. edbil3: TEdit. Buttons. type TFormenam = class(TForm) Panel1: TPanel. 67 . Panel3: TPanel. Messages. edbil2: TEdit. Panel4: TPanel. Label1: TLabel. StdCtrls. Label5: TLabel. edbil1: TEdit. Label4: TLabel. Graphics. edbil4: TEdit. ExtCtrls. SysUtils. edhasil: TEdit. Forms. Controls. Label3: TLabel.Source Program unit Unitenam.

var Formenam: TFormenam.bil1.jumlah. Button2: TButton. implementation {$R *.bil2. procedure Button1Click(Sender: TObject).bil3.DFM} procedure TFormenam. Button1: TButton.kurang : integer. private { Private declarations } public { Public declarations } end. procedure Button2Click(Sender: TObject). pangkat. begin 68 . BitBtn1: TBitBtn.kali.bil4 : integer. var i. Panel2: TPanel.Button1Click(Sender: TObject).RG: TRadioGroup. bagi:real.

69 .ItemIndex =3 then begin bagi:=bil1/bil2. edhasil. if rg.bil1:=strtoint(edbil1.text).text).text:=inttostr(kurang).text).text:=inttostr(kali).ItemIndex =2 then begin kali:=bil1*bil2*bil3*bil4.ItemIndex =1 then begin kurang:=bil1-bil2-bil3-bil4. end else if rg.text). bil4:=strtoint(edbil4. end else if rg. edhasil.text:=floattostr(bagi).text:=inttostr(jumlah). bil3:=strtoint(edbil3. end else if rg. edhasil.ItemIndex =0 then begin jumlah:=bil1+bil2+bil3+bil4. edhasil. bil2:=strtoint(edbil2.

SetFocus. begin edbil1. Latihan Tujuh 70 .ItemIndex =4 then begin pangkat:=1. edbil1. end. edbil3. end. end.Button2Click(Sender: TObject). edhasil.Text :=''.Text :=''.Text :=''. rg. end. edhasil. edbil4. procedure TFormenam.Text :=''.ItemIndex :=-1.text:=inttostr(pangkat). edbil2.Text :=''.end else if rg. for i:=1 to bil2 do pangkat:=pangkat*bil1.

71 .

SysUtils. Messages. BtUlangi: TButton. BtIsisatuList1: TButton. List2: TListBox. BtHapusCombo: TButton. Label2: TLabel. Label1: TLabel. Controls. interface uses Windows. BtIsiList2semua: TButton. Buttons. BtIsiCombo: TButton.Source Program unit Unittujuh. Classes. StdCtrls. ExtCtrls. Dialogs. BtIsiList1Semua: TButton. Graphics. type TForm1 = class(TForm) List1: TListBox. 72 . Btisisatulist2: TButton. combo: TComboBox. Forms. Panel1: TPanel.

Items. procedure BtIsiComboClick(Sender: TObject). 73 .Add('Spanyol').BtIsiComboClick(Sender: TObject).BBClose: TBitBtn. procedure BtIsisatuList1Click(Sender: TObject). procedure BtUlangiClick(Sender: TObject). procedure BtHapusComboClick(Sender: TObject). procedure comboClick(Sender: TObject). var Form1: TForm1. combo. procedure BtIsiList2semuaClick(Sender: TObject). procedure BtIsiList1SemuaClick(Sender: TObject).DFM} procedure TForm1. procedure Btisisatulist2Click(Sender: TObject).Add('Inggris'). begin combo.Items. private { Private declarations } public { Public declarations } end. implementation {$R *.

items.text). begin combo. list1.Items.Delete (list1.items.comboClick(Sender: TObject).Add('Belanda').Items.Items. begin list2. begin for i:=0 to list1. 74 .Items.BtIsiList2semuaClick(Sender: TObject).Add(list1. combo.BtHapusComboClick(Sender: TObject).strings[i]).Items.ItemIndex). procedure TForm1.Items. end.Items. end. procedure TForm1. procedure TForm1. var i : integer.Add(list1.Add('Francis').Count -1 do list2. begin list1.Clear .Add('Jerman').Add(combo.ItemIndex ]). combo.combo.strings[list1.Btisisatulist2Click(Sender: TObject). end. procedure TForm1. end.Items.

BtIsiList1SemuaClick(Sender: TObject).Items.ItemIndex ]). end.strings[list2. procedure TForm1. procedure TForm1.ItemIndex). begin list1. list2. begin for i:=0 to list2.Add(list2.BtUlangiClick(Sender: TObject).Clear .Count -1 do list1. list2. begin list1.Clear .items. procedure TForm1. end.items.Clear . end.Delete (list2. 75 .Items. list2.Items. combo. end.Clear . var i : integer.strings[i]).Items.Add(list2.list1. end.Clear .BtIsisatuList1Click(Sender: TObject).

Graphics. StdCtrls. Menus. 76 . Classes. Dialogs. Controls. Forms. interface uses Windows.Latihan Delapan Source Program unit Unitdelapan. ExtCtrls. SysUtils. Messages.

Luas3: TMenuItem. SegiTiga1: TMenuItem.type TFormdelapan = class(TForm) Menu1: TMainMenu. SegiTiga2: TMenuItem. Perhitungan1: TMenuItem. Keliling3: TMenuItem. Exit1: TMenuItem. Keliling2: TMenuItem. EDJARI: TEdit. Shape2: TShape. Keliling4: TMenuItem. Popup1: TPopupMenu. Shape1: TShape. 77 . Luas2: TMenuItem. Label1: TLabel. Luas1: TMenuItem. Panel2: TPanel. Popup2: TPopupMenu. Lingkaran1: TMenuItem. File1: TMenuItem. Keliling1: TMenuItem. Panel1: TPanel. Label2: TLabel.

Y: Integer). Button: TMouseButton. Label6: TLabel.EdLuasLingkaran: TEdit. EdkelilingLingkaran: TEdit. Label4: TLabel. Ulangi1: TMenuItem. EdLebar: TEdit. procedure Keliling2Click(Sender: TObject). procedure Exit1Click(Sender: TObject). procedure Shape2MouseDown(Sender: TObject. 78 . X. EdKelilingEmpat: TEdit. Shift: TShiftState. Button: TMouseButton. procedure Shape1MouseDown(Sender: TObject. Label7: TLabel. procedure Keliling3Click(Sender: TObject). procedure Ulangi1Click(Sender: TObject). Label5: TLabel. EdPanjang: TEdit. Y: Integer). Label3: TLabel. procedure SegiTiga2Click(Sender: TObject). procedure Luas1Click(Sender: TObject). procedure Keliling1Click(Sender: TObject). EdLuasEmpat: TEdit. procedure Luas2Click(Sender: TObject). X. Shift: TShiftState.

procedure TFormdelapan. 0) else 79 . begin close.DFM} procedure TFormdelapan.Text ='') then MessageDlg('Teks Panjang atau Teks Lebar kosong'.Exit1Click(Sender: TObject). var Formdelapan: TFormdelapan. mtInformation. end. [mbOk].private { Private declarations } public { Public declarations } end.Luas1Click(Sender: TObject).Text ='') or (edlebar. implementation {$R *. begin if (edpanjang.

Ulangi1Click(Sender: TObject). 0) else edkelilingempat. edkelilinglingkaran.edluasempat. procedure TFormdelapan.Text :=''.Text ='') or (edlebar.text)) +(2*strtoint(edlebar.Text :=''.Text :=''. end.text)*strtoint(edl ebar. [mbOk].Text :=''. edluasempat. edpanjang. mtInformation.Text :='' . procedure TFormdelapan.text)).Text ='') then MessageDlg('Teks Panjang atau Teks Lebar kosong'.Keliling1Click(Sender: TObject).text:=inttostr(strtoint(edpanjang.Text :=''.text:=inttostr((2*strtoint(edpanjang.Text :=''. end. end.text))). edlebar. 80 . begin edjari. edluaslingkaran. begin if (edpanjang. edkelilingempat.

Popup(x.SegiTiga2Click(Sender: TObject).procedure TFormdelapan. Button: TMouseButton.Left +90. Shift: TShiftState. Y: Integer). begin if button = mbright then begin x:=formdelapan.Shape2MouseDown(Sender: TObject. popup2. y:=formdelapan. begin if button=mbright then begin x:=formdelapan. Shift: TShiftState. begin if edjari. end.y).Top +90.Popup (x.Top +90. procedure TFormdelapan. procedure TFormdelapan.Left +260. end.Shape1MouseDown(Sender: TObject. end. popup1. Y: Integer).Text ='' then 81 . Button: TMouseButton. X. X.y). end. y:=formdelapan.

[mbOk]. procedure TFormdelapan.Keliling3Click(Sender: TObject). mtInformation.text)* 2 * 3. 0) else edkelilinglingkaran.Luas2Click(Sender: TObject). end. begin if edjari.text)* strtofloat(edjari. end.14). begin 82 . mtInformation. 0) else edluaslingkaran.Text :=floattostr(strtofloat(edjari.14).MessageDlg('Teks Jari-jari kosong'.Text :=floattostr(strtofloat(edjari.Keliling2Click(Sender: TObject). mtInformation. begin if edjari.Text ='' then MessageDlg('Teks Jari-jari kosong'. [mbOk]. 0) else edkelilinglingkaran.Text ='' then MessageDlg('Teks Jari-jari kosong'. end.14). [mbOk].text)* 2 * 3.text) * 3. procedure TFormdelapan.Text :=floattostr(strtofloat(edjari. procedure TFormdelapan.

text) * 3. end. 0) else edluaslingkaran.text)* strtofloat(edjari.if edjari. [mbOk].14). Latihan Sembilan 83 .Text ='' then MessageDlg('Teks Jari-jari kosong'. end.Text :=floattostr(strtofloat(edjari. mtInformation.

BtUlangi: TButton. interface uses Windows. edjmlkol1: TEdit. procedure BtProsesClick(Sender: TObject). edjmlkol3: TEdit. Panel1: TPanel. ExtCtrls.Source Program unit Unitsembilan. Graphics. StdCtrls. Forms. procedure FormCreate(Sender: TObject). edjmlkol4: TEdit. SysUtils. Classes. BBKeluar: TBitBtn. edjmlkol2: TEdit. Controls. 84 . EdInput: TEdit. Buttons. Label1: TLabel. Grids. BtProses: TButton. Messages. Dialogs. type TFormsembilan = class(TForm) Grid1: TStringGrid.

implementation {$R *.rowcount:=2.Cells [1.0]:=' grid1.kol2.kol3.procedure BtUlangiClick(Sender: TObject).BtProsesClick(Sender: TObject).0]:='Akumulasi'.kol1.kol4 : integer.DFM} procedure TFormsembilan.Cells [3. . 85 i '.Cells [0. var Formsembilan: TFormsembilan. private { Private declarations } public { Public declarations } end.0]:=' grid1. i x 2 '. var i. procedure TFormsembilan. i x 3 '.0]:=' grid1.Cells [2. end. grid1.FormCreate(Sender: TObject).Cells [4.0]:=' grid1. i x i '. begin grid1.

i] := inttostr(strtoint(grid1.text)+1.Cells [1. kol1:=0. edjmlkol1.Text :=inttostr(kol3).Cells [4.Cells [4.Cells [2.Cells [3.i-1]) +strtoint(grid1.i]). for i:=1 to grid1.Text :=inttostr(kol1).Text :=inttostr(kol2).Cells [4. kol3:=kol3 + strtoint(grid1. kol2:=0.i] := inttostr(i) else grid1. kol2:=kol2 + strtoint(grid1.Cells [3. grid1. kol3:=0.begin grid1.Cells [4.i] := inttostr(i*i).Cells [0. edjmlkol3. kol4:=kol4 + strtoint(grid1. kol1:=kol1 + strtoint(grid1. grid1.rowcount:=strtoint(edinput.i]). edjmlkol2. if i=1 then grid1.1 do begin grid1.i] := inttostr(i).RowCount .i]). 86 .i] := inttostr(i * 2).Cells [1. kol4:=0.Cells [0.i] := inttostr(i*3).i])).Cells [2.i]). grid1. end.

edjmlkol4.Cells [2. end.1]:=''.Cells [1. procedure TFormsembilan. grid1.1]:=''.SetFocus .text:=''.text:=''.Text :=inttostr(kol4). edinput. grid1.1]:=''.Text :=''.Cells [0. edjmlkol1.BtUlangiClick(Sender: TObject). edjmlkol2.Cells [4. end.1]:=''. Latihan Sepuluh 87 . edjmlkol3. end.RowCount :=2.text:=''.text:=''. grid1. edjmlkol4. grid1.Cells [3. grid1. begin edinput.1]:=''. grid1.

88 .

Grids. type TFormSepuluh = class(TForm) Panel1: TPanel. dttanggal: TDateTimePicker. Label5: TLabel. Buttons. Messages. ExtCtrls.Source Program unit Unitsepuluh. 89 . interface uses Windows. Label3: TLabel. Label2: TLabel. Classes. Label1: TLabel. Graphics. Panel3: TPanel. ComCtrls. Panel2: TPanel. Label4: TLabel. Forms. Controls. Dialogs. cmbnosuplier: TComboBox. StdCtrls. SysUtils. ednamasuplier: TEdit. Label6: TLabel. ednofaktur: TEdit.

ednamabrg: TEdit. procedure bbcloseClick(Sender: TObject). procedure FormCreate(Sender: TObject). edtotal: TEdit. bbclose: TBitBtn. edharga: TEdit. Grid1: TStringGrid. Label11: TLabel. btulangi: TButton. procedure btprosesClick(Sender: TObject). Label10: TLabel. Label12: TLabel. procedure btulangiClick(Sender: TObject). Label9: TLabel. Label7: TLabel. procedure cmbnosuplierClick(Sender: TObject). cmbkodebrg: TComboBox. edqty: TEdit. procedure cmbkodebrgClick(Sender: TObject). btproses: TButton.edalamat: TEdit. private { Private declarations } public { Public declarations } 90 . Label8: TLabel.

end. type Tbarang =record kode:string.3] of Tsuplier. nama:string.. var i. end. arbrg : array[0. implementation {$R *.. arsup : array[0. harga : integer.3] of Tbarang.hasil:integer. FormSepuluh: TFormSepuluh. type TSuplier = record nosup:string.end. 91 . alamat:string. nama : string .DFM} procedure isisup().

begin arsup[0].harga:=10000. end. arsup[0].nama:='Meja'.kode:='B004'. arbrg[2].nosup:='S003'. Blambangan 67'. arbrg[0]. Citra Sari'.nosup:='S002'.alamat:='Jl.alamat:='Jl.nama:='Kursi'. Ningrat Jaya'. arsup[1]. P.harga:=20000. arbrg[2]. arbrg[3].nosup:='S001'. Tambunan 276'. procedure isibrg().harga:=40000. arbrg[1]. arbrg[1]. arsup[2].nama:='PT.nama:='PT. arsup[0].nama:='Lemari'.kode:='B001'. Purwakarta 7'.kode:='B003'.alamat:='Jl. arsup[3].kode:='B002'. arbrg[2]. arbrg[0].nama:='PT. 92 . arsup[1]. arbrg[1]. Jaya Ningrat'. arsup[3].nosup:='S004'.alamat:='Jl. arsup[2]. arsup[1]. Cakti Abadi'. begin arbrg[0]. Dinonogoro 76'. arsup[3].nama:='PT. arsup[2].

procedure TFormSepuluh. dttanggal. arbrg[3].ColWidths [2]:=150.ColWidths [1]:=70.add(arbrg[j]. grid1. end.DateTime:=date.add(arsup[j].nama:='Sofa'.bbcloseClick(Sender: TObject). var j: integer. cmbnosuplier. begin grid1. end. procedure TFormSepuluh. hasil:=0.rowcount:=1. i:=1.ColWidths [0]:=50. grid1.nosup).items. for j:=0 to 3 do begin cmbkodebrg.harga:=80000.arbrg[3]. grid1.FormCreate(Sender: TObject).kode). end.items. begin 93 . isibrg. isisup.

begin ednamasuplier.nama.rowcount:=I.btprosesClick(Sender: TObject). grid1.close. end.text)).nama. grid1.cmbnosuplierClick(Sender: TObject). procedure TFormSepuluh.i-1]:=ednamabrg. hasil:=hasil+strtoint(grid1.itemindex].i-1]:=edharga.cells[5. begin grid1. edalamat.cells[1.cmbkodebrgClick(Sender: TObject). grid1.i1]:=inttostr(strtoint(edharga.itemindex].alamat. procedure TFormSepuluh.Text := arsup[cmbnosuplier.itemindex]. end.text.i-1]:=edqty.i-1]:=inttostr(i). grid1.cells[2.i-1]). grid1.cells[0.harga).cells[4.itemindex].cells[3.Text :=inttostr(arbrg[cmbkodebrg.text)*strtoint(edqty.i-1]:=cmbkodebrg. edharga.Text :=arbrg[cmbkodebrg.text. grid1.cells[5.text. procedure TFormSepuluh.text. 94 . begin ednamabrg.text:=arsup[cmbnosuplier. end.

Text :=''. edharga.0]:=''. 95 .Text :=''.Cells[2. grid1. edtotal. grid1.SetFocus . grid1.Text :=''.Cells[4.Cells[5.Text :=''. procedure TFormSepuluh. end. ednamabrg.Text :=''.btulangiClick(Sender: TObject). grid1. cmbnosuplier.Text :=inttostr(hasil).Cells[1. grid1.Text :=''.0]:=''.Text :=''.0]:=''. dttanggal.Cells[3. edqty. grid1. edalamat.i:=i+1. grid1.RowCount :=1.Text :=''.Cells[0.0]:=''.DateTime :=date. ednamasuplier. cmbkodebrg. edtotal.0]:=''. end. ednofaktur.0]:=''. begin ednofaktur.Text :=''.

Latihan Sebelas Source Program unit Unitsebelas. interface uses 96 .end.

bbclose: TBitBtn. Classes. Panel3: TPanel. Forms. Panel2: TPanel. Dialogs. Messages.Windows. edN: TEdit. Controls. Label3: TLabel. GroupBox2: TGroupBox. Label1: TLabel. GroupBox1: TGroupBox. RBPangkat: TRadioButton. BtUlangi: TButton. StdCtrls. GroupBox3: TGroupBox. 97 . Label4: TLabel. ExtCtrls. EdR: TEdit. Graphics. RBCombinasi: TRadioButton. Label2: TLabel. RbPermutasi: TRadioButton. type TFormsebelas = class(TForm) Panel1: TPanel. Buttons. EdDasar: TEdit. BtProses: TButton. EdHasil: TEdit. SysUtils.

Begin hasil:=1. implementation {$R *. procedure BtUlangiClick(Sender: TObject). bp : integer):integer. } { Public declarations } end.Label5: TLabel. procedure BtProsesClick(Sender: TObject). private { Private declarations } public {function pangkat(bd : integer.DFM} function pangkat(bd : integer. for i:= 1 to bp do 98 .hasil : integer. EdPangkat: TEdit. var i. var Formsebelas: TFormsebelas. function faktorial(N : integer):integer. bp : integer):integer.

function faktorial(N : integer):integer. begin if rbpermutasi. procedure TFormsebelas. var hasil. end. end.Checked =true then edhasil.hasil := hasil * bd.i : integer.Text :=floattostr(faktorial(strtoint(edN. begin hasil:=1.text))/faktorial((s trtoint(edN.BtProsesClick(Sender: TObject). for i:=1 to n do hasil:=hasil*i.text)))) else if rbCombinasi.text)strtoint(edR. faktorial:=hasil.Checked =true then 99 . pangkat :=hasil.text))))) else if rbpangkat.text))*faktorial((strtoint(edN.text)-strtoint(edR.text:=floattostr(faktorial(strtoint(edN.text))/ (faktorial(strtoint(edR.Checked =true then edhasil.

Checked :=false. Eddasar.edhasil. end.Text :=''.text:=''.Checked :=false. edN. end. rbpermutasi. rbpangkat.text). Latihan Dua Belas Form Data Modul 100 .Text :=''. procedure TFormsebelas.Text :=''. begin edN.strtoint(edpangkat.BtUlangiClick(Sender: TObject). edPangkat. edR.Text :=''.SetFocus . rbCombinasi. edHasil. end.Checked :=false.text ))).Text :=inttostr(pangkat(strtoint(eddasar.

Form About Form Transaksi 101 .

Dialogs. Forms. Messages. 102 . DBTables.Source Program unit DM. Graphics. SysUtils. Controls. interface uses Windows. Classes. DB.

tblMasterRCMNDATION: TStringField. dsMaster: TDataSource. tblMasterPROJ_GRTH: TFloatField. tblMasterRISK: TStringField. tblMasterIndustryLongName: TStringField. tblMasterSYMBOL: TStringField. tblMasterOUTLOOK: TSmallintField. tblIndustry: TTable. tblMasterCUR_PRICE: TFloatField. tblMasterPRICE_CHG: TSmallintField. tblMasterCO_NAME: TStringField. tblMasterINDUSTRY: TSmallintField. 103 .type TDM1 = class(TDataModule) tblMaster: TTable. dsIndustry: TDataSource. tblMasterRANK: TFloatField. tblIndustryIND_CODE: TSmallintField. tblHoldings: TTable. tblMasterP_E_RATIO: TFloatField. tblMasterYRL_LOW: TFloatField. tblMasterRATING: TStringField. tblIndustryLONG_NAME: TStringField. tblIndustryIND_NAME: TStringField. tblMasterEXCHANGE: TStringField. tblMasterYRL_HIGH: TFloatField.

tblHoldingsPUR_COST: TCurrencyField. implementation uses CtrlForm. tblHoldingsPUR_PRICE: TFloatField. tblHoldingsSHARES: TFloatField. Field: TField). var DM1: TDM1.DFM} 104 . procedure tblHoldingsAfterOpen(DataSet: TDataSet).tblHoldingsACCT_NBR: TFloatField. private { Private declarations } public { Public declarations } end. procedure CalculateTotals(Sender: TObject. procedure tblHoldingsAfterPost(DataSet: TDataSet). procedure tblHoldingsCalcFields(DataSet: TDataSet). {$R *. dsHoldings: TDataSource. tblHoldingsSYMBOL: TStringField. tblHoldingsPUR_DATE: TDateField.

flTotalShares. Field: TField). flTotalValue.Caption := IntToStr( tblHoldings. otherwise. begin tblHoldingsPUR_COST.procedure TDM1. { See whether or not its necessary to total the holdings and (if so) do so and update the result displays. end. procedure TDM1. clear the result displays. var flTotalCost.RecordCount ).AsFloat * tblHoldingsSHARES. } if tblHoldings. flDifference: Real. } strFormatSpec: string.AsFloat := tblHoldingsPUR_PRICE.CalculateTotals(Sender: TObject.AsFloat.lPurchase. { The Display Format specification } begin { Update the count of stock transactions } FmCtrlGrid.recordCount = 0 then begin { Clear the result displays } 105 { Holds total share cost } { Holds total share count } { Holds total share value } { Holds difference between cost and value .tblHoldingsCalcFields(DataSet: TDataSet).

tblHoldings.lDifference.AsFloat. { hide this process from the user } tblHoldings. flTotalShares := flTotalShares + tblHoldingsSHARES. tblHoldings.next.eof do begin flTotalCost := flTotalCost + tblHoldingsPUR_COST.lTotalCost. FmCtrlGrid.Cursor := crHourglass. tblHoldings.Caption := ''. end. end else begin { let the user know something's going on } Screen. { restore the display of holdings } 106 . { Initialize the holder variables } flTotalCost := 0.AsFloat.Caption := ''.FmCtrlGrid. { Calculate the total cost of these holdings.0.lTotalShares.disableControls.first. } tblHoldings.enableControls. flTotalShares := 0.Caption := ''. while not tblHoldings. FmCtrlGrid.first.0.

{ Calculate the current value of the shares (by multiplying the current holdings by the current share price) and the difference between the cost and the value. } flTotalValue := flTotalShares * tblMasterCUR_PRICE.AsFloat; flDifference := flTotalValue - flTotalCost; { Use the same format specification as that being used to display the Current Price field value so it can be used to display the results } strFormatSpec := tblMasterCUR_PRICE.DisplayFormat; { Update the result displays } FmCtrlGrid.lTotalCost.Caption := FormatFloat( strFormatSpec, flTotalCost ); FmCtrlGrid.lTotalShares.Caption := FormatFloat( strFormatSpec, flTotalValue ); FmCtrlGrid.lDifference.Caption := FormatFloat( strFormatSpec, flDifference ); { Update the Font Color of the Diference to indicate the quality of the investment } if flDifference > 0 then
107

FmCtrlGrid.lDifference.Font.Color := clGreen else FmCtrlGrid.lDifference.Font.Color := clRed; FmCtrlGrid.lDifference.update; { let the user know that we're finished } Screen.Cursor := crDefault; end; end;

procedure TDM1.tblHoldingsAfterPost(DataSet: TDataSet); var bmCurrent : TBookmark; { Holds the current position } begin with tblHoldings do begin bmCurrent := getBookmark; try CalculateTotals(nil, nil); { recalc totals } gotoBookmark(bmCurrent); finally; freeBookmark(bmCurrent); end; end; end;
108

{ save position }

{ restore position } { free memory }

procedure TDM1.tblHoldingsAfterOpen(DataSet: TDataSet); begin {Don't want this calculation to occur until both master & detail are open} dsMaster.OnDataChange := CalculateTotals; end; end. unit CtrlForm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, DBCtrls, StdCtrls, ExtCtrls, Mask, DBTables, DB, Grids, DBGrids, Menus, DBCGrids; type TFmCtrlGrid = class(TForm) DBCtrlGrid1: TDBCtrlGrid; DBGrid1: TDBGrid; DBEdit1: TDBEdit;
109

Label6: TLabel. procedure Button1Click(Sender: TObject). Label1: TLabel. About1: TMenuItem. Button1: TButton. Label5: TLabel. lDifference: TLabel. lTotalCost: TLabel. Label8: TLabel. DBEdit4: TDBEdit. Label2: TLabel.DBEdit2: TDBEdit. lTotalShares: TLabel. Label9: TLabel. DBNavigator1: TDBNavigator. lPurchase: TLabel. procedure FormShow(Sender: TObject). MainMenu1: TMainMenu. Label4: TLabel. Label7: TLabel. DBEdit3: TDBEdit. 110 . procedure DBGrid1Enter(Sender: TObject). Label11: TLabel. Label3: TLabel. Label10: TLabel. Bevel1: TBevel.

begin Close. About. procedure About1Click(Sender: TObject).FormShow(Sender: TObject).CalculateTotals(Sender. end. nil).DFM} procedure TFmCtrlGrid.Button1Click(Sender: TObject). {$R *. private { Private declarations } public { Public declarations } end. procedure TFmCtrlGrid. 111 . begin DM1. end. implementation uses DM. var FmCtrlGrid: TFmCtrlGrid.procedure DBCtrlGrid1Enter(Sender: TObject).

DBGrid1Enter(Sender: TObject).About1Click(Sender: TObject). procedure TFmCtrlGrid. begin DBNavigator1. end. finally Free. end. end.DSHoldings.DataSource := DM1. end. procedure TFmCtrlGrid.DataSource := DM1.DSMaster.DBCtrlGrid1Enter(Sender: TObject). end. 112 . begin with TFMAboutBox.Create(nil) do try ShowModal. begin DBNavigator1.procedure TFmCtrlGrid.

You're Reading a Free Preview

Mengunduh
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->