08 August 2009

mail merge

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure InsertLines(LineNum : Integer);
procedure CreateMailMergeDataFile;
procedure FillRow(Doc : Variant; Row : Integer;
Text1,Text2,Text3,Text4 : String);
private
{ Private declarations }

public
wrdApp, wrdDoc: Variant;
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses ComObj;

Const wdAlignParagraphLeft = 0;
Const wdAlignParagraphCenter = 1;
Const wdAlignParagraphRight = 2;
Const wdAlignParagraphJustify = 3;
Const wdAdjustNone = 0;
Const wdGray25 = 16;
Const wdGoToLine = 3;
Const wdGoToLast = -1;
Const wdSendToNewDocument = 0;

{$R *.DFM}

procedure TForm1.InsertLines(LineNum : Integer);
var
iCount : Integer;
begin
for iCount := 1 to LineNum do
wrdApp.Selection.TypeParagraph;
end;

procedure TForm1.FillRow(Doc : Variant; Row : Integer;
Text1,Text2,Text3,Text4 : String);

begin
Doc.Tables.Item(1).Cell(Row,1).Range.InsertAfter(Text1);
Doc.Tables.Item(1).Cell(Row,2).Range.InsertAfter(Text2);
Doc.Tables.Item(1).Cell(Row,3).Range.InsertAfter(Text3);
Doc.Tables.Item(1).Cell(Row,4).Range.InsertAfter(Text4);
end;

procedure TForm1.CreateMailMergeDataFile;
var
wrdDataDoc : Variant;
iCount : Integer;
begin
// Create a data source at C:\DataDoc.doc containing the field data
wrdDoc.MailMerge.CreateDataSource('C:\DataDoc.doc',,,'FirstName, LastName,' +
' Address, CityStateZip');
// Open the file to insert data
wrdDataDoc := wrdApp.Documents.Open('C:\DataDoc.doc');
for iCount := 1 to 2 do
wrdDataDoc.Tables.Item(1).Rows.Add;
// Fill in the data
FillRow(wrdDataDoc, 2, 'Steve', 'DeBroux',
'4567 Main Street', 'Buffalo, NY 98052');
FillRow(wrdDataDoc, 3, 'Jan', 'Miksovsky',
'1234 5th Street', 'Charlotte, NC 98765');
FillRow(wrdDataDoc, 4, 'Brian', 'Valentine',
'12348 78th Street Apt. 214', 'Lubbock, TX 25874');
// Save and close the file
wrdDataDoc.Save;
wrdDataDoc.Close(False);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
StrToAdd : String;
wrdSelection, wrdMailMerge, wrdMergeFields : Variant;
begin
// Create an instance of Word and make it visible
wrdApp := CreateOleObject('Word.Application');
wrdApp.Visible := True;
// Create a new document
wrdDoc := wrdApp.Documents.Add();
wrdDoc.Select;

wrdSelection := wrdApp.Selection;
wrdMailMerge := wrdDoc.MailMerge;

// Create MailMerge data file
CreateMailMergeDataFile;


// Create a string and insert it into the document
StrToAdd := 'State University' + Chr(13) +
'Electrical Engineering Department';
wrdSelection.ParagraphFormat.Alignment := wdAlignParagraphCenter;
wrdSelection.TypeText(StrToAdd);

InsertLines(4);

// Insert Merge Data
wrdSelection.ParagraphFormat.Alignment := wdAlignParagraphLeft;
wrdMergeFields := wrdMailMerge.Fields;

wrdMergeFields.Add(wrdSelection.Range,'FirstName');
wrdSelection.TypeText(' ');
wrdMergeFields.Add(wrdSelection.Range,'LastName');
wrdSelection.TypeParagraph;
wrdMergeFields.Add(wrdSelection.Range,'Address');
wrdSelection.TypeParagraph;
wrdMergeFields.Add(wrdSelection.Range,'CityStateZip');

InsertLines(2);

// Right justify the line and insert a date field with
// the current date
wrdSelection.ParagraphFormat.Alignment := wdAlignParagraphRight;
wrdSelection.InsertDateTime('dddd, MMMM dd, yyyy',False);

InsertLines(2);

// Justify the rest of the document
wrdSelection.ParagraphFormat.Alignment := wdAlignParagraphJustify;

wrdSelection.TypeText('Dear ');
wrdMergeFields.Add(wrdSelection.Range,'FirstName');

wrdSelection.TypeText(',');
InsertLines(2);

