Data yang telah di-plot dalam grafik dapat dibagi dalam beberapa halaman tergantung jumlah total data dan banyaknya data per halaman. Halaman-halaman itu kemudian dapat ditelusuri dengan metode-metode scroll grafik.
Buka lagi project TChart dalam artikel yang lalu, atau download TChart Source Code ver.1.6 dan segera ekstrak di komputer kamu, sebelum membukanya buat dulu driver ODBC database linked (baca artikel Menampilkan Database dalam Grafik, terutama tentang cara membuat driver ODBC). Sesudah itu download Paging Source Code, ekstrak di komputer kamu.. Dan seperti artikel-artikel yang lalu tambahkan pada project TChart dengan cara klik kanan mouse pada project TChart.exe. Pilih menu Add.. kemudian cari file .pas yang ingin ditambahkan seperti gambar di bawah ini
Aktifkan form fmMainTChart (unit uMainTChart), kemudian klik ganda komponen pmOtherDemo.. klik ganda menu Paging Chart..
Ketikkan kode seperti di bawah ini..
procedure TfmMainTChart.miPagingChartClick(Sender: TObject); begin fmPaging.ShowModal; end;
Tekan tombol Run untuk menjalankan aplikasi ini… jika muncul pesan Form ‘fmMainTChart‘ references form ‘fmPaging’ declarated in unit ‘uPaging’ which is not in your USES list. Do you wish to add it? tekan tombol Yes. Tekan kembali tombol Run..
1. Membuat halaman grafik
Data yang di-plot dalam series grafik dilakukan pada saat form dibangun dengan kontruktor Create, aktifkan form fmPaging, klik ganda sel di sebelah kanan event OnCreate..
procedure TfmPaging.FormCreate(Sender: TObject); begin Series1.FillSampleValues(100); sePaging.Value:= 18; ctPagingPageChange(ctPaging); end;
Data sebanyak 100 data di-plot dalam Series1 dengan metode FillSampleValues. Dan property Value komponen sePaging diinisialisasikan dengan nilai 18. Nilai property tersebut menunjukkan banyaknya data per halaman, sebagai pengganti SpinEdit Points per Page pada sub tab Paging dari komponen TChart (atau property MaxPointsPerPage) yang nilainya bisa diubah ketika aplikasi dijalankan. Perhatikan gambar di bawah ini
Prosedur ctPagingPageChange dipanggil untuk menginisialisasi beberapa komponen.. Event OnPageChange ini terjadi ketika property Page komponen TChart telah diubah dan sebelum halaman grafik tersebut berubah. Property MaxPointsPerPage (atau SpinEdit Points per Page pada sub tab Paging) harus lebih besar dari 0 (nol) untuk mengaktifkan mekanisme pemberian nomor halaman secara otomatis. Klik ganda sel di sebelah kanan event OnPageChange pada komponen TChart ctPaging..
procedure TfmPaging.ctPagingPageChange(Sender: TObject);
begin
ctPaging.UndoZoom;
lCurrent.Caption:= 'Current/Total : '+IntToStr(ctPaging.Page)+
'/'+IntToStr(ctPaging.NumPages);
btFirst.Enabled:= btPrevious.Enabled;
btPrevious.Enabled:= ctPaging.Page > 1;
btNext.Enabled:= ctPaging.Page < ctPaging.NumPages;
btLast.Enabled:= btNext.Enabled;
end;
Untuk menghitung banyaknya halaman grafik dengan benar, komponen TChart harus tidak dalam keadaan diperbesar/diperkecil yaitu dengan memanggil metode UndoZoom. Informasi suatu halaman terhadap total halaman grafik ditampilkan melalui property Caption komponen lCurrent. Property Page komponen TChart menge-set halaman grafik saat ini sedang property NumPages menunjukkan total halaman grafik.
Untuk grafik yang mempunyai halaman lebih dari satu, komponen button btFirst dapat diakses tergantung aktif/tidaknya button btPrevious. Komponen button btPrevious akan aktif jika halaman grafik yang sekarang ditampilkan bukan halaman pertama. Dan button btNext akan aktif jika halaman grafik yang sekarang ditampilkan bukan halaman terakhirnya, sedang aktif/tidaknya button btLast tergantung pada aktif/tidaknya button btNext. Jika grafik hanya terdiri atas satu halaman maka keempat komponen button tersebut tidak aktif.
2. Mengubah setting halaman grafik
Perhatikan kembali gambar sub tab Paging di atas.. nilai SpinEdit Points per Page dan checkbox Scale Last Page bisa diubah melalui komponen sePaging dan chScale. Klik ganda pada komponen sePaging..
procedure TfmPaging.sePagingClick(Sender: TObject); begin ctPaging.MaxPointsPerPage:= sePaging.Value; ctPagingPageChange(ctPaging); end;
Komponen sePaging ini merupakan pengganti SpinEdit Points per Page, perubahan nilainya akan mempengaruhi banyaknya data per halaman (nilai property MaxPointsPerPage komponen TChart sama dengan nilai property Value komponen sePaging). Banyaknya halaman grafik mungkin akan berubah setiap kali ada perubahan nilai komponen sePaging sehingga prosedur ctPagingPageChange perlu dipanggil kembali untuk menyesuaikan keadaan beberapa komponen.
Jika pada saat mengedit komponen TChart, checkbox Scale Last Page pada sub tab Paging tidak di’centang’ maka halaman terakhir akan ditampilkan dengan range sumbu horisontal grafik sama dengan halaman yang lain. Jika sebaliknya maka skala halaman terakhir grafik akan diatur berdasarkan pada banyaknya titik yang tampak pada halaman terakhir tersebut. Untuk mengontrol property ini, digunakan chScale, klik ganda komponen ini..
procedure TfmPaging.chScaleClick(Sender: TObject); begin ctPaging.ScaleLastPage:= chScale.Checked; end;
3. Mengontrol halaman grafik
Keempat komponen button digunakan untuk menampilkan suatu halaman ke halaman lain, klik ganda pada salah satu komponen button tersebut. Keempatnya menggunakan sebuah prosedur ButtonClick..
procedure TfmPaging.ButtonClick(Sender: TObject);
begin
if Sender = btFirst then
ctPaging.Page:= 1
else
if Sender = btPrevious then
ctPaging.PreviousPage
else
if Sender = btNext then
ctPaging.NextPage
else
ctPaging.Page:= ctPaging.NumPages;
end;
Jika user menekan button btFirst maka halaman pertama grafik akan ditampikan. Jika btPrevious ditekan maka metode PreviousPage akan membawa ke halaman sebelumnya sedang untuk menampilkan halaman selanjutnya panggil metode NextPage yaitu ketika pengguna menekan button btNext. Dan halaman yang terakhir akan ditampilkan ketika user menekan button btLast.
Nuwun..
Daftar download untuk artikel ini:
1. TChart Source Code ver.1.6 - 178.32 kB
2. Paging Source Code - 2.71 kB
3. TChart Application ver.1.6 - 824.68 kB


