PARTNER

Minggu, 16 Januari 2011

Menambahkan form input pada saat instalasi (inno setup)

Adakalanya kita ingin menyederhanan proses konfigurasi aplikasi, sehingga sebagian konfigurasi kita pindah pada saat instalasi.
Misal kita akan menambahkan input profil klien seperti nama, telepon, alamat dan kota.

Jadi dengan menggunakan Inno Setup kita bisa dengan mudah melakukan hal ini, dan untuk lokasi penyimpanannya sendiri ada 2 pilihan yaitu disimpan dalam format file INI atau langsung ke registry windows.

Kita akan bahas satu-satu kodenya dan pada artikel ini saya tidak membahas skrip lengkap Inno Setupnya karna sudah saya bahas pada artikel yang lainnya, jadi fokus kita kali ini hanya di section [Code].
Berikut kodenya untuk menambahkan form input dan menyimpannya ke file dengan format INI.

====================================================================
01[Code]
02var
03   INIInputPage: TInputQueryWizardPage;
04 
05procedure InitializeWizard();
06begin
07  // Form Input
08  INIInputPage := CreateInputQueryPage(wpInfoAfter, 'Konfigurasi', 'Konfigurasi Program.',
09                                       'Isikan konfigurasi program ke dalam form di bawah ini.');
10 
11  INIInputPage.Add('Nama', False);
12  INIInputPage.Add('Telepon', False);
13  INIInputPage.Add('Alamat', False);
14  INIInputPage.Add('Kota', False);
15 
16  INIInputPage.Values[0] := GetPreviousData('Nama', '');
17  INIInputPage.Values[1] := GetPreviousData('Telepon', '');
18  INIInputPage.Values[2] := GetPreviousData('Alamat', '');
19  INIInputPage.Values[3] := GetPreviousData('Kota', '');
20end;
21 
22// prosedur ketika user mengklik tombol kembali, setelah pengisian form
23procedure RegisterPreviousData(PreviousDataKey: Integer);
24begin
25  // tampilkan nilai sebelumnya yang sudah diinputkan user
26  SetPreviousData(PreviousDataKey, 'Nama', INIInputPage.Values[0]);
27  SetPreviousData(PreviousDataKey, 'Telepon', INIInputPage.Values[1]);
28  SetPreviousData(PreviousDataKey, 'Alamat', INIInputPage.Values[2]);
29  SetPreviousData(PreviousDataKey, 'Kota', INIInputPage.Values[3]);
30end;
31 
32// prosedur ketika user mengklik tombol lanjut, setelah pengisian form
33function NextButtonClick(CurPageID: Integer): Boolean;
34begin
35  Result := True;
36  if CurPageID = INIInputPage.ID then begin
37    // validasi input, untuk contoh disini saya validasi semua inputan harus diisi
38    if (Trim(INIInputPage.Values[0]) = '') or (Trim(INIInputPage.Values[1]) = '') or
39       (Trim(INIInputPage.Values[2]) = '') or (Trim(INIInputPage.Values[3]) = '') then begin
40       MsgBox('Anda harus mengisikan data secara lengkap!', mbError, MB_OK);
41       Result := False;
42 
43    end else begin
44      // jika semua input form oke, tulis ke file dengan format INI
45      // otomatis akan disimpan di folder instalasi dengan nama konfig.ini
46      SetIniString('Konfigurasi', 'Nama', INIInputPage.Values[0], ExpandConstant('{app}') + '\konfig.ini');
47      SetIniString('Konfigurasi', 'Telepon', INIInputPage.Values[1], ExpandConstant('{app}') + '\konfig.ini');
48      SetIniString('Konfigurasi', 'Alamat', INIInputPage.Values[2], ExpandConstant('{app}') + '\konfig.ini');
49      SetIniString('Konfigurasi', 'kota', INIInputPage.Values[3], ExpandConstant('{app}') + '\konfig.ini');
50    end;
51  end;
52end;    
===========================================================
Berikut contoh file INI yang dihasilkan dari kode diatas

Sedangkan untuk menyimpan langsung ke registry windows menggunakan perintah RegWriteStringValue
===========================================================
1// jika semua input form oke, simpan ke registry windows
2RegWriteStringValue(HKEY_CURRENT_USER, 'Software\K4m4r82`s Laboratory\Sistem Informasi Sekolah', 'Nama', INIInputPage.Values[0]);
3RegWriteStringValue(HKEY_CURRENT_USER, 'Software\K4m4r82`s Laboratory\Sistem Informasi Sekolah', 'Telepon', INIInputPage.Values[1]);
4RegWriteStringValue(HKEY_CURRENT_USER, 'Software\K4m4r82`s Laboratory\Sistem Informasi Sekolah', 'Alamat', INIInputPage.Values[2]);
5RegWriteStringValue(HKEY_CURRENT_USER, 'Software\K4m4r82`s Laboratory\Sistem Informasi Sekolah', 'Kota', INIInputPage.Values[3]); 
============================================================
Jika kita lihat di registry windows, hasilnya lebih kurang seperti berikut :

Selamat mencoba :)

source : https://coding4ever.wordpress.com/2010/12/12/menambahkan-form-input-pada-saat-instalasi-inno-setup/
Share:

0 komentar:

Posting Komentar

Blog Archive

Blogger templates