Selasa, Agustus 04, 2009

Turbo Delphi 2006 - Borland Developer Studio 2006 - Delphi 10 - Terlalu Banyak Nama

Turbo Delphi adalah versi tunggal dari Borland Developer Studio, versi Turbo hanya mempunyai satu pilihan compiler, Delphi saja, C++ saja, atau Delphi.Net saja. Dari urutan seri Delphi, Turbo Delphi 2006 jatuhnya Delphi 10, penomoran ini biasa digunakan di beberapa komponen (VCL).

Telat memang, menggunakan Delphi 10 saat Delphi 12 sudah keluar. Tapi tak apalah, ini langkah pertama keluar dari Delphi 5 Pro yang sudah digunakan selama hampir 9 tahun. Keterbasan D5 ini sudah mulai terasa, apalagi beberapa komponen VCL yang dibeli sudah tak mendukung D5 lagi, seperti komponennya DevExpress. Namun FastReport dan FastCube tidak ada masalah.

Sedikit masalah di instalasi vcl zeos, ada pesan:

"Remove ZPropertyEditor, ZUpdateSqlEditor, ZComponentReg.
Unit(s) ZPropertyEditor, ZUpdateSqlEditor, ZComponentReg were found in required package ZComponent."


Dari informasi di forum zeos juga, akhirnya vcl zeos ini bisa terpasang dengan membuang ZComponent dari required unitnya.

Alhamdulillah, dengan sedikit utak-atik path dan compiler directive akhirnya VCL yang biasa digunakan di Delphi 5 bisa juga dipasang di Delphi 10 ini. cukup
baik, beda 5 versi tapi masih kompatibel.

Cuma error seperti gambar berikut yang masih gak jelas, padahal TD 2006 ini sudah dipasangin update juga. "Access violation at address 20B46D32 in module 'coreide100.bpl'. Read of address 00000000".


Tapi sekarang pesan diatas sudah jarang muncul. Mungkin karena beberapa update sudah dipasang?

Beberapa catatan migrasi aplikasi dari Delphi 5 ke Delphi 10/11:
  • Fungsi VarArrayOf() / VarIsArray() / VarArrayHighBound(), di D5 terletak di unit System, sedangkan di D10/D11 terletak di unit Variants. D5 belum mengenal unit Variants.
  • Pengecekan kondisi dengan NULL. D5 mengenal keyword NULL, sehingga bisa dibuat:
If (NamaTabelNamaField.AsDateTime <> NULL) then ...
harus diubah menjadi:

If NOT (NamaTabelNamaField.IsNull) then ...
  • Fungsi MonthsBetween(), di D10/D11 berpindah ke unit DateUtils.pas.
  • Fungsi IncMonth(), ada konflik dengan fungsi yang sama di komponen DevExpress (cxDateUtils.pas) dan SysUtils.pas (D10). Solusi, tulis fungsi ini dengan lengkap: SysUtils.IncMonth().
  • ..
  • dst..

Perbedaan-perbedaan diatas diantaranya bisa diatasi dengan penambahan version compiler directives sehingga kompilasi hanya untuk blok kode sesuai versi kompilernya saja. Beberapa masalah juga bisa diatasi dengan menggunakan metode standar yang kompatibel keatas.

Lumayan ribet juga migrasi kompiler ya...

Tidak ada komentar: