Menambahkan form input pada saat instalasi (inno setup)

Posted by Kamarudin • 1 minute read • Comments

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.

[Code]
var
   INIInputPage: TInputQueryWizardPage;

procedure InitializeWizard();
begin
  // Form Input
  INIInputPage := CreateInputQueryPage(wpInfoAfter, 'Konfigurasi', 'Konfigurasi Program.',
                                       'Isikan konfigurasi program ke dalam form di bawah ini.');

  INIInputPage.Add('Nama', False);
  INIInputPage.Add('Telepon', False);
  INIInputPage.Add('Alamat', False);
  INIInputPage.Add('Kota', False);

  INIInputPage.Values[0] := GetPreviousData('Nama', '');
  INIInputPage.Values[1] := GetPreviousData('Telepon', '');
  INIInputPage.Values[2] := GetPreviousData('Alamat', '');
  INIInputPage.Values[3] := GetPreviousData('Kota', '');
end;

// prosedur ketika user mengklik tombol kembali, setelah pengisian form
procedure RegisterPreviousData(PreviousDataKey: Integer);
begin
  // tampilkan nilai sebelumnya yang sudah diinputkan user
  SetPreviousData(PreviousDataKey, 'Nama', INIInputPage.Values[0]);
  SetPreviousData(PreviousDataKey, 'Telepon', INIInputPage.Values[1]);
  SetPreviousData(PreviousDataKey, 'Alamat', INIInputPage.Values[2]);
  SetPreviousData(PreviousDataKey, 'Kota', INIInputPage.Values[3]);
end;

// prosedur ketika user mengklik tombol lanjut, setelah pengisian form
function NextButtonClick(CurPageID: Integer): Boolean;
begin
  Result := True;
  if CurPageID = INIInputPage.ID then begin
    // validasi input, untuk contoh disini saya validasi semua inputan harus diisi
    if (Trim(INIInputPage.Values[0]) = '') or (Trim(INIInputPage.Values[1]) = '') or
       (Trim(INIInputPage.Values[2]) = '') or (Trim(INIInputPage.Values[3]) = '') then begin
       MsgBox('Anda harus mengisikan data secara lengkap!', mbError, MB_OK);
       Result := False;

    end else begin
      // jika semua input form oke, tulis ke file dengan format INI
      // otomatis akan disimpan di folder instalasi dengan nama konfig.ini
      SetIniString('Konfigurasi', 'Nama', INIInputPage.Values[0], ExpandConstant('{app}') + '\konfig.ini');
      SetIniString('Konfigurasi', 'Telepon', INIInputPage.Values[1], ExpandConstant('{app}') + '\konfig.ini');
      SetIniString('Konfigurasi', 'Alamat', INIInputPage.Values[2], ExpandConstant('{app}') + '\konfig.ini');
      SetIniString('Konfigurasi', 'kota', INIInputPage.Values[3], ExpandConstant('{app}') + '\konfig.ini');
    end;
  end;
end;

Berikut contoh file INI yang dihasilkan dari kode diatas

Sedangkan untuk menyimpan langsung ke registry windows menggunakan perintah RegWriteStringValue

// jika semua input form oke, simpan ke registry windows
RegWriteStringValue(HKEY_CURRENT_USER, 'Software\K4m4r82`s Laboratory\Sistem Informasi Sekolah', 'Nama', INIInputPage.Values[0]);
RegWriteStringValue(HKEY_CURRENT_USER, 'Software\K4m4r82`s Laboratory\Sistem Informasi Sekolah', 'Telepon', INIInputPage.Values[1]);
RegWriteStringValue(HKEY_CURRENT_USER, 'Software\K4m4r82`s Laboratory\Sistem Informasi Sekolah', 'Alamat', INIInputPage.Values[2]);
RegWriteStringValue(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 :blush:

Comments