// Create a string and insert it into the document
StrToAdd := 'Thank you for your recent request for next ' +
'semester''s class schedule for the Electrical ' +
'Engineering Department. Enclosed with this ' +
'letter is a booklet containing all the classes ' +
'offered next semester at State University. ' +
'Several new classes will be offered in the ' +
'Electrical Engineering Department next semester. ' +
'These classes are listed below.';
wrdSelection.TypeText(StrToAdd);

InsertLines(2);

// Insert a new table with 9 rows and 4 columns
wrdDoc.Tables.Add(wrdSelection.Range,9,4);
wrdDoc.Tables.Item(1).Columns.Item(1).SetWidth(51,wdAdjustNone);
wrdDoc.Tables.Item(1).Columns.Item(2).SetWidth(170,wdAdjustNone);
wrdDoc.Tables.Item(1).Columns.Item(3).SetWidth(100,wdAdjustNone);
wrdDoc.Tables.Item(1).Columns.Item(4).SetWidth(111,wdAdjustNone);
// Set the shading on the first row to light gray

wrdDoc.Tables.Item(1).Rows.Item(1).Cells
.Shading.BackgroundPatternColorIndex := wdGray25;
// BOLD the first row
wrdDoc.Tables.Item(1).Rows.Item(1).Range.Bold := True;
// Center the text in Cell (1,1)
wrdDoc.Tables.Item(1).Cell(1,1).Range.Paragraphs.Alignment :=
wdAlignParagraphCenter;

// Fill each row of the table with data
FillRow(wrdDoc, 1, 'Class Number', 'Class Name', 'Class Time',
'Instructor');
FillRow(wrdDoc, 2, 'EE220', 'Introduction to Electronics II',
'1:00-2:00 M,W,F', 'Dr. Jensen');
FillRow(wrdDoc, 3, 'EE230', 'Electromagnetic Field Theory I',
'10:00-11:30 T,T', 'Dr. Crump');
FillRow(wrdDoc, 4, 'EE300', 'Feedback Control Systems',
'9:00-10:00 M,W,F', 'Dr. Murdy');
FillRow(wrdDoc, 5, 'EE325', 'Advanced Digital Design',
'9:00-10:30 T,T', 'Dr. Alley');
FillRow(wrdDoc, 6, 'EE350', 'Advanced Communication Systems',
'9:00-10:30 T,T', 'Dr. Taylor');
FillRow(wrdDoc, 7, 'EE400', 'Advanced Microwave Theory',
'1:00-2:30 T,T', 'Dr. Lee');
FillRow(wrdDoc, 8, 'EE450', 'Plasma Theory',
'1:00-2:00 M,W,F', 'Dr. Davis');
FillRow(wrdDoc, 9, 'EE500', 'Principles of VLSI Design',
'3:00-4:00 M,W,F', 'Dr. Ellison');

// Go to the end of the document

wrdApp.Selection.GoTo(wdGotoLine,wdGoToLast);
InsertLines(2);

// Create a string and insert it into the document
StrToAdd := 'For additional information regarding the ' +
'Department of Electrical Engineering, ' +
'you can visit our website at ';
wrdSelection.TypeText(StrToAdd);
// Insert a hyperlink to the web page
wrdSelection.Hyperlinks.Add(wrdSelection.Range,'http://www.ee.stateu.tld');
// Create a string and insert it into the document
StrToAdd := '. Thank you for your interest in the classes ' +
'offered in the Department of Electrical ' +
'Engineering. If you have any other questions, ' +
'please feel free to give us a call at ' +
'555-1212.' + Chr(13) + Chr(13) +
'Sincerely,' + Chr(13) + Chr(13) +
'Kathryn M. Hinsch' + Chr(13) +
'Department of Electrical Engineering' + Chr(13);
wrdSelection.TypeText(StrToAdd);

// Perform mail merge
wrdMailMerge.Destination := wdSendToNewDocument;
wrdMailMerge.Execute(False);

// Close the original form document
wrdDoc.Saved := True;
wrdDoc.Close(False);

// Notify the user we are done.
ShowMessage('Mail Merge Complete.');

// Clean up temp file
DeleteFile('C:\DataDoc.doc');

end;

end.

Microsoft Word is an Automation server, which is a particular type of COM server application. Automation servers can be controlled either by talking directly to the COM interface defined by the application, or by using a Variant to talk (implicitly) to the IDispatch interface supported by the application.

To automation Word with a Variant variable (supported since Delphi 2), you initialise the Variant with a call to CreateOleObject (from the ComObj unit). Then, the Variant acts just like the object exposed by the utomation server. You can call methods and access properties, so long as you know what they are. When Word is installed, there is an optional VBA help file that can be installed as well, which describes all the functionality supported by the Word Automation object(s).

Automation through a Variant allows optional parameters to be omitted, where you are happy with their default values. So, if you are automating Microsoft Word, and you wish to save a document to disk you can call the SaveAs method of the document object, and ignore most of the eleven arameters that it takes, as shown below

More info: Delphi takes control

~~~~~~~~~~~~~~~~~~~~~~~~~
uses
ComObj;

procedure TForm1.Button1Click(Sender: TObject) ;
var
WordApplication, WordDocument: Variant;
begin
WordApplication := CreateOleObject('Word.Application') ;
WordDocument := WordApplication.Documents.Add;
WordApplication.Selection.TypeText('Hello world') ;
WordDocument.SaveAs(FileName := 'C:\Doc.Doc',
AddToRecentFiles := False) ;
WordApplication.Quit(False)
end;

#

Start the Microsoft Word application. At the top, in between "Insert" and "Tools," Click on "Format" (blue highlighted section with the blue circle in the caption).
#
Step 2

Scroll down to "Paragraph" (blue highlighted text with blue arrow in caption) and right click it. This will open up the "Paragraph options" box and allow you to customize a few things, including auto-indent.
#
Step 3

Go to the "Indentation" box in the second section from the top, and hit the drop-down arrow in the "Special" column (the left option in the red box in caption), and choose "First Line." Then click the drop-down arrow in the "By" column and choose how much indent you wish the document to have--standard is 0.5. Then, click “OK” (located in the green box in caption) and your document will auto-indent by half an inch at the start of every new paragraph.


Set Tabs Using the Ruler Toolbar
1.
Step 1

Go to the View menu and select Ruler.
2.
Step 2

Locate the small box at the left end of the ruler. Click the box until the type of tab you want to insert (left, right, center, decimal) appears. If you can't tell what a tab is from the picture on the button, press the right mouse button and hover over the box.
3.
Step 3

Click on the horizontal ruler in your document window in the position where you want to place the tab. A tab mark appears on the ruler.
4.
Step 4

Press the Tab key to advance to your new tab stop.
Set Tabs Using the Tabs Command in the Format Menu
5.
Step 1

Select the text to which you want to apply tabs.
6.
Step 2

Go to the Format menu and select Tabs.
7.
Step 3

Select the alignment you want for the tabs you are setting (left, right, center, and so on).
8.
Step 4

Enter a number in inches in the Tab Stop Position box.
9.
Step 5

Click the Set button to set the new tab stop.



Ada suatu saat di mana kita tidak ingin paragraf yang kita buat terpecah saat berganti halaman di Microsoft Word. Atau kita tidak ingin mencegah hanya ada satu atau dua kata dari paragraf tersebut pada halaman berikutnya.

Begini cara membuat paragraf menjadi satu kesatuan:
1. Seleksi paragraf yang akan diberi efek ’kesatuan’ ini.
2. Klik menu [Format] > [Paragraf], kemudian klik tab [Line and Pagebreaks].
3. Klik kotak cek [Keep lines together].

Untuk mencegah terpisahnya sebuah paragraf dengan subjudulnya,
1. Seleksi paragraf tersebut beserta subjudulnya.
2. Dengan langkah seperti di atas, klik kotak cek [Keep with next].

Anda sering menncetak suatu dokumen Word dan Anda harus selalu membalik urutan halaman ? Hal ini tentu terasa membosankan. Sebenarnya Anda bisa mencetak dokumen Word dengan uratan terbalik (dari nomor halaman besar ke kecil) sehingga Anda tidak perlu harus membalik urutannya. Caranya dari menu Tools/Option/Print tandai Reverse Print Order lalu klik OK.

31 July 2009

kontrol system

Microsoft telah menutup lubang keamanan di Excel, Windows, dan Word, Senin (20/4) yang telah dieksploitasi kode dan detailnya, dengan memberikan update patch keamanan. Lubang keamanan di Excel dapat memudahkan penyusup untuk mengambil kontrol system yang belum diperbaiki, jika user membuka file palsu Excel. Sementara menurut bulletin Microsoft, patch Microsoft diberikan untuk program Microsoft Office, 2002, 2003, dan 2007, juga Microsoft Office 2004 dan 2008 for the Mac.

