Pemprograman Visual
disusun oleh
JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS MULAWARMAN
2016
Daftar Isi
Daftar Isi ii
1 Pemprograman Dasar 1
1.2 Variabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Perulangan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.6 Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Pemprograman Terstruktur 11
2.1 Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
i
DAFTAR ISI ii
Daftar Pustaka 54
BAB 1
Pemprograman Dasar
1
1 program Project1;
2
5 uses
6 {$IFDEF UNIX} {$IFDEF UseCThreads}
7 cthreads,
8 {$ENDIF} {$ENDIF}
9 Classes
10 { you can add units after this };
11
14 begin
15 end.
Latihan:
Ketik perintah-perintah berikut:
3. Writeln(’5 * 2 = ’, 5 * 2);
6. Writeln(10, ’ * ’, 3 , ’ = ’, 10 * 3);
1.2 Variabel
1 program FirstVar;
2
5 uses
6 {$IFDEF UNIX} {$IFDEF UseCThreads}
7 cthreads,
8 {$ENDIF} {$ENDIF}
9 Classes
10 { you can add units after this };
11
12 var
13 x: Integer;
14 begin
15 x:= 5;
16 Writeln(x * 2);
17 Writeln('Press enter key to close');
18 Readln;
19 end.
Selain integer, tipe variabel lain yang dapat digunakan adalah real dan string. Agar
lebih interaktif dan fleksibel, program yang dibuat dapat ditambahkan perintah
Readln.
1 var
2 x: Integer;
3 begin
4 Write('Please input any number:'); Readln(x);
5 Writeln('You have entered: ', x);
6 Writeln('Press enter key to close'); Readln;
7 end.
Suatu program dikatakan efisien jika memiliki ukuran file yang kecil. Tabel (1.1)
berisi tipe-tipe bilangan, rentang nilai, dan memori yang dibutuhkan. Informasi
yang tertera pada Tabel (1.1) dapat diperoleh dengan menggunakan fungsi Low ,
High, dan SizeOf .
1 program Types;
2
5 uses
6 {$IFDEF UNIX} {$IFDEF UseCThreads}
7 cthreads,
8 {$ENDIF} {$ENDIF}
9 Classes;
10
11 begin
12 Writeln('Byte: Size = ', SizeOf(Byte),
13 ', Minimum value = ', Low(Byte), ', Maximum value = ',
14 High(Byte));
15
1 var
2 Temp: Single;
3 ACIsOn: Byte;
4
5 begin
6 Write('Please enter Temperature of this room : ');
7 Readln(Temp);
8 Write('Is air conditioner on? if it is (On) write 1,',
9 ' if it is (Off) write 0 : ');
10 Readln(ACIsOn);
11
1 var
2 Mark: Integer;
3
4 begin
9 case Mark of
10 0 .. 39 : Writeln('Student grade is: F');
11 40 .. 49: Writeln('Student grade is: E');
12 50 .. 59: Writeln('Student grade is: D');
13 60 .. 69: Writeln('Student grade is: C');
14 70 .. 84: Writeln('Student grade is: B');
15 85 .. 100: Writeln('Student grade is: A');
16 else
17 Writeln('Wrong mark');
18 end;
19
1 var
2 Key: Char;
3
4 begin
5 Write('Please enter any English letter: ');
6 Readln(Key);
7 Writeln;
8 case Key of
9 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p':
10 Writeln('This is in the second row in keyboard');
11
1.4 Perulangan
1 var
2 Fac, Num, i: Integer;
3
4 begin
5 Write('Please input any number: ');
6 Readln(Num);
7 Fac:= 1;
8 for i:= Num downto 1 do
9 Fac:= Fac * i;
10 Writeln('Factorial of ', Num ,' is ', Fac);
11 Writeln('Press enter key to close');
12 Readln;
13 end.
1 var
2 Num : Integer;
3
4 begin
5 repeat
6 Write('Please input a number: ');
7 Readln(Num);
8 until Num ≤ 0;
9 Writeln('Finished, please press enter key to close');
10 Readln;
11 end.
4 begin
5 Write('Please input any number: ');
6 Readln(Num);
7 Fac:= 1;
8 i:= Num;
9 while i > 1 do
10 begin
11 Fac:= Fac * i;
12 i:= i − 1;
13 end;
14 Writeln('Factorial of ', Num ,' is ', Fac);
15
1.5 Array
1 var
2 Marks: array [1 .. 10] of Integer;
3 i: Integer;
4 Max, Min: Integer;
5
6 begin
7 for i:= 1 to 10 do
8 begin
9 Write('Input student number ', i, ' mark: ');
10 Readln(Marks[i]);
11 end;
12 Max:= Marks[1];
13 Min:= Marks[1];
14 for i:= 1 to 10 do
15 begin
1.6 Record
1 program Cars;
2
5 uses
6 {$IFDEF UNIX} {$IFDEF UseCThreads}
7 cthreads,
8 {$ENDIF} {$ENDIF}
9 Classes
10 { you can add units after this };
11
12 type
13 TCar = record
19 var
20 Car: TCar;
21
22 begin
23 Write('Input car Model Name: ');
24 Readln(Car.ModelName);
25 Write('Input car Engine size: ');
26 Readln(Car.Engine);
27 Write('Input car Model year: ');
28 Readln(Car.ModelYear);
29
30 Writeln;
31 Writeln('Car information: ');
32 Writeln('Model Name : ', Car.ModelName);
33 Writeln('Engine size : ', Car.Engine);
34 Writeln('Model Year : ', Car.ModelYear);
35
Pemprograman Terstruktur
2.1 Procedure
1 procedure Menu;
2 begin
3 Writeln('Welcome to Pascal Restaurant. Please select your order');
4 Writeln('1 − Chicken (10$)');
5 Writeln('2 − Fish (7$)');
6 Writeln('3 − Meat (8$)');
7 Writeln('4 Salad (2$)');
8 Writeln('5 − Orange Juice (1$)');
9 Writeln('6 − Milk (1$)');
10 Writeln;
11 end;
11
12
19 // Main application
20
21 var
22 Meal: Byte;
23
24 begin
25 Menu;
26
30 case Meal of
31 1: GetOrder('Chicken', 15);
32 2: GetOrder('Fish', 12);
33 3: GetOrder('Meat', 18);
34 4: GetOrder('Salad', 5);
35 5: GetOrder('Orange juice', 2);
36 6: GetOrder('Milk', 1);
37 else
38 Writeln('Wrong entry');
39 end;
40 Write('Press enter key to close');
41 Readln;
42 end.
2.2 Function
1 procedure Menu;
2 begin
21 var
22 Selection: Char;
23 Price: Integer;
24 Total: Integer;
25
26 begin
27 Total:= 0;
28 repeat
29 Menu;
30 Write('Please enter your selection: ');
31 Readln(Selection);
32
33 case Selection of
34 '1': Price:= GetOrder('Checken', 15, 10);
35 '2': Price:= GetOrder('Fish', 12, 7);
36 '3': Price:= GetOrder('Meat', 18, 8);
37 '4': Price:= GetOrder('Salad', 5, 2);
38 '5': Price:= GetOrder('Orange juice', 2, 1);
39 '6': Price:= GetOrder('Milk', 1, 1);
40 'x', 'X': Writeln('Thanks');
41 else
42 begin
43 Writeln('Wrong entry');
44 Price:= 0;
2.3 Unit
Materi selanjutnya adalah unit. Untuk membuat unit, dapat melalui File/New Unit
atau File/New/Module/Pascal unit, lalu Lazarus membuat template berikut:
1 unit Unit1;
2
5 interface
6
7 uses
8 Classes, SysUtils;
9
10 implementation
11
12 end.
Setelah berhasil membuat unit baru, sebaiknya simpan dengan nama spesi-
fik, seperti Test. Sehingga kode tersebut akan disimpan dalam file yang bernama
”Test.pas”. Selanjutnya mulai tulis prosedur, fungsi, dan kode yang digunakan kem-
bali. Berikut adalah contoh unit.
1 unit Test;
2
5 interface
6
7 uses
8 Classes, SysUtils;
9
10 const
11 GallonPrice = 6.5;
12
15 implementation
16
22 end.
Untuk menggunakan unit, harus membuat program baru dalam direktori yang
sama dengan unit. Lalu tambahkan unit ini dalam klausa uses. Perhatikan contoh
berikut.
1 program PetrolConsumption;
2
5 uses
6 {$IFDEF UNIX} {$IFDEF UseCThreads}
7 cthreads,
8 {$ENDIF} {$ENDIF}
9 Classes, SysUtils
10 { you can add units after this }, Test;
11
12 var
13 Payment: Integer;
14 Consumption: Integer;
15 Kilos: Single;
17 begin
18 Write('How much did you pay for your car''s petrol: ');
19 Readln(Payment);
20 Write('What is the consumption of your car (Kilos per one ...
Gallon) ');
21 Readln(Consumption);
22
Setelah membuat aplikasi baru seperti Gambar (3.1), selanjutnya taruh dua Button
dan sebuah Label dari komponen standar pada form. Setelah itu, ubah properti-
properti Button dan Label pada jendela Object Inspector. Jika tidak muncul dalam
17
Gambar 3.2: Standard component page
jendela Lazarus, klik Windows/Object Inspector dari menu utama atau tekan F11.
Untuk Button1, pilih Events tab dan double click the OnClick event. Kemudian
buat kode berikut dalam unit utama.
Lakukan hal yang sama untuk Button2, namun dengan kode berikut.
Berikut adalah contoh desain form dan unit yang telah terbentuk.
1 unit Unit1;
2
5 interface
6
7 uses
8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, ...
Dialogs, StdCtrls;
9
10 type
11
12 { TForm1 }
13
14 TForm1 = class(TForm)
15 Button1: TButton;
16 Button2: TButton;
17 Label1: TLabel;
18 procedure Button1Click(Sender: TObject);
19 procedure Button2Click(Sender: TObject);
20 private
21 { private declarations }
22 public
23 { public declarations }
24 end;
25
26 var
27 Form1: TForm1;
28
29 implementation
30
31 {$R *.lfm}
32
46 end.
Memodifikasi program
Ubah prosedur untuk Button1 sebagai berikut:
Latihan
Dengan memanfaatkan Object properties, buatlah aplikasi dengan menggunakan
Button, yang dapat mengubah warna form dan font pada Label .
Aplikasi pada bagian ini dapat diinput, lalu dengan mengklik Button, pesan akan
tertampil dalam suatu Label . Untuk membuat aplikasi ini, buat form baru dan
letakkan 2 Label , 1 EditBox , dan 1 Button pada form. Dengan menggunakan
Object Inspector, ubahlah properti dari komponen yang ada sesuai pada Gambar
(3.5). Selanjutnya letakkan kode berikut dalam OnClick event:
1 unit unit2;
2
5 interface
6
7 uses
8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, ...
Dialogs, StdCtrls;
9
10 type
11
12 { TfmMain }
13
14 TfmMain = class(TForm)
26 var
27 fmMain: TfmMain;
28
29 implementation
30
31 {$R *.lfm}
32
33 { TfmMain }
34
40 end.
Memodifikasi program
Tambahkan unit ”LCLType” dalam klausa uses, lalu tambahkan event KeyDown
pada komponen EditBox dan masukkan kode berikut:
Komponen edit box juga dapat digunakan dalam membuat kalkulator seder-
hana. Berikut adalah langkah-langkah yang digunakan:
1. Buat aplikasi baru dan letakkan 4 Label , 4 Button, dan 2 EditBox pada
form seperti pada Gambar (3.6).
1 unit unit2a;
2
5 interface
6
7 uses
8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, ...
Dialogs, StdCtrls, Buttons;
9
12 { TForm1 }
13
14 TForm1 = class(TForm)
15 BTambah: TButton;
16 BKurang: TButton;
17 BKali: TButton;
18 BBagi: TButton;
19 Nil1: TEdit;
20 Nil2: TEdit;
21 Label1: TLabel;
22 Label2: TLabel;
23 Label3: TLabel;
24 LabelHasil: TLabel;
25 procedure BBagiClick(Sender: TObject);
26 procedure BKaliClick(Sender: TObject);
27 procedure BKurangClick(Sender: TObject);
28 procedure BTambahClick(Sender: TObject);
29 private
30 { private declarations }
31 public
32 { public declarations }
33 end;
34
35 var
36 Form1: TForm1;
37
38 implementation
39
40 {$R *.lfm}
41
42 { TForm1 }
43
92 end.
Materi yang dipelajari pada bagian ini adalah menambah, menghapus, dan mem-
bersihkan teks di dalam list box. Ikuti langkah-langkah berikut:
1. Buat aplikasi baru dan letakkan 4 Button, EditBox , dan ListBox pada
form.
1 unit unit3;
2
5 interface
6
7 uses
8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, ...
Dialogs, StdCtrls;
9
10 type
11
12 { TForm1 }
13
14 TForm1 = class(TForm)
31 var
32 Form1: TForm1;
33
34 implementation
35
36 {$R *.lfm}
37
38 { TForm1 }
39
64 end.
Selain Edit Box , komponen yang dapat diedit teksnya adalah Memo. Komponen
Memo dapat menulis teks yang lebih dari 1 baris. Pada bagian ini, komponen
tersebut digunakan dalam membuat aplikasi yang dapat menyimpan judul berita.
Untuk lebih jelasnya, buat aplikasi baru lalu tambahkan 2 Button, 1 Label , 1
Memo dan atur propertinya:
1 unit unit5;
2
5 interface
7 uses
8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, ...
Dialogs, StdCtrls;
9
10 type
11
12 { TForm1 }
13
14 TForm1 = class(TForm)
15 Button1: TButton;
16 Button2: TButton;
17 Edit1: TEdit;
18 Label1: TLabel;
19 Memo1: TMemo;
20 procedure Button1Click(Sender: TObject);
21 procedure Button2Click(Sender: TObject);
22 procedure FormClose(Sender: TObject; var CloseAction: ...
TCloseAction);
23 procedure FormCreate(Sender: TObject);
24 private
25 { private declarations }
26 public
27 { public declarations }
28 end;
29
30 var
31 Form1: TForm1;
32
33 implementation
35 {$R *.lfm}
36
37 { TForm1 }
38
59 end.
Pada bagian ini, komponen utama yang akan dikenalkan adalah Radio Button.
Komponen ini digunakan jika harus menentukan satu dari beberapa pilihan. Adapun
langkah-langkah yang harus diikuti adalah sebagai berikut:
1. Buat aplikasi baru dan tambahkan 4 Label , 3 Edit Box , dan 1 Button.
2. Ubah ketiga Edit Box tersebut dengan nama EPinjam, EBunga, dan EAng-
1 unit unit7;
2
5 interface
6
7 uses
8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, ...
Dialogs, StdCtrls;
9
10 type
11
12 { TForm1 }
13
14 TForm1 = class(TForm)
15 Button1: TButton;
16 EPinjam: TEdit;
17 EBunga: TEdit;
18 EAngsur: TEdit;
19 GroupBox1: TGroupBox;
34 var
35 Form1: TForm1;
36
37 implementation
38
39 {$R *.lfm}
40
41 { TForm1 }
42
57 end.
Berbeda dengan Radio Button, komponen Check Box dapat digunakan untuk
menentukan pilihan yang lebih dari satu. Adapun langkah-langkah yang harus di-
ikuti adalah sebagai berikut:
4. Pilih salah satu komponen, lalu double click TabOrder pada properties, dan
urutkan komponen-komponen sesuai dengan Gambar (3.10b).
(a) (b)
1 unit unit8;
2
5 interface
6
10 type
11
12 { TForm1 }
13
14 TForm1 = class(TForm)
15 Button1: TButton;
16 CheckBox1: TCheckBox;
17 CheckBox2: TCheckBox;
18 CheckBox3: TCheckBox;
19 CheckBox4: TCheckBox;
20 CheckBox5: TCheckBox;
21 CheckBox6: TCheckBox;
22 CheckBox7: TCheckBox;
23 CheckBox8: TCheckBox;
24 CheckBox9: TCheckBox;
25 Edit1: TEdit;
26 Edit2: TEdit;
27 Edit3: TEdit;
28 Edit4: TEdit;
29 Edit5: TEdit;
30 Edit6: TEdit;
31 GroupBox1: TGroupBox;
32 GroupBox2: TGroupBox;
33 Label1: TLabel;
34 procedure Button1Click(Sender: TObject);
35 private
36 { private declarations }
37 public
38 { public declarations }
39 end;
40
41 var
42 Form1: TForm1;
43
44 implementation
45
46 {$R *.lfm}
47
92 biayaminum:=minum1+minum2+minum3+minum4+minum5+minum6;
93
98 end.
Jika komponen Dialog diaktifkan, maka muncul jendela interaktif yang dapat mem-
bantu user mengatur sesuai permintaan. Berikut adalah contoh sederhana meng-
gunakan komponen Color Dialog . Siapkan 1 Button dan 1 Color Dialog , lalu
letakkan seperti pada Gambar(3.11).
Seperti halnya Color Dialog, komponen Font Dialog juga menampilkan suatu
dialog. Untuk lebih jelasnya, ikuti langkah-langkah berikut:
1. Siapkan aplikasi baru dan taruh Memo, Font Dialog , dan Button di atas
form.
Materi selanjutnya adalah membuat aplikasi text editor sederhana dengan meman-
faatkan komponen Open dialog dan Save dialog . Ikuti langkah-langkah berikut:
(a) TMainMenu
(b) TMemo: ubah align property-nya ke alClient dan ScrollBars ke ssBoth
(c) TOpenDialog dan TSaveDialog .
2. Double click pada komponen MainMenu1 lalu tambah menu File dengan sub
menu yang berisi Open File, Save File, dan Close sehingga tampak seperti
Gambar (3.16).
1 unit unit4;
2
5 interface
6
7 uses
8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, ...
Dialogs, Menus,
9 StdCtrls;
10
13 { TForm1 }
14
15 TForm1 = class(TForm)
16 MainMenu1: TMainMenu;
17 Memo1: TMemo;
18 MenuItem1: TMenuItem;
19 MenuItem2: TMenuItem;
20 MenuItem3: TMenuItem;
21 MenuItem4: TMenuItem;
22 OpenDialog1: TOpenDialog;
23 SaveDialog1: TSaveDialog;
24 procedure MenuItem2Click(Sender: TObject);
25 procedure MenuItem3Click(Sender: TObject);
26 procedure MenuItem4Click(Sender: TObject);
27 private
28 { private declarations }
29 public
30 { public declarations }
31 end;
32
33 var
34 Form1: TForm1;
35
36 implementation
37
38 {$R *.lfm}
39
40 { TForm1 }
41
59 end.
Dalam materi ini, beberapa fungsi matematik dasar ditampilkan secara visual de-
ngan menggunakan komponen Chart. Sebelum memulai, ada dua istilah penting
yang harus dijelaskan yaitu ”series” dan ”chart”. Diagram seperti Gambar (3.19)
adalah chart dan setiap fungsi yang ditampilkan sebagai kurva disebut series. Ber-
ikut adalah langkah-langkah yang dilakukan untuk membuat grafik:
1. Buat aplikasi baru dan taruh komponen Chart sehingga muncul diagram
kosong seperti Gambar (3.17).
2. Double-click on the Chart, sehingga muncul edit series seperti pada Gambar
(3.18). Lalu pilih line series dan ulangi langkah yang sama sehingga ada 3
line series.
3. Beri nama ketiga series tersebut dengan SinSeries, CosSeries, dan SinCos-
Series. Beri warna berbeda untuk masing-masing series dengan mengubah
properti SeriesColor .
9. Untuk memberi nama pada sumbu horisontal, ubah Caption pada sub-komponen
Buttom dalam AxisList, dengan nama ”sumbu x”. Ubah visible menjadi true
dan font style menjadi bold. Dengan cara yang sama, tampilkan nama ”sumbu
y” untuk sub-komponen Left.
Meskipun Lazarus dapat membuat beberapa chart, namun tipe bar series lebih
sulit dibanding dengan tipe series yang lain. Hal ini dikarenakan ada beberapa
kemungkinan untuk lebar jarak yang digunakan, yaitu:
Dalam bagian ini, ditunjukkan ide dasar membuat chart dengan beberapa bar se-
ries yang disusun secara side-by-side. Berikut adalah langkah-langkah yang perlu
diperhatikan:
1. Buat aplikasi baru dan taruh komponen TChart pada form. Ubah properti
Align menjadi alClient.
10. Untuk menjadikan bar series menjadi horisontal, ubah properti ketiga kom-
ponen bar series: AxisIndexX menjadi Left dan AxisIndexY menjadi Bottom.
Pada komponen TChart, ubah properti LeftAxis.Marks.Source menjadi La-
belsChartSource dan Style menjadi smsLabel.
Pada bagian ini, data yang digunakan untuk membuat grafik, berasal dari file de-
ngan nama ”population.txt”. Data tersebut merupakan populasi dunia yang diambil
dari situs http://www.census.gov yang terdiri dari ”Age”, ”Both Sexes”, ”Popula-
tion”, ”Male Population”, ”Female Population”, dan ”Sex Ratio”. Perlu diingat
bahwa file ”population.txt” harus diletakkan pada direktori yang sama dengan file-
file aplikasi yang akan dibuat.
Untuk memulai, buat aplikasi baru lalu segera simpan. Buat unit baru ber-
nama ”population.pas” dengan kode berikut:
1 unit population;
2
5 interface
6
7 uses
8 Classes, SysUtils;
9
10 type
11 TPopulationRecord = record
12 Age: Integer;
13 Total: Double;
14 Male: Double;
15 Female: Double;
16 Ratio: Double;
17 end;
18
19 type
20 TPopulationArray = array of TPopulationRecord;
21
24
25 implementation
26
39 var
40 List1, List2: TStringList;
41 i, j, n: Integer;
42 s: String;
43 ds: char;
81 end.
Tambahkan unit population dalam daftar uses untuk mengakses prosedur Load-
PopulationData. Tambahkan variabel PopulationData dengan tipe TPopulation-
Komponen Panel dan Combo Box sangat berguna dalam aplikasi ini, ka-
rena file yang akan dibaca berisi beberapa kategori yaitu ”total”, ”male”, ”female
population”, dan ”Sex Ratio”. Sehingga tambahkan komponen Panel pada form,
ubah properti align menjadi alTop dan hapus teks untuk Caption. Untuk kompo-
nen Combo Box :
1 unit unit14;
2
5 interface
7 uses
8 Classes, SysUtils, FileUtil, TAGraph, TASeries, TASources, ...
Forms, Controls,
9 Graphics, Dialogs, ExtCtrls, StdCtrls, population, TACustomSource;
10
11 type
12
13 { TForm1 }
14
15 TForm1 = class(TForm)
16 Chart1: TChart;
17 Chart1AreaSeries1: TAreaSeries;
18 ComboBox1: TComboBox;
19 Panel1: TPanel;
20 UserDefinedChartSource1: TUserDefinedChartSource;
21 procedure ComboBox1Select(Sender: TObject);
22 procedure FormCreate(Sender: TObject);
23 procedure UserDefinedChartSource1GetChartDataItem(
24 ASource: TUserDefinedChartSource; AIndex: Integer;
25 var AItem: TChartDataItem);
26 private
27 { private declarations }
28 PopulationData: TPopulationArray;
29 public
30 { public declarations }
31 end;
32
33 var
34 Form1: TForm1;
35
36 implementation
37
38 {$R *.lfm}
39
40 const
41 POPULATION FILE = 'population.txt';
42
43 { TForm1 }
44
52 procedure TForm1.UserDefinedChartSource1GetChartDataItem(
53 ASource: TUserDefinedChartSource; AIndex: Integer; var AItem: ...
TChartDataItem);
54 begin
55 AItem.X := PopulationData[AIndex].Age;
56 case Combobox1.ItemIndex of
57 0: AItem.Y := PopulationData[AIndex].Total;
58 1: AItem.Y := PopulationData[AIndex].Male;
59 2: AItem.Y := PopulationData[AIndex].Female;
60 3: AItem.Y := PopulationData[AIndex].Ratio;
61 end;
62 end;
63
70 end.
Multi form
Pada bagian sebelumnya, form yang digunakan hanya satu. Namun dalam aplikasi
nyata, seringkali dibutuhkan form yang lebih dari satu. Adapun langkah-langkah
yang digunakan untuk membuat aplikasi yang multi form adalah sebagai berikut:
1. Buat aplikasi baru dan simpan dalam folder baru dengan nama secondform.
2. Simpan unit utama sebagai main.pas, dan namakan komponen form sebagai
fmMain. Lalu simpan project dengan nama secondform.lpi.
3. Tambahkan form baru dengan mengklik File/New Form. Simpan unit ba-
ru dengan nama second.pas, dan beri nama untuk komponen form sebagai
fmSecond.
4. Tambahkan sebuah Label dalam form kedua dengan Caption property: ’Se-
cond Form’.
1 uses second;
atau
1 fmSecond.ShowModal;
Tanpa disadari, besarnya ukuran executable file yang telah dibuat oleh Lazarus men-
jadi tidak efisien ketika memory komputer yang tersedia sangat sedikit. Jika ingin
mengurangi ukuran file tersebut, klik Project/Project Options/Debugging, lalu dis-
able pilihan ”Generate debugging info for GDB”. Selanjutnya Rebuild project.
GDB (GNU debugger ) merupakan debugger standar untuk Lazarus.
1. http://wiki.lazarus.freepascal.org
54