Object Oriented Programming dengan Delphi (

  

Pengertian Class dan Object

Pengertian Class

Class merupakan tipe data yang didefinisikan oleh user, yang mempunyai prilaku dan beberapa operasi

  (behavior). Sebuah class dapat mempuyai beberapa data internal (data abstraction=penyembunyian data sehingga user tidak dapat mengaksesnya) dan beberapa method dalam format procedure atau function dan biasanya menjelaskan karakteristik umum dan prilaku beberapa object yang sama. Contoh suatu class adalah sebagai berikut:

  Class yang telah didefinsikan merupakan class TManusia. Class TManusia mempunyai attribut dan operasi. Tanda (-),(+),(#) mempunyai arti sebagai level akses dari class:

  • Level private (-), berarti setiap atribut atau operasi hanya bisa di akses oleh class yang bersangkutan saja.
  • Level protected (#), berarti setiap atribut atau operasi dapat diakses oleh class itu sendiri atau dapat pula di akses oleh class turunannya.
  • Level public (+), berarti setaip atribut atau operasi dapat diakses oleh semua class dan diluar class yang bersangkutan.

  Deklarasi kelas dituliskan setelah kata kunci “interface, dan definisi clas tersebut ditulis setelah kata kunci “implementation”.

Contoh dalam program Delphi adalah sebagai berikut: unit manusia;

  interface uses SysUtils; type TManusia=class private

  {Data field Atribut} FNama: string; FWarnaKulit: string; FUsia:integer; FKelamin:boolean; function GetLabelKelamin: string; procedure SetWarnaKulit(const Value: string); protected public {Methods} procedure Makan; procedure Berjalan; procedure Berlari; property Nama: string read FNama write FNama; property Usia: integer read FUsia write FUsia; property Kelamin: boolean read FKelamin write FKelamin; property LabelKelamin: string read GetLabelKelamin; end; implementation { Manusia } procedure TManusia.Berjalan; begin writeln(Nama+ ' sedang berjalan...!'); end; procedure TManusia.Berlari; begin writeln(Nama+ ' sedang berlari...!'); end; function TManusia.GetLabelKelamin: string; var s:string; begin if FKelamin then s:='Pria' else s:='Wanita'; Result:=s; end; procedure TManusia.Makan; begin writeln(Nama+' sedang makan duren monthong...!'); end; procedure TManusia.SetWarnaKulit(const Value: string); begin FWarnaKulit := Value; end; end.

  Pengertian Object

  Object adalah instansi dari class atau variable dari tipe data yang telah didefinsikan oleh class. Object adalah entitas yang actual, ketika program dijalankan object mengambil memori untuk dirinya. Hubungan antara class dan object dapat di samakan dengan hubungan antara tipe data dan variable. Contoh object yang menggunakan class TManusia: program Project2; {$APPTYPE CONSOLE} uses SysUtils, manusia in 'manusia.pas'; var

  Mince: TManusia; Rina: TManusia; begin { TODO -oUser -cConsole Main : Insert code here } Otong:=TManusia.Create; Mince:=TManusia.Create; Rina:=TManusia.Create; Otong.Nama:='Otong'; Mince.Nama:='Mince'; Rina.Nama:='Rina'; //writeln('Nama : '+ Otong.FNama); FNama tidak dapat diakses diluar class (private) Otong.Berjalan; Mince.Makan; Rina.Berlari; readln; Otong.Free; Mince.Free; Rina.Free; end.

  Output: Otong sedang berjalan...! Mince sedang makan duren monthong...! Rina sedang berlari...! Object Otong,Mince dan Rina menginstansikan dari class TManusia. Untuk dapat menggunakan object- object tersebut, terlebih dahulu harus mengambil memori dengan mengoperasi fungsi “Create”.

  Kemudian dari object tersebut dapat diakses operasi maupun atribut yang mempunyai level “public”. Setelah object digunakan, diharuskan melepas memori yang telah digunakan oleh masing-masing object dengan perintah “Free”, Catatan: Operasi Create dan Free sudah didefinisikan oleh class TObject yang secara otomatis di class TManusia merupakan turunan dari class TObject oleh Delphi sendiri.

  Method

  Method dapat disamakan dengan prosedur dan fungsi (procedure and function) yang memiliki parameter lengkap dan mengacu pada object itu sendiri.

  Constructor

  Constructor digunakan untuk menginisialisasikan anggota-anggota dari class, mengalokasikan memori atau untuk melakukan tugas-tugas oleh start up yang lain.

  Destructor

  Destructor merupakan kebalikan dari constructor, biasanya digunakan untuk membebaskan memori yang telah digunakan olah anggota class. Destructor merupakan method special yang secara otomatis dipanggil sesaat sebelum object dihancurkan. Contoh penggunaan constructor dan destructor pada class TManusia adalah sebagai berikut: ... protected public constructor Create(N:String); destructor Destroy;override; procedure Makan; procedure Berjalan; procedure Berlari; ...

Implementasi program: ..

  constructor TManusia.Create(N: String); begin inherited Create; Nama:=N; end; destructor TManusia.Destroy; begin inherited; end; ...

  Penggunaan class oleh object: Otong:=TManusia.Create('Otong'); Mince:=TManusia.Create('Mince'); Rina:=TManusia.Create('Rina');

  Self

  Self merupakan pointer yang menunjuk instansi dari class di dalam memori dan sebagai parameter ekstra tersembunyi yang dibutuhkan saat pembuatan beberapa object pada class yang sama. Contoh penggunaan Self: unit MyRect; interface type TMyRect = class private Left : Integer; Top : Integer; Right : Integer; Bottom : Integer; Text : string; public function GetWidth : Integer; procedure SetRect(ALeft, ATop, ARight, ABottom : Integer); constructor Create; constructor CreateVal(ALeft, ATop, ARight, ABottom : Integer); destructor Destroy; override; end; implementation { TMyRect } constructor TMyRect.Create; begin Left:=0;Right:=0; Top:=0;Bottom:=0; Text:=''; end; constructor TMyRect.CreateVal(ALeft, ATop, ARight, ABottom: Integer); begin Left:=Aleft;Right:=ARight; Top:=Atop;Bottom:=ABottom; end; destructor TMyRect.Destroy; begin inherited; end; function TMyRect.GetHeight: Integer; begin Result:=Bottom-Top; end; function TMyRect.GetWidth: Integer; begin Result:=Self.Right-Self.Left; end; procedure TMyRect.SetRect(ALeft, ATop, ARight, ABottom: Integer); begin Left:=Aleft;Right:=ARight; Top:=Atop;Bottom:=ABottom; end; end.

  Overloaded

  Pascal object mendukung adanya overload function dan method, yaitu kita dapat membuat lebih dari satu suatu fungsi dengan nama yang sama tetapi mempunyai parameter yang berbeda. Aturan dalam pembuatan overload function atau method adalah: • Setiap penulisan dari method harus diikuti dengan kata kunci “overload”.

  • Perbedaan harus dari jumlah atau tipe parameternya atau keduanya. Tipe pengembalian tidak dapat digunakan untuk membedakan antar method.

  Contoh: uses sysutils; type TDate = class private FDate: TDatetime; public procedure SetValue(y,m,d:integer);overload; procedure SetValue(NewDate:Tdatetime);overload; function GetValue:TDatetime; end; implementation { TDate } procedure TDate.SetValue(y, m, d: integer); begin FDate:=EncodeDate(y,m,d); end; function TDate.GetValue: TDatetime; begin Result:=FDate; end; procedure TDate.SetValue(NewDate: Tdatetime); begin FDate:=NewDate; end; end.

Encapsulation

  Penjelasan encapsulation dapat diartikan dengan penyembuyian data oleh class yang bersangkutan dan kita tidak dapat mengaksesnya secara langsung, tetapi dengan perantara interface yang dibuat dengan method atau property yang mempunyai level public. Contoh class: unit AirplaneU; interface uses SysUtils; const { Airplane types. } Airliner = 0; Commuter = 1; PrivateCraft = 2; { Status constants. } TakingOff = 0; Cruising = 1; Landing = 2; OnRamp = 3; { Message constants. } MsgChange = 0; MsgTakeOff = 1; MsgLand = 2; MsgReport = 3; type TAirplane = class private Name : string; Speed : Integer; Altitude : Integer; Heading : Integer; Status : Integer; Kind : Integer; Ceiling : Integer; protected procedure TakeOff(Dir : Integer); virtual; procedure Land; virtual; public constructor Create(AName : string; AKind : Integer = Airliner); function SendMessage(Msg : Integer; var Response : string; Spd : Integer; Dir : Integer; Alt : Integer) : Boolean; function GetStatus(var StatusString : string) : Integer; overload; virtual; function GetStatus : Integer; overload; function GetSpeed : Integer; function GetHeading : Integer; function GetAltitude : Integer; function GetName : string; end; implementation constructor TAirplane.Create(AName : string; AKind : Integer); begin inherited Create; Name := AName; Kind := AKind; Status := OnRamp; case Kind of Airliner : Ceiling := 35000; Commuter : Ceiling := 20000; PrivateCraft : Ceiling := 8000; end; end;

procedure TAirplane.TakeOff(Dir : Integer); begin Heading := Dir; Status := TakingOff; end; procedure TAirplane.Land; begin Speed := 0; Heading := 0; Altitude := 0; Status := OnRamp; end; function TAirplane.SendMessage(Msg : Integer; var Response : string; Spd : Integer; Dir : Integer; Alt : Integer) : Boolean; begin Result := True; case Msg of MsgTakeOff : if status <> OnRamp then begin Response := Name + ': I''m already in the air!'; Result := False; end else TakeOff(dir); MsgChange : begin if Spd > 500 then Response := 'Command Error: Speed cannot be more than 500.'; if Dir > 360 then Response := 'Command Error: Heading cannot be over 360 degrees.'; if Alt < 100 then Response := Name + ': I''d crash!'; if Alt > Ceiling then Response := Name + ': I can''t go that high.'; if (Spd = 0) and (Dir = 0) and (Alt = 0) then Response := Name + ': Huh?'; if Response <> '' then begin Result := False; Exit; end; if status = OnRamp then begin Response := Name + ': I''m on the ground.'; Result := False; end else begin Speed := Spd; Heading := Dir; Altitude := Alt; Status := Cruising; end; end; MsgLand : if status = OnRamp then begin

  Result := False; end else Land; MsgReport : begin GetStatus(Response); Exit; end; end; if Result then Response := Name + ': Roger.'; end; function TAirplane.GetStatus(var StatusString : string) : Integer; begin StatusString := Format('%s, Altitude: %d, Heading: %d, ' + 'Speed: %d', [Name, Altitude, Heading, Speed]); Result := Status; end; function TAirplane.GetStatus : Integer; begin Result := Status; end; function TAirplane.GetSpeed : Integer; begin Result := Speed; end; function TAirplane.GetHeading : Integer; begin Result := Heading; end; function TAirplane.GetAltitude : Integer; begin Result := Altitude; end; function TAirplane.GetName : string; begin Result := Name; end; end.

Inheritance

  Inheritance merupakan penurunan suatu class yang sudah ada dengan class baru atau disebut dengan class turunan (derived class). Class baru dapat menurunkan sifat-sifat dari class dasarnya (base class / ancestor class) dan dapat mengakses data atau method dari class dasar, asalkan method atau data tersebut memiliki akses “protected” atau “public”. Keyword “virtual” merupakan method dinamis yang mengarahkan pointer ke virtual method table (VMT). Contoh: TMilitaryPlane = class(TAirplane) private TheMission : string; Status:string; constructor Create(AName : string; AType : Integer); function GetStatus(var StatusString : string) : Integer; override; protected procedure TakeOff(Dir : Integer); override; procedure Land; override; public function GetStatusString:string; procedure Attack; virtual; procedure SetMission(Misi:string); virtual; end; TCommercialPlane= class(TAirplane) private Passenger: integer; Destination:string; Status:string; function GetStatus(var StatusString : string) : Integer; override; protected function GetPassenger:integer; public procedure GoPlane;virtual; function GetStatusString:string; procedure SetPassenger(P:integer);virtual; procedure SetDestination(Dest:string);virtual; end; { TMilitaryPlane } procedure TMilitaryPlane.Attack; begin Status:=Format('%s attack %s',[Name,TheMission]); end; constructor TMilitaryPlane.Create(AName: string; AType: Integer); begin inherited Create(AName,Atype); end; function TMilitaryPlane.GetStatus(var StatusString: string): Integer; var s:string; i:integer; begin i:=inherited GetStatus(s); s:=s+','+StatusString; Result:=i; end; function TMilitaryPlane.GetStatusString: string; begin result:=Status; end;

procedure TMilitaryPlane.Land; begin inherited; end; procedure TMilitaryPlane.SetMission(Misi:String); begin TheMission:=Misi; end; procedure TMilitaryPlane.TakeOff(Dir: Integer); begin inherited; end; { TCommercialPlane } function TCommercialPlane.GetPassenger: integer; begin result:=Passenger; end; function TCommercialPlane.GetStatus(var StatusString: string): Integer; begin result:=inherited GetStatus(Status); end; function TCommercialPlane.GetStatusString: string; begin Result:=Status; end; procedure TCommercialPlane.GoPlane; begin Status:=Status+Format('I''ve take %d passenger to %s', [Passenger,Destination]); end; procedure TCommercialPlane.SetDestination(Dest: string); begin Destination:=Dest; end; procedure TCommercialPlane.SetPassenger(P: integer); begin Passenger:=p; end;

  Overriding Method Overriding merupakan penggantian method dari class dasar oleh class turunannya.

  Keyword is dan as

  Is digunakan untuk mengetahui apakah suatu class termasuk bagian dari class yang lain, sedangkan as digunakan untuk mengubah bentuk class menjadi class lainnya yang masih dalam turunannya. Contoh: program Project1; {$APPTYPE CONSOLE} uses SysUtils, MyRect in 'MyRect.pas', AirplaneU in 'AirplaneU.pas'; var Plane: TAirplane; F15:TMilitaryPlane; B555: TCommercialPlane; begin { TODO -oUser -cConsole Main : Insert code here } B555:=TCommercialPlane.Create('Boing 555'); B555.SetPassenger(10); b555.SetDestination('Marocco'); F15:=TMilitaryPlane.Create('F15'); F15.SetMission('White House'); Plane:=B555; if Plane is TMilitaryPlane then begin (Plane as TMilitaryPlane).Attack; writeln((Plane as TMilitaryPlane).GetStatusString); end else begin (Plane as TCommercialPlane).GoPlane; writeln((Plane as TCommercialPlane).GetStatusString); end; Plane:=F15; if Plane is TMilitaryPlane then begin (Plane as TMilitaryPlane).Attack; writeln((Plane as TMilitaryPlane).GetStatusString); end else begin (Plane as TCommercialPlane).GoPlane; writeln((Plane as TCommercialPlane).GetStatusString); end; F15.Free; B555.Free; readln; end.

  Output: I've take 10 passenger to Marocco F15 attack White House Sumber Pustaka: Marco Cantù, 2001, Mastering Delphi 6, Sybex Inc, Alameda, San Francisco.

  Kent Residorph, Teach Yourself Borland Delphi 4 in 1 Days, Macmillan Computer Publishing,Indianapolis.

  

Integrated Developer Environment (IDE)

Delphi 7.0

  IDE Delphi

  IDE Delphi mempunyai beberapa bagian utama yaitu:

  • Main Menu dan Toolbar • Component palette
  • Form Designer • Code Editor • Object Inspector • Code Explorer • Project Manager

  

Project merupakan file yang mengumpulkan file-file yang bekerja sama dalam membentuk aplikasi (exe)

atau dynamic link library (dll) yang berdiri sendiri. Project Group merupakan kuumpulan dari beberapa project.

  Pada saat membuat project baru, Delphi membuat file minimal empat buah yang terdiri dari:

  • main form unit
  • main form resource file
  • project resource file

  Tipe-tipe file yang digunakan oleh Delphi Extension

  Description .pas The Object Pascal source files. There will be one for each unit, as well as any other source files that you add to the project.

  .dfm The form file. It is a description of the form and all its components. Each form has its own .dfm file. .dsk The project desktop file. This file keeps track of the way the desktop appeared when you last saved (or closed) the project. All the open windows' sizes and positions are saved so that when you reopen the project it looks the same as you left it. This file is created only if you turn on the option to save your desktop (Environment Options dialog box). .dof The project options file. This file contains the project options as set in the Project Options dialog. .exe The final executable program. .cfg The project configuration file. This file primarily contains the current compiler and linker settings for the project. .dcu The compiled binary object files. These are the files that the compiler produces when it compiles your Object Pascal units. .dpr The project source file. .res The compiled binary resource file.

Ilustrasi bagaimana Delphi mengkompilasi source code dan menghubungkannya dengan form sehingga membentuk file executable

  1

  1

  Contoh-contoh pembuatan aplikasi sederhana

Contoh #1 1. Desain sebuah form yang terdiri dari tujuh label, enam edit dan sebuah button

  2. Ubah properti Caption pada Label1 sampai Label7 dengan nama: Informasi Biaya, Kode, Rincian Biaya, Pendaftaran, Pendidikan, Ujian Lokal dan Total Biaya.

  3. Ubah properti Name pada komponen button1 dengan nama: btnProses.

  4. Ubah properti Name pada komponen Edit1 dampai Edit6 dengan nama: edKode, edDaftar, edDidik, edUjian dan edTotal.

  5. Kosongkan property Text untuk semua komponen Edit.

  6. Ubah properti Font pada Label1 (“Informasi Biaya”) menjadi Arial – Bold – 12.

  7. Simpan File unit dengan nama FContoh1.pas dan file project PContoh1.dpr.

Kode: procedure TForm1.btnProsesClick(Sender: TObject);

  begin if edKode.Text='OKP' then begin edJurusan.Text:='Operator Komputer Praktis'; edDaftar.Text:='25000'; edDidik.Text:='550000'; edUjian.Text:='125000'; end else if edKode.Text='KAP' then begin edJurusan.Text:='Komputer Akuntansi & Perpajakan'; edDaftar.Text:='50000'; edDidik.Text:='750000'; edUjian.Text:='175000'; end else if edKode.Text='AMP' then begin edJurusan.Text:='Administrasi Manajemen & Perkantoran'; edDaftar.Text:='50000'; edDidik.Text:='750000'; edUjian.Text:='150000'; end else edJurusan.Text:='Program Intensive Terpadu'; edDaftar.Text:='25000'; edDidik.Text:='650000'; edUjian.Text:='125000'; end; edTotal.Text:=inttostr(strtoint(edDaftar.Text)+ strtoint(edDidik.Text)+ strtoint(edUjian.Text)); end;

  Contoh #2 1. hapus komponen label Kode dan edKode.

  2. tambahkan komponen Group Box dan empat komponen RadioButton dalam komponen Group Box. 3. atur posisi dan ukuran komponen tersebut, ubah properti Caption GroupBox1 dengan Kode Jurusan.

Kode: procedure TForm1.btnProsesClick(Sender: TObject);

  begin if RadioButton1.Checked then begin edJurusan.Text:='Operator Komputer Praktis'; edDaftar.Text:='25000'; edDidik.Text:='550000'; edUjian.Text:='125000'; end else if RadioButton2.Checked then begin edJurusan.Text:='Komputer Akuntansi & Perpajakan'; edDaftar.Text:='50000'; edDidik.Text:='750000'; edUjian.Text:='175000'; end begin edJurusan.Text:='Administrasi Manajemen & Perkantoran'; edDaftar.Text:='50000'; edDidik.Text:='750000'; edUjian.Text:='150000'; end else begin edJurusan.Text:='Program Intensive Terpadu'; edDaftar.Text:='25000'; edDidik.Text:='650000'; edUjian.Text:='125000'; end; edTotal.Text:=inttostr(strtoint(edDaftar.Text)+ strtoint(edDidik.Text)+ strtoint(edUjian.Text)); end;

Contoh #3 1. Buat form yang terdiri dari Label, Memo, Button dan ComboBox

  2. Simpan nama file unit dengan FContoh3.pas dan file project dengan nama PContoh.dpr.

  3. Ubah porperti Items komponen ComboBox1 dan ketik teks daftar pilihan Gemblonx, Combro, Asinan, Misro, Timus, pada jendela String List Editor, dan kosongkan property Text.

  4. Ubah property Name ComboBox1 dengan nama cboMakanan 5. Ubah property Name dan Caption komponen Button1 dengan teks Keluar.

  6. Ubah property Lines komponen Memo1 dan hapus teks Memo1 pada jendela String Editor List.

Kode: procedure TForm1.KeluarClick(Sender: TObject);

  begin Close; //Application.Terminate; end; procedure TForm1.cboMakananChange(Sender: TObject); begin Memo1.Lines.Clear; Memo1.Lines.Add('KILAS INFO MAKAN:'); case cboMakanan.ItemIndex of 0: Memo1.Color:=clred; 1: Memo1.Color:=clYellow; 2: Memo1.Color:=clGreen;

  4: Memo1.Color:=clLime; end; if cboMakanan.ItemIndex=0 then Memo1.Lines.Add(cboMakanan.Text+' kesukaanku.') else if cboMakanan.ItemIndex=1 then Memo1.Lines.Add(cboMakanan.Text+' favoritku.') else if cboMakanan.ItemIndex=2 then Memo1.Lines.Add(cboMakanan.Text+' sayangku.') else if cboMakanan.ItemIndex=3 then Memo1.Lines.Add(cboMakanan.Text+' manisku.') else Memo1.Lines.Add(cboMakanan.Text+' idamanku.'); end;

  Semua contoh dikutip dari: MADCOMS, 2003, Pemrograman Borland Delphi 7 (Jilid 1), Andi Yogyakarta.

  Sumber Pustaka: Marco Cantù, 2001, Mastering Delphi 6, Sybex Inc, Alameda, San Francisco. Kent Residorph, Teach Yourself Borland Delphi 4 in 21 Days, Macmillan Computer Publishing,Indianapolis.

  

Class dan Object (Lanjutan)

Membuat Komponen secara dinamis

  implementation uses stdctrls; {$R *.dfm} procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var btn:TButton; Comp: TComponent; begin if Shift=[ssLeft] then begin btn:=TButton.Create(self); inc(btn_index); btn.Name:='btn'+inttostr(btn_index); btn.Parent:=self; btn.Left:=X; btn.Top:=Y; btn.Width:=btn.Width+50; btn.Caption:=Format('Button %d di [%d,%d]',[btn_index,X,Y]); end else if Shift=[ssRight] then begin if btn_index>0 then begin Comp:=FindComponent('btn'+inttostr(btn_index)); (Comp as TButton).Free; dec(btn_index); end; end; end; procedure TForm1.FormCreate(Sender: TObject); begin btn_index:=0; end;

Contoh class TDate

  unit FDateClass; interface type TDate = class private FDate : TDateTime; function GetDay: Integer; function GetMonth: Integer; function GetYear: Integer; procedure SetDay(const Value: Integer); procedure SetMonth(const Value: Integer); procedure SetYear(const Value: Integer); public constructor Create;overload; constructor Create(y,m,d:integer);overload; procedure SetValue(NewDate:TDatetime);overload; function LeapYear: Boolean; procedure Increase(Num: Integer=1); procedure Decrease(Num: Integer=1); function GetText:String; property Year: Integer read GetYear write SetYear; property Month: Integer read GetMonth write SetMonth; property Day: Integer read GetDay write SetDay; end; implementation uses SysUtils,DateUtils; { TDate } constructor TDate.Create(y, m, d: integer); begin FDate:=EncodeDate(y,m,d); end; constructor TDate.Create; begin FDate:=Date; end; procedure TDate.Decrease(Num: Integer); begin FDate:=FDate-Num; end; function TDate.GetDay: Integer; begin Result:=DayOf(FDate); end; function TDate.GetMonth: Integer; begin Result:=MonthOf(FDate); end; function TDate.GetText: String; begin result:=DateToStr(FDate); end; function TDate.GetYear: Integer; begin Result:=YearOf(FDate); end; procedure TDate.Increase(Num: Integer); begin FDate:=FDate+Num; end; function TDate.LeapYear: Boolean; begin Result:=IsInLeapYear(FDate); end; procedure TDate.SetDay(const Value: Integer);

  FDate:=RecodeDay(FDate,Value); end; procedure TDate.SetMonth(const Value: Integer); begin FDate:=RecodeMonth(FDate,Value); end; procedure TDate.SetValue(NewDate: TDatetime); begin FDate:=NewDate; end; procedure TDate.SetValue(y, m, d: integer); begin FDate:=EncodeDate(y,m,d); end; procedure TDate.SetYear(const Value: Integer); begin FDate:=RecodeYear(FDate,Value); end; end.

Program View Date

  procedure TForm1.FormCreate(Sender: TObject); begin theDay:=TDate.Create(2006,1,27); LabelDate.Caption:=theDay.GetText; end; procedure TForm1.FormDestroy(Sender: TObject); begin theDay.Free; end; procedure TForm1.btnIncreaseClick(Sender: TObject); begin theDay.Increase; LabelDate.Caption:=theDay.GetText; end; procedure TForm1.btnDecreaseClick(Sender: TObject); begin theDay.Decrease; LabelDate.Caption:=theDay.GetText; end; procedure TForm1.btnAdd10Click(Sender: TObject); begin theDay.Increase(10); LabelDate.Caption:=theDay.GetText; end; procedure TForm1.btnSub10Click(Sender: TObject); begin theDay.Decrease(10);

  LabelDate.Caption:=theDay.GetText; end; procedure TForm1.btnLeapClick(Sender: TObject); begin if theDay.LeapYear then LabelDate.Caption:='TRUE' else LabelDate.Caption:='FALSE'; end;

  Delphi’s Object Reference Model

  Dalam OOP, mendeklarasi variable dari tipe class akan membuat instansi dari class tersebut (Object Reference Model). Variable tersebut, contohnya “theDay“, tidak punya nilai object, sedangkan variable tersebut memiliki reference atau pointer yang mengindikasi lokasi memori dimana object disimpan. Masalahnya adalah pada saat mendeklarasikan variable. Kita tidak membuat object dalam memori. Sehingga kita harus menuliskannya secara manual. theDay:=TDate.Create(2006,1,27);

  Assigning Objects

  Perhatikan contoh di bawah ini: procedure TForm1.btnTodayClick(Sender: TObject); var NewDate: TDate; begin NewDate:=TDate.Create; theDay:=NewDate; LabelDate.Caption:=theDay.GetText; end; Kode ini hanya akan mengcopy alamat memory dari NewData ke variable theData dan tidak mengcopy datanya. Sehingga hal ini menyebabkan terjadinya memory sampah yang tidak di kendalikan oleh object apapun karena belum dilepaskan. Maka cara yang terbaik adalah: procedure TForm1.btnTodayClick(Sender: TObject); begin theDay.Free; theDay:=TDate.Create; LabelDate.Caption:=theDay.GetText; end;

  Polymorphism

Inherit (Menurunkan) dari Class yang ada

  TNewDate=class(TDate) public function GetText: string; end; { TNewDate } function TNewDate.GetText: string;

  Result:=FormatDateTime('dddddd',FDate); end;

Inheritance dan Kompatibilitas Tipe

  interface type TAnimal = class public constructor Create; function GetKind: string; private FKind: string; end; TDog = class (TAnimal) public constructor Create; end; implementation { TDog } constructor TDog.Create; begin FKind:='Dog'; end; { TAnimal } constructor TAnimal.Create; begin FKind:='Animal'; end; function TAnimal.GetKind: string; begin Result:=FKind; end;

Override dan Definisi ulang Method

  Untuk mendefinisi ulang method statis kita dapat menambahkan method baru di sub class dengan parameter yang sama, dan untuk method virtual dapat di tambahkan method baru dengan parameter yang sama dan diikuti kata kunci “override”. procedure TForm1.FormCreate(Sender: TObject); begin MyAnimal:=TAnimal.Create; end; procedure TForm1.RadioButton1Click(Sender: TObject); begin if MyANimal<>nil then begin FreeAndNil(MyANimal); MyAnimal:=TAnimal.Create; end; end; procedure TForm1.RadioButton2Click(Sender: TObject); begin if MyANimal<>nil then begin FreeAndNil(MyANimal); MyAnimal:=TDog.Create; end; end; procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption:=MyAnimal.GetKind; end;

  MyClass = class public procedure One;virtual; procedure Two; {static method} end; MySubClass =class(MyClass) public procedure One; override; procedure Two; end; procedure MySubClass.One; begin inherited;

Abstract Method

Method abstrak digunakan jika definisi dari method tersebut hanya dilakukan oleh subclass dari class yang bersangkutan

  interface type TAnimal = class public constructor Create; function GetKind: string; function Voice: string;virtual;abstract; function Eat: string;virtual;abstract; private FKind: string; end; TDog = class (TAnimal) public constructor Create; function Voice: string;override; function Eat: string;virtual; end; TCat = class (TAnimal) public constructor Create; function Voice: string;override; function Eat: string;virtual; end; implementation { TDog } constructor TDog.Create; begin FKind:='Dog'; end; function TDog.Eat: string; begin result:=FKind+' is eating a bone.'; end; function TDog.Voice: string; begin result:='Arrfff'; end; { TAnimal } constructor TAnimal.Create; begin FKind:='Animal'; end; procedure TForm1.FormCreate(Sender: TObject); begin MyAnimal:=TCat.Create; end; procedure TForm1.RadioButton1Click(Sender: TObject); begin if MyANimal<>nil then begin FreeAndNil(MyANimal); MyAnimal:=TCat.Create; end; end; procedure TForm1.RadioButton2Click(Sender: TObject); begin if MyANimal<>nil then begin FreeAndNil(MyANimal); MyAnimal:=TDog.Create; end; end; procedure TForm1.Button1Click(Sender: TObject); begin if MyAnimal is TDog then Label1.Caption:= (MyAnimal as TDog).Voice+ ' ' + (MyAnimal as TDog).Eat else Label1.Caption:= (MyAnimal as TCat).Voice+ ' ' + (MyAnimal as TCat).Eat end; begin Result:=FKind; end; { TCat } constructor TCat.Create; begin FKind:='Cat'; end; function TCat.Eat: string; begin Result:=FKind+ ' is eating a fish.'; end; function TCat.Voice: string; begin Result:='Meeooooongg'; end;

Contoh #1 (ListBox)

  1. Tambahkan komonen ListBox dalam form

  2. Ubah property komponen ListBix dengan ketentuan:

  a. Ubah property Items dan ktik daftar teks: MS-Word, MS-Excel, MS-Access, MS-Power Point dan MS- Outlook.

  b. Ubah property Name dengan lbProgram.

  3. Tambahkan satu komponen ComboBox di sembarang tempat dalam form, dengan ketentuan properti sebagai berikut: a. Ubah property Items dan ketik teks daftar piliha:

  • Program Pengolah Kata: surat-surat, buku-buku, makalah, paper, laporan,skripsi dll.
  • Program Pengolah data dalam bentuk tabel, perhitungan angka/rumus,grafik dan pengolah data dalam bentuk database, dll.
  • Program Pengolah database. Untuk membuat lembar kerja form interaktif, input data, laporan dalambentuk tabel dll.
  • Program Presentasi data & gambar, biasa digunakan sebagai alat presentasi dengan OHP di dalam rapat/seminar, dll.
  • Program Pengolah data dalam bentuk pengiriman surat/e-mail dalam suatu jaringan komputer intranet/internet.

  b. Kosongkan property Text, ubah Name menjadi cboInfo dan Visible menjadi FALSE

  4. Klik dua kali komponen lbProgram dan ketik kode sebagai berikut: procedure TForm1.lbProgramClick(Sender: TObject); begin Memo1.Clear; Memo1.Lines.Add('KILAS INFORMASI PROGRAM KOMPUTER:');

  0: Memo1.Color:=clRed; 1: Memo1.Color:=clYellow; 2: Memo1.Color:=clGreen; 3: Memo1.Color:=clLime; 4: Memo1.Color:=clMaroon; end; if lbProgram.ItemIndex = 0 then Memo1.Lines.Add(cboInfo.Items[0]) else if lbProgram.ItemIndex = 1 then Memo1.Lines.Add(cboInfo.Items[1]) else if lbProgram.ItemIndex = 2 then Memo1.Lines.Add(cboInfo.Items[2]) else if lbProgram.ItemIndex = 3 then Memo1.Lines.Add(cboInfo.Items[3]) else if lbProgram.ItemIndex = 4 then Memo1.Lines.Add(cboInfo.Items[4]); end; procedure TForm1.btnExitClick(Sender: TObject); begin Application.Terminate; end;

Contoh #2 (CheckBox)

  1. Tambahkan komponen GroupBox dan empat buah komponen CheckBox ke dalam GroupBox.

  2. Ubah property Caption dari GroupBox1 dengan tulisan “Format Teks”, serta komponen CheckBox1 sampai CheckBox4 dengan “Teks Tebal”, “Teks Miring”, “Teks Besar”, dan “Teks Kecil”.

  3. Tambahkan Komponen Button dan ganti property Name dengan “btnProses” dan Caption dengan “Proses”.

  4. Klik dua kali pada Button Proses, kemudian ketik kode di bawah ini: procedure TForm1.btnProsesClick(Sender: TObject); begin Memo1.Font.Style:=[]; Memo1.Font.Name:='Bookman Old Style'; if CheckBox1.Checked then Memo1.Font.Style:=Memo1.Font. Style+[fsBold]; if CheckBox2.Checked then Memo1.Font.Style:=Memo1.Font. if CheckBox3.Checked then Memo1.Font.Size:=Memo1.Font.Size+2; if CheckBox4.Checked then Memo1.Font.Size:=Memo1.Font.Size-2; end;

Contoh #3 (MainMenu & Popup Menu)

  2. Pilih perintah MainMenu dan untuk membuka lembar kerja Menu Designer, kita dapat menggunakan salah satu perintah berikut: a. Klik ganda pada komponen MainMenu

  b. Klik kanan pada komponen MainMenu dan pilih perintah Menu Designer c. Klik tombol builder pada baris property Items.

  3. Ketik sebuah item menu “&Warna” pada baris property Caption dalam Object Inspector. Karakter “&” untuk menyatakan karakter menu short cut, di mana pada tampilan menu karakter W akan bergaris bawah.

  4. Dengan cara yang sama lengkapi rancangan menu seperti di samping ini.

  5. Tambahkan komponen Edit untuk mengaplikasikan penggunaan fungsi dari masing-masing item menu.

  6. Langkah selanjutnya adalah pengisian baris program pada item menu. Klik dua kali item menu MainMenu PopupMenu

  Edit1 jika masih berada di dalam lembar kerja atau klik terlebih dahulu item menu jika berada di dalam lembar kerja form designer. procedure TForm1.Merah1Click(Sender: TObject); begin Edit1.Color:=clRed; end; procedure TForm1.Kuning1Click(Sender: TObject); begin Edit1.Color:=clYellow; end; procedure TForm1.Hijau1Click(Sender: TObject); begin Edit1.Color:=clGreen; end; procedure TForm1.Biru1Click(Sender: TObject); begin Edit1.Color:=clBlue; end; procedure TForm1.Besar1Click(Sender: TObject); begin Edit1.Font.Size:=Edit1.Font.Size+2; end; procedure TForm1.Kecil1Click(Sender: TObject); begin Edit1.Font.Size:=Edit1.Font.Size-2; end; procedure TForm1.ebal1Click(Sender: TObject); begin Edit1.Font.Style:=Edit1.Font.Style+[fsBold]; end; procedure TForm1.Miring1Click(Sender: TObject); begin Edit1.Font.Style:=Edit1.Font.Style+[fsItalic]; end;

  7. Langkah pembuatan PopUpMenu hampir sama dengan MainMenu. Buatlah deretan menu untuk PopUpMenu berikut: Teks Merah, Teks Kuning, Teks Hijau, Teks Biru, Teks Regular dan Keluar.

  8. Kemudian ubah property PopupMenu pada Form1 dengan PopupMenu1. Kode untuk PopUp Adalah: procedure TForm1.eksKuning1Click(Sender: TObject); begin Edit1.Font.Color:=clYellow; procedure TForm1.eksMerah1Click(Sender: TObject); begin Edit1.Font.Color:=clRed; end; procedure TForm1.eksHijau1Click(Sender: TObject); begin Edit1.Font.Color:=clGreen; end; procedure TForm1.teksBiru1Click(Sender: TObject); begin Edit1.Font.Color:=clBlue; end; procedure TForm1.eksRegular1Click(Sender: TObject); begin Edit1.Font.Style:=[]; end; procedure TForm1.Keluar1Click(Sender: TObject); begin Application.Terminate; end;

  Semua contoh dikutip dari: MADCOMS, 2003, Pemrograman Borland Delphi 7 (Jilid 1), Andi Yogyakarta.

  Sumber Pustaka: Marco Cantù, 2001, Mastering Delphi 6, Sybex Inc, Alameda, San Francisco. Kent Residorph, Teach Yourself Borland Delphi 4 in 21 Days, Macmillan Computer Publishing,Indianapolis.

  

KOMPONEN DELPHI 1

ActionList

  Komponen ini berisi daftar aksi yang dapat digunakan bersama-sama dengan komponen dan control lain.

  1. Klik komponen ActionList dan letakkan pada lembar kerja Form Designer.

  2. Klik kanan object ActionList dan pilih perintah Action List Editor dari daftar menu popup yang ditampilkan atau dengan bias juga dengan klik ganda object tersebut.

  3. Klik tombol drop down New Action untuk mulai membuat daftar aksi.

  4. New Action, item menu yang digunakan untuk menambahkan sebuah aksi baru dalam daftar dengan cara membuat dan menentukan perintah sendiri.

  5. Buat Action baru dengan ketentuan sebagai berikut: Category Window: WindowClose; Category Edit: EditCopy, EditCut, EditPaste.

  6. Kemudian buat komponen TextBox dan Button seperti pada gambar disamping:

  7. Kosongkan property Text untuk kedua komponen Edit.

  8. Ubah property Action untuk keempat komponen Button tersebut di atas dengan ketentuan:

  • Pilih aksi EditCut untuk Button1
  • Pilih aksi EditCopy untuk Button2
  • Pilih aksi EditPaste untuk Button3
  • Pilih aksi WindowClose untuk Button4

  9. Tulis kode dengan cara klik ganda daftar aksi pada kotak action list dengan ketikan kode program sebagai berikut: procedure TForm1.EditCopyExecute(Sender: TObject); begin Edit1.SelectAll; Edit1.CopyToClipboard; end; procedure TForm1.EditCutExecute(Sender: TObject); begin Edit1.SelectAll; Edit1.CutToClipboard; Edit1.Clear; end; procedure TForm1.EditPasteExecute(Sender: TObject); begin Edit2.Clear;

  Edit2.SetFocus; end; procedure TForm1.WindowCloseExecute(Sender: TObject); begin Application.Terminate; end;

  MaskEdit

  1. Letakkan empat komponen MaskEdit, empat Label dan dua Button pada form.

  2. Ubah property Label dan Button dengan ketentuan:

  • Ubah property Caption untuk komponen Label1 sampai Label4 dengan teks Kode Barang, Kode Jual, Tanggal Jual dan Kota Tujuan.
  • Ubah Properti Caption untuk komponen Button1 dan Button2 dengan teks Proses dan Keluar.

  3. Buat kode format (mask) kompone MaskEdit dengan klik kanan komponen MaskEdit dan pilih perintah Input Mask Edit dari menu popup yang ditampilkan.

  • Input Mask, digunakan untuk mendefinisikan kode format (mask) untuk kotak edit. Penulisan mask terbagi dalam tiga bagian field yang dipisahkan oleh karakter titik koma.
  • Character For Blanks menyatakan karakter yang dipakai sebagai pengisi spasi atau ruang kosong di dalam mask.
  • Save Literal Characters adalah kotak cek yang digunakan untuk menginsdikasikan apakah karakter literal dari mask akan disimpan di dalam data.
  • Test Input digunakan untuk menguji mask yang telah dibentuk pada bagian input mask.

  Kotak teks ini menampilkan mask seperti tampilan pada form.

  • Sample Masks adalah bagian yang menampilkan pilihan mask yang disediakan Delphi yang dapat digunakan pemakai.
  • Masks digunakan untuk menampilkan pilihan bentuk penulisan mask dari suatu Negara tertentu. Tabel Kode Format.

Kode Keterangan

  > Kode yang menyatakan bahwa semua karakter yang mengikutinya akan diubah menjadi huruf besar sampai ditemukan karakter >. < Kode yang menyatakan bahwa semua karakter yang mengikutinya akan diubah menjadi huruf kecil sampai ditemukan karakter <. <> Kode yang menyatakan bahwa tidak ada pemeriksaan penulisan huruf besar dan kecil dan data diformat sesuai dengan data saat diinputkan literal L Kode yang menyatakan bahwa posisi yang diwakili oleh penulisan kode ini hanya menerima data karakter, yaitu A-Z atau a-z l Kode yang menyatakan bahwa posisi yang diwakili oleh penulisan kode ini hanya menerima data karakter, tetapi tidak harus ada atau boleh dikosongkan A Kode yang menyatakan bahwa posisi yang diwakili oelh penulisan kode ini hanya dapat menerima data karakter dan angka (A-Z,a-z, dan 0-9). a Kode yang menyatakan bahwa posisi yang diwakili oelh penulisan kode ini hanya dapat menerima data karakter dan angka (A-Z,a-z, dan 0-9), tetpai tidak harus ada atau boleh kosong. C Kode yang menyatakan bahwa posisi yang diwakili oleh penulisan kode ini dapat menerima sembarang karakter. c Kode yang menyatakan bahwa posisi yang diwakili oleh penulisan kode ini dapat menerima sembarang karakter, tetapi tidak harus ada atau boleh dikosongkan

  Kode yang menyatakan bahwa posisi yang diwakili oleh penulisan kode ini dapat menerima data angka, yaitu 0-9

  9 Kode yang menyatakan bahwa posisi yang diwakili oleh penulisan kode ini dapat menerima data angka, yaitu 0-9, tetapi tidak harus ada atau boleh dikosongkan # Kode yang menyatakan bahwa posisi yang diwakili oleh penulisan kode ini dapat menerima data angka, yaitu 0-9, tanda minus dan plus, tetapi tidak harus ada atau boleh dikosongkan

  : Kode yang digunakan untuk memisahkan penulisan data waktu, yaitu jam, menit dan detik / Kode yang digunakan untuk memisahkan penulisan data tanggal, yaitu: tanggal, bulan dan tahun ; Kode yang digunakan untuk memisahkan tiga bagian field dalam kotak teks

  Input Mask Kode yang digunakan untuk menyisipkan spasi dalam teks secara otomatis. - Karakter literal adalah karakter-karakter lain yang tidak tercantum dalam table di atas.

  Karakter literal akan ditambahkan secara otomatis dan kursor akan melewatinya pada saat proses input data. Karakter literal khusus akanditampilkan jika penulisannya didahului oleh \.

  4. MaskEdit1 untuk input Kode Barang: >LL\-00;1;_ Karakter pertama dan kedua harus berisi data teks, karakter ketiga dan keempat harus berisi angka, dan angka 1 pada posisi field ke-2 menunjukan bahwa karakter literal “-“ termasuk dalam data sehingga data input Kode Barang terdiri dari 5 karakter.

  5. MaskEdit2 untuk data input kode Jual: >L\-0\-L;0;_ Karakter pertama dan ketiga harus berisi teks, karakter kedua harus berisi data angka, dan angka 0 pada posisi field ke-2 menunjukkan bahwa dua karakter literal “-“ tidak termasuk dalam data sehingga data input Kode Jual terdiri dari 3 karakter.

  6. MaskEdit3 untuk dara input Tanggal Jual: !99/99/0000;1;_ Karakter pertama dan kedua adalah data angka untuk bulan, karakter ketiga dan keempat adalah data tanggal, di mana data angka bulan dan tanggal boleh diisi dengan 1 digit atau 2 digit.

  Karakter kelima dan tanggal boleh diisi dengan 1 digit atau 2 digit. Karakter kelima sampai kedelapan harus berisi data angka, serta angka 1 pada posisi field ke-2 menunjukkan bahwa dua karakter literal “/” termasuk dalam data sehingga data input tanggal Jual terdiri dari 10 karakter.

  7. MaskEdit4 untuk data input Kota Tujuan: >l<llllllllllllll;1;_

  Kode terdiri dari 15 kode l kecil yang menunjukan bahwa data input untuk Kota Tujuan maksimal 15 karakter. Karakter pertama akan diubah menjadi huruf besar sedangka karakter kedua dan seterusnya diubah menjadi huruf kecil.

CheckListBox

  2. Pilih komponen CheckList dan klik tombol Elipsis (…) pada properti Items untuk memasukkan daftar pilihan yang akan ditampilkan: Cetak Tebal, Cetak Miring, Cetak Garis, Cetak Coret, Warna Latar, Warna Font, Jenis Font dan Ukuran Font.

  3. Ketik Kode berikut pada event OnClick di komponen CheckListBox: procedure TForm1.CheckListBox1Click(Sender: TObject); begin if CheckListBox1.State[0]=cbChecked then Edit1.Font.Style:=Edit1.Font.Style+[fsBold] else Edit1.Font.Style:=Edit1.Font.Style-[fsBold]; if CheckListBox1.State[1]=cbChecked then Edit1.Font.Style:=Edit1.Font.Style+[fsItalic] else Edit1.Font.Style:=Edit1.Font.Style-[fsItalic]; if CheckListBox1.State[2]=cbChecked then Edit1.Font.Style:=Edit1.Font.Style+[fsUnderline]

  Edit1.Font.Style:=Edit1.Font.Style-[fsUnderline]; if CheckListBox1.State[3]=cbChecked then Edit1.Font.Style:=Edit1.Font.Style+[fsStrikeOut] else Edit1.Font.Style:=Edit1.Font.Style-[fsStrikeOut]; if CheckListBox1.State[4]=cbChecked then begin COmboBox1.Visible:=true; Label1.Visible:=true; end else begin COmboBox1.Visible:=false; Label1.Visible:=false; end; if CheckListBox1.State[5]=cbChecked then begin COmboBox2.Visible:=true; Label2.Visible:=true; end else begin COmboBox2.Visible:=false; Label2.Visible:=false; end; if CheckListBox1.State[6]=cbChecked then begin COmboBox3.Visible:=true; Label3.Visible:=true; end else begin COmboBox3.Visible:=false; Label3.Visible:=false; end; if CheckListBox1.State[7]=cbChecked then begin COmboBox4.Visible:=true; Label4.Visible:=true; end else begin COmboBox4.Visible:=false; Label4.Visible:=false; end; end;

  • Ubah property Caption untuk Label1 sampai Label4 dengan teks Warna Latar, Warna Font, Jenis Font dan Ukuran Font • Ubah property Caption untuk komponen Button1 dengan teks “Keluar”.
  • Hapus Caption untuk ComboBox
  • Ubah Properti Visible menjadi False untuk komponen Label1-Label4 dan ComboBox1-

  ComboBox4

  • IsiProperti Items ComboBox1 dengan teks Merah, Kuning, Hijau dan Biru. Kode untuk event OnChange: case ComboBox1.ItemIndex of 0: Edit1.Color:=clred; 1: Edit1.Color:=clYellow; 2: Edit1.Color:=clGreen; 3: Edit1.Color:=clBlue; end;
  • IsiProperti Items ComboBox2 dengan teks Merah, Kuning, Hijau dan Biru. Kode untuk event OnChange: case ComboBox2.ItemIndex of 0: Edit1.Font.Color:=clred; 1: Edit1.Font.Color:=clYellow; 2: Edit1.Font.Color:=clGreen; 3: Edit1.Font.Color:=clBlue; end ;
  • IsiProperti Items ComboBox3 dengan teks Arial, Courer, Roman, Comic Sans. Kode untuk event OnChange case ComboBox3.ItemIndex of 0: Edit1.Font.Name:='Arial'; 1: Edit1.Font.Name:='Courier New'; 2: Edit1.Font.Name:='Times New Roman'; 3: Edit1.Font.Name:='Comic Sans MS'; end;
  • IsiProperti Items ComboBox3 dengan teks 12, 16, 20 dan 24. Kode untuk event

  OnChange if ComboBox4.ItemIndex>-1 then Edit1.Font.Size:=strtoint(ComboBox4.Text);

  6. Ketik kode pada komponen Button1 di event OnClick: procedure TForm1.KeluarClick(Sender: TObject); begin Close; end;

TrackBar

  1. Buat aplikasi dengan menggunakan beberapa komponen seperti Shape1 dan ubah Name menjadi Kotak, tambahkan komponen Label sebanyak tujuh dengan Caption masing-masing: Lebar, Tinggi, Merah, Hijau dan Biru.

  2. Tambahkan pula komponen Button sebanyak dua dan ubah name manjadi Ulang dan Keluar.

  3. Tambahkan komponen Edit sebanyak tujuh dan ubah Name-nya menjadi edLebar, edTinggi, edMerah, edHijau dan edBiru

  4. Tambahkan komponen TrackBar sebanyak tujuh dan ubah Name-nya menjadi trkLebar, trkTinggi, trkMerah, trkHijau dan trkBiru.

  5. Untuk komponen trkLebar dan trkTinggi, ubah property Max dengan nilai 200 6. Untuk komponen trkMerah, trkHijau dan trkBiru, ubah property Max dengan nilai 255.

  7. Tuliskan kodenya sebagai berikut: procedure TForm1.trkLebarChange(Sender: TObject); begin edLebar.Text:=IntTostr(trkLebar.Position); Kotak.Width:=trkLebar.Position; end; procedure TForm1.trkTinggiChange(Sender: TObject); begin edTinggi.Text:=IntToStr(trkTinggi.Position); Kotak.Height:=trkTinggi.Position; end; procedure TForm1.trkMerahChange(Sender: TObject); begin edMerah.Text:=IntTostr(trkMerah.Position); Kotak.Brush.Color:=RGB(trkMerah.Position,trkHijau.Position,trkBiru.Posi tion); end; procedure TForm1.trkHijauChange(Sender: TObject); begin edHijau.Text:=IntTostr(trkHijau.Position); Kotak.Brush.Color:=RGB(trkMerah.Position,trkHijau.Position,trkBiru.Posi tion); end; procedure TForm1.trkBiruChange(Sender: TObject); begin edBiru.Text:=IntTostr(trkBiru.Position); Kotak.Brush.Color:=RGB(trkMerah.Position,trkHijau.Position,trkBiru.Posi tion); end; procedure TForm1.KeluarClick(Sender: TObject); begin Close; end; procedure TForm1.UlangClick(Sender: TObject); begin trkLebar.Position:=0; trkTinggi.Position:=0; trkMerah.Position:=0; trkHijau.Position:=0; trkBiru.Position:=0; end;

  Semua contoh dikutip dari:

  Arsitektur Database Delphi Fitur-fitur ringkasan database Tool Kegunaan Data Access components Access databases, tables, stored procedures, and custom component editors.

  Data Control components Provide user interface to database tables. Database Desktop (DBD) Create, index, and query Paradox and dBASE tables, and SQL databases.

  Access and edit data from all sources.

  Database Database terdiri dari tabel-tabel, dimana tiap tabel berisi kolom-kolom yang membentuk record atau baris. Memahami arsitektur komponen database

Sumber data Delphi Data source Description File extension

  Paradox Tables created with Paradox or Database Desktop. .DB Each table is in a separate file. dBASE Tables

Dokumen yang terkait

Dokumen baru