Microsoft juga merilis sebuah patch untuk kelemahan di WordPad dan Office yang dapat memperbolehkan eksekusi kode jarak jauh jika file palsu di Wordpad dan Microsoft Word dibuka. Kelemahan tersebut berhasil dieksploitasi melalui jaringan Internet, dan berimbas pada Windows 2000, Windows XP, Windows XP Professional, Windows Server 2003, Microsoft Office Word 2000 dan Word 2002. Sedangkan patch lainnya ditujukan untuk memperbaiki empat kelemahan di Internet Explorer (IE) 5, 6 dan 7, jika user melihat halaman web atau jika user terkoneksi dengan situs penyusup via HTTP.

Patch Microsoft juga dibuat untuk Microsoft DirectShow, termasuk DirectX 8 dan DirectX 9, yang dapat dieksploitasi hacker jika user membuka file MJPEG yang specific. Lima patch ditujukan untuk layanan Windows HTTP, dari system Windows 2000, Windows XP, Windows XP Professional, Windows Vista, Windows Server 2003, dan Server 2008.

Microsoft juga telah memperbaiki lubang di login system Windows Windows 2000, Windows XP, Windows XP Professional, Windows Vista, Windows Server 2003, dan Server 2008, setelah sebelumnya, penyusup mampu memasuki system di atas dan kemudian menjalankan aplikasi tertentu. Patch lainnya untuk Microsoft Internet Security dan Acceleration Server 2004 and 2006, dan edisi bisnis medium Forefront Threat Management Gate.(h_n)

QTAFI (Questions, Tables and Figures) adalah suatu aplikasi yang dikembangkan untuk mempermudah pelaksanaan survey. Dengan QTAFI kita bisa dengan mudah membuat kuisioner, membuat lembar data di SPSS dan mempermudah proses analisis data dengan SPSS. Aplikasi ini sangat cocok bagi mahasiswa yang akan membuat kuisioner ataupun fakultas atau universitas yang akan mengadakan survey penelusuran alumni (graduate survey atau tracer study).

QTAFI adalah aplikasi yang berbasis makro. Bentuk aplikasi ini berupa file dokumen berekstensi doc (seperti dokumen yang biasa kita buat lewat MS Word), hanya saja terkandung makro QTAFI di dalamnya. Untuk menjalankan aplikasi ini tentu saja MS Word harus sudah terpasang di komputer kita.

Saya mulai menggunakan aplikasi ini sejak tahun 2003, pada waktu itu aplikasi ini membantu pelaksanaan survey penelusuran alumni di UGM. Sejak saat itu saya terlibat dalam pengembangan QTAFI dan online.QTAFI (QTAFI berbasis web) walaupun hanya sebagai tester setia :D. Sampai saat ini pengembangan aplikasi ini terus berlanjut, terutama untuk versi online yang sudah sampai pada versi 2. Saat ini puluhan online survey secara bersamaan berjalan di server online.QTAFI2.

Secara garis besar fungsi QTAFI terletak pada fungsi bukukode (codebook). Pertama kita buat bukukode yang isinya adalah informasi tentang pertanyaan-pertanyaan yang ada di kuisioner kita. Selanjutnya dengan bukukode ini kita bisa dengan mudah membuat:

* Kuisioner kertas. QTAFI akan menerjemahkan buku kode menjadi format kuisioner yang siap cetak.
* Definisi data SPSS (nama variabel, label variabel, nilai variabel, missing value).
* SPSS syntax untuk data analisis. Isinya perintah syntax dengan fungsi tabel, hasilnya berupa tabel dengan format standar publikasi ilmiah.
* Online kuisioner. Prosesnya adalah mengubah buku kode ke format XML yang kemudian dengan bantuan online.QTAFI2 kita bisa dengan mudah membuat online kuisioner.

Fungsi paling penting dari bukukode adalah sebagai alat dokumentasi dari kuisioner yang kita buat. Dokumentasi ini bisa dijadikan instrumen standar ketika beberapa peneliti bekerja bersamaan dalam proyek survey yang besar. Selain itu dokumentasi ini juga bisa sebagai acuan bagi operator dalam proses memasukkan data, terutama bila terdapat lebih dari satu operator.

Kita bisa juga membuat langsung kuisioner kertas dengan QTAFI tanpa membuat bukukode terlebih dahulu. Setelah kuisioner tersebut selesai kita bisa mendapatkan bukukode-nya secara otomatis lewat QTAFI.

