Archive
BDS2006 Update 1
Here we go, the first update for Borland Developer Studio 2006. The update completes the functionality of the Preview Technology for C++ and C in Borland Developer Studio 2006. For detailed changes, you can read its Release Notes.
You can download the update from the Borland site, on Download page. This update itself didnt published on the Borland site yet, I dont know the Borland’s reason not to publish yet, maybe the update is subject to change. lol. 😀
So, the original version of BDS is 10.0.2151.25345. You can verify it from About window, and in the registry area as shown below:
The update 1 version of BDS is 10.0.2166.28377. You can verify it from About window, and in the registry area, The ProductVersion is 10.0.1, the RegMergeLevel is 0x00000002 and the UpdatedPackInstalled is 1, as shown below:
Meningkatkan Proses Startup IDE
Sudah menjadi pengetahuan umum, proses loading Delphi 2005 terkenal cukup lama, bahkan boleh dibilang ‘membosankan’ bagi sebagian orang, selain itu Delphi 2005 juga dikenal sangat berat dan membutuhkan banyak resource CPU dan memori. Nah pada kesempatan ini, saya akan coba memaparkan beberapa langkah untuk merampingkan Delphi 2005 sehingga proses loading menjadi lebih cepat dan tentu saja lebih menghemat resource CPU dan memori. Adapun versi Delphi 2005 yang saya gunakan adalah versi Architect. Untuk versi lainnya, silahkan Anda sesuaikan sendiri.
Mengapa sangat Lambat ?
Sebelum melakukan beberapa langkah optimalisasi, terlebih dahulu harus diketahui penyebab mengapa proses starup membutuhkan waktu yang tidak sedikit. Ada beberapa penyebab utama yaitu:
Multi-Languages IDE
IDE Delphi 2005 merupakan gabungan dari 3 bahasa pemrograman, yaitu Delphi untuk platform Win32, Delphi untuk platform Microsoft .NET dan C# untuk platform Microsoft .NET. Faktor penggabungan inilah yang menyumbang banyak pemborosan resource. Dapat Anda simak pada gambar 1, semua bahasa pemrograman ikut di-load pada saat startup.
Memory Manager yang Sudah Kuno
Sejak pertama kali diluncurkan hingga Delphi 2005, Memory Manager internal yang digunakan masih tetap sama yaitu BorlandMM atau DelphiMM. Memory Manager memegang peranan yang sangat penting dalam pengaturan memori bagi setiap aplikasi. Memory Manager mengatur pembagian resource memori suatu aplikasi secara dinamis dan efisien. Tanpa Memory Manager, sebuah aplikasi tidak dapat membuat list, menyimpan dan menampilkan data dengan ukuran yang besar misalnya.
Walaupun telah mengalami beberapa perbaikan namun kinerja Memory Manager internal dari Borland masih kurang memuaskan, terlebih dengan munculnya Memory Manager dari pihak ketiga yaitu FastMM yang lebih stabil, cepat dan gratis.
Rutin Internal yang Kurang Efisien
Pada saat proses startup, IDE akan me-load unit yang telah dipilih, namun sayangnya proses load ini didahulu dengan pengecekan terhadap status unit tersebut, apakah sudah di-load apa belom, untuk mencegah terjadinya duplikasi unit yang di-load. Proses pengecekan ini dilakukan dengan iterasi terhadap semua unit yang telah di-load sebelumnya, sehingga terjadi proses pengecekan yang berulang – ulang.
Versi (SKU) Delphi
Versi SKU Delphi yang digunakan ikut andil dalam menyukseskan lambatnya proses startup. Hal ini terjadi karena setiap versi membawa kelengkapan fitur yang belum tentu sama. Kelengkapan fitur versi personal tentu saja berbeda dengan versi Architect. Semakin tinggi versi SKU yang digunakan maka semakin banyak fitur kelengkapan yang disertakan, misalnya Enterprise Core Objects (ECO), integrasi dengan produk Borland StarTeam, Borland Together, Caliber IDE dan sebagainya. Semakin banyak fitur yang di-load maka semakin memboroskan resource.
VCL yang Aktif
Secara default, IDE akan me-load semua Visual Component Library (VCL) yang telah ter-instal pada saat startup, baik VCL internal Delphi maupun VCL dari pihak ketiga. Semakin banyak komponen yang di-instal, maka semakin besar pula resource yang dibutuhkan. Terlebih apabila Anda menginstal komponen sejenis suite, yaitu paket komponen yang menyertakan banyak sekali kontrol visual seperti JEDI, RxLib, Orpheus, LMDTools, Eldos, InfoPower, SDLSuite dan sebagainya.
Gambar 1 : Loading komponen pada saat startup
Perlengkapan yang Harus Disiapkan
Setelah mengetahui penyebab lambatnya proses startup, maka kini Anda harus menyiapkan beberapa tool untuk mendukung optimalisasi proses startup, yaitu:
- Delphi Update 1, Delphi Update 2 dan Delphi Update 3
- Delphi Unofficial Update
- Delphi Patch Installer
- FastMM 4
- PatchRTL
- Delphi Setting Manager
Update Delphi secara resmi yang dikeluarkan oleh Borland. Anda dapat men-download-nya dari situs Borland, tentunya dengan user account pengguna Delphi 2005 yang telah terdaftar.
Update Delphi tidak resmi yang dikeluarkan oleh Allen Bauer, salah satu arsitek di Delphi. Anda dapat men-download-nya pada situs blog-nya di http://blogs.borland.com/abauer atau langsung ke alamat:
http://homepages.borland.com/abauer/vclide90.zip
http://homepages.borland.com/abauer/coreide90.zip
http://homepages.borland.com/abauer/boreditu.zipSelengkapnya mengenai file yang diupdate adalah:
boreditu.dll
Borland.Studio.Vcl.Design.dll
coreide90.bpl
coreid90.jdbg
designide90.bpl
designide90.jdbg
vclide90.bpl
vclide90.jdbg
Aplikasi kecil ini dibuat oleh Andreas Hausladen digunakan untuk mempermudah instalasi unofficial update. Anda dapat men-download-nya pada situsnya di http://andy.jgknet.de/misc/D2k5PatchInstaller.zip
Fast Memory Manager merupakan memory manager alternative yang digunakan untuk menggantikan memory manager internal dari Borland. Anda dapat men-donwload-nya pada http://fastmm.sourceforge.net
Digunakan untuk memangkas rutin internal Delphi yang kurang effisien sehingga dapat memangkas loading time Delphi Anda. Anda dapat men-download-nya pada bagian Example (CodeCentral) pada situs Borland.
Aplikasi kecil ini dibuat oleh Erwin Saputra, digunakan untuk mengatur personalisasi Delphi Anda dengan menyeleksi fitur yang ikut di-load pada saat startup Delphi. Anda dapat men-download-nya pada blog-nya di http://blogs.slcdug.org/esaputra atau di http://www.codeline.net
Hacking Time
Nah setelah mengetahui penyebab dan perlengkapan yang dibutuhkan, kini saatnya beraksi. Its hacking time . Langkah – langkah berikut mutlak Anda lakukan dengan tertib dan benar agar Anda memperoleh hasil yang maksimal.
Tahap pertama adalah Anda harus meng-upgrade Delphi Anda dengan menggunakan update resmi yang dikeluarkan oleh Borland. Anda harus melakukannya dengan urut, dari Update 1, Update 2 dan terakhir Update 3.
Sekedar informasi, Anda dapat melihat versi Delphi sebelum di-upgrade melalui menu Help -> About seperti terlihat pada gambar berikut:
Gambar 2 : Versi Delphi 2005 tanpa upgrade
Upgrade dengan Official Update 1
Gambar 3: Instalasi Update 1
Jalankan file setup untuk update 1 seperti Anda meng-instal aplikasi lainnya. Untuk memastikan proses update berjalan dengan baik, Anda dapat memeriksanya pada jendela About dan registry.
Gambar 4: Informasi versi Delphi 2005 setelah Update 1
Pada registry, Anda dapat memeriksa pada key HKLM\Software\Borland\BDS\3.0. Pada entry ProductVersion, pastikan nilainya 9.0.1, kemudian entry RegMergeLevel bernilai 1 dan entry UpdatePackInstalled bernilai 1.
Gambar 5: Informasi versi Delphi 2005 setelah Update 1 pada Registry
Upgrade dengan Official Update 2
Setelah instalasi Update 1 selesai, maka lanjutkanlah dengan instalasi Update 2. Proses instalasi sama seperti instalasi Update 1. Untuk memastikan proses update berjalan dengan baik, Anda dapat memeriksanya pada jendela About dan registry.
Gambar 6: Informasi versi Delphi 2005 setelah Update 2
Pada entry ProductVersion, pastikan nilainya 9.0.2, kemudian entry RegMergeLevel bernilai 2 dan entry UpdatePackInstalled bernilai 2.
Gambar 7: Informasi versi Delphi 2005 setelah Update 2 pada Registry
Upgrade dengan Official Update 3
Setelah instalasi Update 2 selesai, maka lanjutkanlah dengan instalasi Update 3. Proses instalasi sama seperti instalasi Update 1 dan 2. Untuk memastikan proses update berjalan dengan baik, Anda dapat memeriksanya pada jendela About dan registry.
Gambar 8: Informasi versi Delphi 2005 setelah Update 3
Pada entry ProductVersion, pastikan nilainya 9.0.3, kemudian entry RegMergeLevel bernilai 3 dan entry UpdatePackInstalled bernilai 3.
Gambar 9: Informasi versi Delphi 2005 setelah Update 3 pada Registry
Upgrade dengan Unofficial Update
Anda dapat melakukan upgrade Unofficial Update dengan dua cara, yaitu manual dan otomatis. Sebenarnya cara otomatis tidak sepenuhnya otomatis, ada beberapa langkah tambahan yang harus Anda lakukan untuk menyempurnakan upgrade, namun setidaknya dapat menghemat waktu Anda. Di sini saya akan menggunakan cara manual.
Jika Delphi 2005 masih berjalan, maka Delphi 2005 terlebih dahulu harus ditutup. Ekstrak file – file yang terdapat pada paket unofficial update ke folder bin pada folder Delphi 2005, pada kebanyakan kasus terletak pada C:\Program Files\Borland\BDS\3.0\Bin. Kemudian salin precompiled copy BorlandMM.dll dari arsip FastMM (FastMM427\Replacement BorlndMM DLL\Precompiled\for Delphi IDE\Performance) ke folder bin Delphi 2005.
Pada command prompt, arahkan prompt ke folder .NET SDK Anda, biasanya di C:\Program Files\Microsoft.NET\SDK\v1.1\Bin dan jalankan perintah di bawah ini:
sn -Vr Borland.Studio.Vcl.Design.dll
Sesuaikan path pada file Borland.Studio.Vcl.Design.dll sesuai dengan path Anda. Untuk lebih jelasnya simak gambar berikut:
Gambar10: Update assembly untuk platform .NET
Untuk memeriksa apakah upgrade ke unofiicial update berjalan dengan baik, Anda dapat memeriksanya melalui jendela About. Perhatikan bagian bawah jendela About, terdapat teks berwarna merah dengan label ‘Confidential Pre-release version’.
Gambar 11: Informasi versi Delphi 2005 setelah unofficial update
Pangkas Rutin Internal
Hack berikutnya adalah memangkas rutin internal yang kurang efisien dengan menggunakan aplikasi kecil PatchRTL.exe. Seperti biasa, tutup Delphi 2005 Anda. Salin file RTL90.BPL dari folder system windows ke folder bin Delphi 2005. kemudian pada command prompt, jalankan perintah:
PatchRTL RTL90.bpl
Gambar 12: Menggunakan PatchRTL
Personalisasi IDE Delphi
Hack berikutnya adalah melakukan personalisasi IDE Delphi 2005. personaliasi fitur IDE Delphi dan personalisasi paket komponen.
Personalisasi Fitur IDE
Personalisasi fitur IDE adalah memilih fitur – fitur IDE hanya yang dibutuhkan saja, dengan demikian fitur yang tidak dibutuhkan tidak ikut di-load sehingga dapat menghemat loading time dan resource memori. Untuk melakukannya, gunakan tool Delphi Setting Manager.
Gambar 13: Tampilan muka Delphi Setting Manager
Untuk membuat personalisasi baru berikut langkahnya:
-Pilih tab Delphi 2005;
-Klik tombol New;
Gambar 14: Tampilan pembuatan personalisasi
-Masukkan nama personalisasi pada kolom Setting Name;
-Pilih fitur yang ingin di-load pada saat startup pada kolom Templates dengan memberikan tanda cek pada kotak masing – masing fitur;
-Klik Ok untuk menyimpan personalisasi;
Gambar 15: Personalisasi tersimpan
Untuk menerapkan personalisasi yang telah dibuat, Anda harus menjalan Delphi melalui Delphi Setting Manager dengan meng-klik tombol Run Delphi. Jika Anda menjalankan Delphi langsung dari Start Menu, maka personalisasi yang telah dibuat tidak akan dijalankan.
Perhatikan pada saat proses startup Delphi yang telah dipersonalisasi dan bandingkan dengan proses startup Delphi tanpa personalisasi, Anda akan memperoleh perbedaan dalam hal status loading, kecepatan proses loading dan struktur menu pada IDE.
Gambar 16: Hanya fitur yang diperlukan saja yang di-load
Personalisasi Paket Komponen
Hack selanjutnya adalah memilih paket komponen yang di-load pada saat startup. Untuk itu Anda harus menyimpan setting-nya pada Default Options. Langkah – langkahnya adalah sebagai berikut:
-Pada IDE Delphi, tutup semua project yang ada (File -> Close All);
-Pilih menu Project -> Default Options;
-Pilih personalisasi platform yang Anda inginkan, untuk win32 pilih Delphi for Win32, untuk .NET pilih Delphi for .NET;
-Pada jendela Default Project Options, pilih Packages;
-Perhatikan kolom Design packages, di dalam nya termuat paket – paket yang di-load pada IDE;
Gambar 17: Daftar komponen yang di-load pada IDE
-Kemudian pilih hanya komponen yang sering Anda gunakan dengan cara memberikan tanda cek komponen tersebut dan melepas komponen yang jarang Anda gunakan dengan menghilangkan tanda cek pada komponen tersebut;
Gambar 18: Pilih hanya paket yang sering Anda gunakan
-Klik Ok untuk menyimpan perubahan.
Ketika Anda membuat project baru, maka package yg di-load adalah setting default yang telah Anda tetapkan sebelumnya. Nah ketika Anda membutuhkan komponen yang tidak ada pada daftar, maka Anda tinggal mengaktifkan package yang sesuai melalui jendela Package pada menu Project -> Option.
Anda juga bisa memodifikasi package option pada project yang telah Anda buat, jadi Anda dapat mengurangi load time project Anda. Jangan lupa untuk menyimpan konfigurasi yang telah Anda ubah sebelumnya pada file project Anda (file .dpr atau .bdsproj atau .bdsgroup).
Penutup
Dengan menerapkan semua teknik – teknik yang telah dipaparkan di atas, maka proses startup IDE dapat dipangkas secara signifikan. Pada sistem yang saya gunakan, saya dapat mereduksi proses load time hingga kurang dari setengah menit saja. Semoga juga berlaku bagi Anda. Sampai jumpa di Hacking Delphi edisi lainnya.
My First Experience on Delphi2006 Migration
Well, after has been frustating for several months of using the unstable Delphi2005, I decided to use Delphi2006 (Borland Developer Studio 2006). So here my first experience day of using Delphi2006.
First of all, I decided not to uninstall my Delphi2005 because of both technical and non-technical reasons. I’m developing some projects which havent finished yet with Delphi2005, so if I uninstall it and I faced something wrong with Delphi2006, I will have serious problems. Besides, all of my components must be migrated to Delphi2006, its Ok if the migration succeed, but what will be happen if it fail? I must spend lot of time to restoring system and environment to Delphi2005 again!
Then, I backed up all of my projects and components, including the compiled forms such as dcu, tlb, dll, exe and bpl.
Next, I install the Delphi2006, with complete installation option, except for CaliberRM SDK, because I didnt need it yet. After a couple of hours (I must install the prerequisites first), the installation was completed. I really impressed with the personality of Delphi2006. The load time of DeveloperStudio and Win32 personalities are relatively fast.
Then, I deleted all of bpl on BorlandStudioProjects folder, because it contains bpl from my Delphi2005 components. Next I recompile my components. First of all, I installed my favourite components. It seem the migration didnt fit my expectation. There are some changes to be done.
Although JEDI is included into the Borland Partner DVD, the JCL could not be installed by using automatic installer as its provided, I must install it manualy as I treat it like any other components installation. The JVCL itself could be installed without any problems.
The second component I installed is Woll2Woll Infopower4000 Pro. Uhh. I must change the code several times. I must add Delphi RTL version to VER180 manualy on the conditional compilation directive in order to be recognized by compiler. There are some type-name changes from DBTables.pas unit: TButtonSet become TNavButtonSet and split the TKeyIndex to different unit: DBCommonTypes.pas.
Then I tried to load and compile one of my project which used the two components above. The IDE seem stable and fast and good looking. And viola my project compiled successfully.
So, thats all about my first day experience with Delphi2006.
Error: Cannot Make a Visible Window Modal
One of my projects utilize the power of MDI (multiple documents interface), but for some reasons, some forms need to be converted from MDIChild to ordinary form. But the compiled application produced the error: Cannot Make a Visible Window Modal. So how to fix it?
The first step I ensure was the FormStyle must be the right value. For MDIChild, it has fsMDIChild while ordinary form must be fsNormal, yes it has. But in order to make the conversion works perfectly, you must set the [b]Visible[/b] property to [b]False[/b]. That is, and the problem resolved. 🙂
Danny Thorpe left from Borland
As posted on Allen’s Recap One of the visioners Borland, the man behind Delphi, has left to google.. 😦 Lets read his open letter on borland.public.delphi.non-technical newsgroup:
Members of the Delphi Community,
As you’ve no doubt read in other threads in this newsgroup, I have left
Borland to seek new opportunities at Google.This was not a sudden action. I have tried my best to ensure a smooth
transition for the Delphi team, starting with transition plan
discussions with Borland management more than nine months ago.Delphi is built by a team, not by any individual. Far greater talent
than mine has come and gone from the team, and Delphi presses on. More
importantly, far greater talent remains in the team, some of it as yet
untapped.As you may know, my philosphy is that teams should be built to
anticipate, tolerate, and support the comings and goings of individuals
on the team. Everyone will eventually leave the team – either by
choice, or by pine box. To ignore this is childish.I have full confidence in the Delphi team to continue to deliver the
right stuff to keep Delphi current, innovative, and competitive for
years to come. Though there have been some difficult spots between
myself and Borland corporate management, the internal changes in
attitude and messaging in recent months from Borland corporate toward
Delphi have turned my faith in Borland supporting Delphi back toward
the positive. I’m sure that will only get better as Todd Neilsen
steps in as the new CEO.I’m also pleased that in some small measure my departure is creating
opportunities for advancement within the Delphi team, and that Borland
management (Boz and Steve Todd) was very supportive of “redrawing the
map” under the guidance of Allen, Michael, Eli, and myself. Several
individuals on the team have been promoted in title and/or in pay as a
result of this change. Many of those have not seen promotion or pay
raises for as long as 5 years. Borland has also committed to opening up
several new positions in the Delphi group in Scotts Valley, which may
be filled with entry or mid level engineering talent. This alone is a
significant reversal of the “No new hires in Scotts Valley” edict
earlier this year by then-CEO Dale Fuller.I was not snatched away from Borland, and I am not leaving Borland for
lack of money. I sought out Google, and I’ll be making at Google
exactly what I made at Borland, which is nicely comfortable but not
excessive. There were other suitors (including the obvious one) but,
quite frankly, Google outmaneuvered them.Could Borland have bought me back? No, because I didn’t leave for
money. Why, then? Opportunity. I’m going to Google to pursue ideas
and opportunities that are simply beyond Borland. I love Delphi, I
know it inside out, but there’s a lot more in me than just Delphi.After 15 exciting years doing a wide variety of things at Borland, it’s
time for me to do something /completely/ different.This is not goodbye. This is just changing channels.
-Danny Thorpe
Engineer, Google.
Happy change your channels Danny…