Sebagai gambaran lebih terperinci Anda bisa membaca artikel Pengantar QTAFI . Artikel ini ditulis untuk workshop QTAFI pada tahun 2004 di UGM. Ada banyak perubahan dalam QTAFI setelah artikel tersebut ditulis, namun fungsi dasarnya tetap sama. Dengan mambaca artikel ini Anda bisa mendapatkan informasi lebih terperinci tentang QTAFI. Anda bisa juga langsung mencoba QTAFI dengan mengunduhnya terlebih dahulu disini. Proses pemasangannya sudah dijelaskan terperinci di dalamnya. Lebih lanjut tentang QTAFI dan online.QTAFI akan kita bahas pada artikel-artikel selanjutnya.

Saya sangat tertarik mendapatkan respon dari Anda yang telah mencoba QTAFI. Silakan tinggalkan komentar Anda dengan menuliskannya di formulir dibawah ini atau

Dunia teknologi dan informasi semakin berkembang dengan pesat. Segala macam kemajuan teknologi telah banyak membantu pekerjaan manusia menjadi lebih mudah. Sebagai sebuah perbandingan, dulu orang menulis hanya dapat menggunakan tulisan tangan, ataupun yang paling modern saat itu adalah mesint tik. Dengan cara itu, prosesnya cukup memakan waktu dan tenaga. Apa lagi jika terjadi kesalahan dalam penulisan. Prosesnya akan semakin lebih lama.

Sekarang dimana banyak orang menyebut sebagai era komputerisasi, pekerjaan seperti menulis jauh lebih cepat dan mudah. Apabila terjadi kesalahan pun akan dengan mudah diperbaiki tanpa memakan banyak waktu. Hal ini berkat sebuah perangkat yang dinamakan komputer (personal computer).

Selain itu teknologi computer di era ini pun semakin modern. Hadirnya berbagai macam kemajuan teknologi mampu juga membantu dalam hal berkomunikasi. Misalnya e-mail yang cukup menggantikan peran surat menyurat konvensional. Selain itu, fasilitas chatting yang telah mampu menghadirkan pesan dalam bentuk suara dan berkomunikasi langsung, juga mampu membatu pengguna teknologi untuk dapat “bergerak” dengan lebih cepat secara efektif dan efisien.
Lalu akankah kita diam saja melihat perkembangan teknologi yang semakin cepat ini? Tentu jawabanya adalah tidak. Jangan sampai kita hanya menjadi penonton betapa hebatnya teknologi dalam membantu manusia. Kita pun harus ambil peranan di dalamya. Sesulit apa pun itu, kita tetap harus mencoba.

Untuk memulai dan mengikuti perkembangan teknologi, kita dapat memulianya dalam hal yang paling sederhana, yaitu membiasakan diri dengan perangkat komputer. Pembiasaan itu dapat saja melalui mengetik, atau menghitung dengan menggunakan program di Komputer. Kebiasan-kebiasan itu lah yang akan membentuk diri kita pada pehaman betapa pentingnya turut terlibat di dalam perkembangan Teknologi.

want to share your code to another?
put here

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:

Versi Delphi 2005 tanpa upgrade
Gambar 2 : Versi Delphi 2005 tanpa upgrade

Upgrade dengan Official Update 1

Instalasi 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.

Informasi versi Delphi 2005 setelah Update 1
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.

Informasi versi Delphi 2005 setelah Update 1 pada Registry
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.

Informasi versi Delphi 2005 setelah Update 2
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.

Informasi versi Delphi 2005 setelah Update 2 pada Registry
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.

Informasi versi Delphi 2005 setelah Update 3
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.

Informasi versi Delphi 2005 setelah Update 3 pada Registry
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:

Update assembly untuk platform .NET
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’.

Informasi versi Delphi 2005 setelah unofficial update
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

Menggunakan PatchRTL
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.

Tampilan muka Delphi Setting Manager
Gambar 13: Tampilan muka Delphi Setting Manager

Untuk membuat personalisasi baru berikut langkahnya:

-Pilih tab Delphi 2005;
-Klik tombol New;

Tampilan pembuatan personalisasi
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;

Personalisasi tersimpan
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.

Hanya fitur yang diperlukan saja yang di-load
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;
Daftar komponen 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;

Pilih hanya paket yang sering Anda gunakan
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.