27 February 2016

Membuat Animasi Form Dengan Delphi

Untuk artikel kali ini saya akan coba berexperiment masih dengan delphi yaitu membuat animasi dimana maksud dari animasi disini saya akan coba untuk menampilkan form dengan suatu efek animasi pada saat ditampilkan.Jadi apabila membuat suatu projek dan coba tambahkan dengan sebuah efek animasi ini maka projek kita akan terlihat indah dengan adanya suatu hiasan atau efek animasi dan juga tentunya mungkin tidak akan membosankan.

animasi form dengan delphi
Animasi form

Langkah Pembuatan

Baiklah sekarang saya akan langsung ke cara pembuatannya dimana yang pertama biasa buka dulu aplikasi delphinya,untuk experiment kali ini saya akan coba dengan menggunakan 2 buah form yang mana pada form2 saya akan coba tampilkan dengan animasi sesuai dengan artikel kali ini sedangkan untuk form1 nya adalah tombol-tombol untuk beberapa contoh tampilan animasi untuk menampilkan form2 tersebut.

Tambahan Komponen Form1

Pada Form1 disini saya coba menambahkan 4 buah komponen button kemudian tiap-tiap komponen button saya coba ganti caption nya pada object inspector dengan :
- Button1 ganti Caption dengan BLEND.
- Button2 ganti Caption dengan CENTER.
- Button3 ganti Caption dengan HOR POSITIVE.
- Button4 ganti Caption dengan CLOSE.

komponen pada form1
Penambahan Komponen di Form1


Tambahan Komponen Form2

Dan untuk form2 nya saya hanya menambahkan 1 buah komponen image dan 1 buah komponen label

penambahan komponen pada form2
Penambahan Komponen Pada Form2

Koding

Setelah penambahan komponen-komponen pada masing-masing form lanjut ke kode editor untuk membuat procedure nya atau kodingnya untuk tiap-tiap button disini yang pertama coba masukan atau tambahkan dahulu unit2 pada uses yang mana untuk cara menambahkan unit pada uses bagi teman-teman yang belum tahu bisa dibaca pada postingan saya sebelumnya yaitu pada cara membuka dan menutup aplikasi di delphi.

Koding Button BLEND

Setelah unit2 ditambahkan di uses lanjut dengan mengklik 2X button1 untuk membuat procedurenya dan coba buat procedurenya seperti dibawah ini
procedure TForm1.Button1Click(Sender: TObject);
begin
  AnimateWindow(Form2.Handle, 2000, AW_BLEND);
  Form2.Show;
end;

Koding Button CENTER

Lanjut lagi ke button2 yaitu untuk membuat procedure untuk Button Center langkahnya sama dengan mengklik 2X button2 dan procedurenya seperti berikut
procedure TForm1.Button2Click(Sender: TObject);
begin
  AnimateWindow(Form2.Handle, 2000, AW_CENTER);
  Form2.Show;
end;

Koding Button HOR POSITIVE

Dan disini button3 sebagai button Hor positive saya klik 2X untuk membuat procedurenya saya coba buat procedurenya seperti dibawah ini
procedure TForm1.Button3Click(Sender: TObject);
begin
  AnimateWindow(Form2.Handle, 2000, AW_HOR_POSITIVE);
  Form2.Show;
end;

Koding Button CLOSE

Terakhir untuk button4 atau disini sebagai button Close saya buat procedurenya seperti berikut
procedure TForm1.Button4Click(Sender: TObject);
begin
  Form2.Hide;
end;

Tes Run Projek

Setelah pengkodingan semua diatas dilakukan coba tekan tombol Run yang ada pada menu bar di delphi atau tekan F9 pada keyboard untuk melihat hasil projek tersebut dan berikut dibawah adalah hasil dari tes projek ini

tes run projek
Tes Run Projek


Demikian untuk artikel kali ini sesuai dengan judul yaitu cara membuat animasi form dengan delphi semoga bermanfaat bagi teman-teman dan bisa teman-teman kembangkan lagi lebih lanjut,dan nantikan lagi experiment saya selanjutnya.

Oke Salam Blogger And Happy Koding.

26 February 2016

Membuat Progressbar Dengan Image

Sekarang pada postingan kali ini saya akan mencoba berexperiment masih seputar delphi yaitu mencoba membuat progressbar menggunakan suatu image,maksud dari experiment ini yaitu untuk supaya bagaimana agar komponen dari pada progressbar tampilannya bisa sesuai dengan gambar yang dikehendaki kita agar tidak bosan.Dimana apabila kita membuat suatu aplikasi atau projek mungkin bisa menambahkan suatu variasi ini agar projek yang kita buat menjadi lebih baik.

progressbar dengan image
Progressbar Image


Langkah Pembuatan

Baiklah sekarang saya akan coba langsung ke inti dari postingan kali ini yaitu langkah-langkah untuk membuat progressbar dengan image.Yang pertama tentunya aplikasi delphinya sudah terinstall pada PC atau komputer.

Penambahan Komponen

Pada saat pertama kali kita buka aplikasi delphinya maka akan muncul suatu Form dan disini saya coba menambahkan beberapa komponen pada form tersebut yaitu:
1. 1 buah Image.
2. 1 buah Timer.
3. 2 buah Button.
Dan dari beberapa komponen tersebut pada object inspector saya coba ganti properti caption dari masing-masing komponen button yaitu menjadi START dan STOP,kemudian properti picture dari komponen image saya coba tambahkan suatu image bmp dan komponen timer saya ganti intervalnya menjadi 120,kemudian saya coba posisikan komponen-komponen tersebut seperti gambar dibawah ini

posisi komponen pada form
Penambahan dan Pengaturan Komponen

Koding


Membuat Sebuah Procedure

Setelah posisi komponen siap lanjut ke kode editor untuk pengkodingannya yang pertama disini saya coba membuat suatu procedure yaitu untuk progress image dimana image tersebut supaya bisa menjadi progress pada komponen progressbar pada saat di run dimana procedure nya adalah seperti dibawah ini
procedure TForm1.UpdateImageProgress(const img: TImage);
const
  step = 4;
var
  b  : TBitmap;
begin
  with img.Picture.Bitmap do
  begin
    b := TBitmap.Create;
    try
      b.Width  := Width;
      b.Height := Height;
      BitBlt(b.Canvas.Handle, step, 0, Width-step, Height, Canvas.Handle, 0, 0, SRCCOPY);
      BitBlt(b.Canvas.Handle, 0, 0, step, Height, Canvas.Handle, Width-step, 0, SRCCOPY);
      Assign(b);
    finally
      FreeAndNil(b);
    end;
  end;
end;

Kode Timer

Setelah itu lanjut untuk procedure atau kode komponen Timer dengan mengklik 2X komponen timer kemudian buat procedurenya seperti dibawah ini
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  UpdateImageProgress(Image1);
end;

Kode Button Start

Lanjut lagi membuat procedure untuk button start dimana disini button1 saya jadikan button start dan procedure nya seperti dibawah ini
procedure TForm1.Button1Click(Sender: TObject);
begin
  Timer1.Enabled := True;
end;

Kode Button Stop

Terakhir untuk procedure button stop yaitu disini button2 sebagai button stop dan untuk procedure nya adalah seperti berikut
procedure TForm1.Button2Click(Sender: TObject);
begin
  Timer1.Enabled := False;
end;

Tes Projek

Setelah semua kode tersebut diatas siap coba klik tombol Run atau tekan F9 pada keyboard untuk mencoba projek tersebut jalan.

tes projek progressbar image
Tes Run Projek


Demikianlah untuk experiment saya kali ini tentang cara membuat progressbar dengan image semoga postingan ini bermanfaat bagi teman-teman dan bisa dikembangkan lagi.

Oke Salam Blogger and Happy Koding.

16 February 2016

Cara Membuat Simple P-LINK Dengan Delphi

Setelah kemarin saya mencoba membuat postingan tentang cara membuat simple SSH sekarang saya akan coba berexperiment membuat simple P-LINK dengan delphi,untuk plink sendiri mungkin bisa teman-teman mencari referensinya lewat mesin pencari google pengertiannya dan fungsi nya apa plink tersebut.Menurut saya pribadi plink tersebut kegunaanya adalah sama halnya dengan bitvise.

Yang Harus Disiapkan

Sebelum membuat project simple plink ini tentu ada beberapa aplikasi yang harus disiapkan yang pertama tentunya adalah aplikasi plink sendiri yang mana bisa didapatkan di situsnya kemudian yang kedua adalah proxifier yang mana disini saya akan coba dengan menggunakan proxifier yang versi install maka proxifier harus di install terlebih dahulu,apabila ingin menggunakan proxifier yang portable bisa juga digunakan dan siapkan versi yang portable tersebut.

Langkah Pembuatan

Baiklah setelah kedua aplikasi tersebut diatas sudah siap langsung ke cara membuatnya dimana setelah dibuka aplikasi delphinya coba tambahkan beberapa komponen pada form yang baru tersebut disini saya coba menambahkan komponen-komponen:
1. 2 buah Groupbox.
2. 6 buah Label.
3. 6 buah Edit.
4. 3 buah Button.
5. 1 buah Checkbox.
6. 1 buah Memo.
7. 1 buah DosCommand.
Kemudian ada beberapa komponen yang saya coba ganti captionnya pada object inspector dan tentu saya coba posisikan komponen-komponen tersebut agar kelihatan rapi,dimana disini saya coba posisikan komponen-komponen tersebut seperti dibawah ini

penambahan komponen pada form
Penambahan Komponen dan Pengaturan Tataletak

Penambahan Unit

Setelah komponen-komponen diletakan sedemikian rupa lanjut untuk ke pengkodingannya sebelum ke pengkodingan dalam membuat project ini ada beberapa unit yang harus ditambahkan pada uses dimana untuk menambahkan unit pada uses bisa dipelajari lagi dipostingan saya sebelumnya bagi yang belum tahu cara menambahkan unit.Unit yang ditambahkan tersebut adalah:
IniFiles, Registry, ShellAPI, TLHelp32.

Pengkodingan

Sebelum ke pengkodingan pada project kita buat suatu folder untuk menambahkan aplikasi plink dan profile proxifier,tetapi apabila menggunakan proxifier yang portable maka aplikasi proxifier portable tersebut bisa ditambahkan di folder ini.

penambahan plink dan profile proxifier
Penambahan Aplikasi Plink Dan Profile Proxifier

Kode Formcreate

Pada project ini (Simple P-Link) yang mana dibuat agar supaya bisa menyimpan suatu config sehingga pada saat project ini dibuka kembali apabila mau digunakan maka tidak perlu lagi kita mensetting ulang untuk mengisi configuration yang diperlukan plink tersebut dan disini untuk cara membuat suatu config bisa dibaca di postingan cara membuat config save dan load.Untuk itu kode buat formcreate nya adalah seperti dibawah ini:
procedure TForm1.FormCreate(Sender: TObject);
begin
  config := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Plink\Config.ini');
  try
  Edit1.Text := config.ReadString('CONFIG', 'Host', Edit1.Text);
  Edit2.Text := config.ReadString('CONFIG', 'Port', Edit2.Text);
  Edit3.Text := config.ReadString('CONFIG', 'User', Edit3.Text);
  Edit4.Text := config.ReadString('CONFIG', 'Pass', Edit4.Text);
  CheckBox1.Checked := config.ReadBool('CONFIG', 'Uproxy', CheckBox1.Checked);
  Edit5.Text := config.ReadString('CONFIG', 'Lproxy', Edit5.Text);
  Edit6.Text := config.ReadString('CONFIG', 'Lport', Edit6.Text);
  finally
  config.Free;
  end;
end;

Kode Save Button

Kemudian untuk kode Save button yang mana disini button1 sebagai save dan difungsikan untuk menyimpan configuration daripada sebuah account ssh yang kita punya dengan mengklik 2 X button1 buat procedurenya sebagai berikut
procedure TForm1.Button1Click(Sender: TObject);
begin
  config := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Plink\Config.ini');
  try
  config.WriteString('CONFIG', 'Host', Edit1.Text);
  config.WriteString('CONFIG', 'Port', Edit2.Text);
  config.WriteString('CONFIG', 'User', Edit3.Text);
  config.WriteString('CONFIG', 'Pass', Edit4.Text);
  config.WriteBool('CONFIG', 'Uproxy', CheckBox1.Checked);
  config.WriteString('CONFIG', 'Lproxy', Edit5.Text);
  config.WriteString('CONFIG', 'Lport', Edit6.Text);
  finally
  config.Free;
  end;
end;

Kode Start Button

Tentunya disini sebelum membuat kode atau procedure untuk button start yang mana disini button2 yang difungsikan sebagai start bagi yang belum menginstall komponen DosCommand bisa dibaca terlebih dahulu dipostingan cara menginstall DosCommand.Apabila komponen DosCommand sudah siap coba klik 2 X button2 tersebut untuk membuat procedurenya yang mana procedurenya adalah sebagai berikut
procedure TForm1.Button2Click(Sender: TObject);
var
  reg: TRegistry;
  path: String;
  pMethode: Integer;
  host, port, user, pass, pHost, pPort: String;
  rPlink: String;
  pf, profPF: String;
begin
  host := Edit1.Text;
  port := Edit2.Text;
  user := Edit3.Text;
  pass := Edit4.Text;
  pHost := Edit5.Text;
  pPort := Edit6.Text;
  if CheckBox1.Checked then
    pMethode := 3
    else begin
    pMethode := 0;
    end;
    reg := TRegistry.Create;
    try
    with reg do begin
    RootKey := HKEY_CURRENT_USER;
    path := '\Software\SimonTatham\PuTTY\Sessions\'+ host;
    if not KeyExists(path) then
    begin
    OpenKey(path, True);
    WriteInteger('Present', 1);
    WriteString('HostName', host);
    WriteInteger('PortNumber', StrToInt(port));
    WriteInteger('PingInterval', 0);
    WriteInteger('PingIntervalSecs', 10);
    WriteInteger('TCPNoDelay', 1);
    WriteInteger('TCPKeepalives', 1);
    WriteInteger('ProxyMethod', pMethode);
    WriteString('ProxyHost', pHost);
    WriteInteger('ProxyPort', StrToInt(pPort));
    WriteString('Cipher', 'blowfish');
    end
    else begin
    OpenKey(path, False);
    WriteInteger('Present', 1);
    WriteString('HostName', host);
    WriteInteger('PortNumber', StrToInt(port));
    WriteInteger('PingInterval', 0);
    WriteInteger('PingIntervalSecs', 10);
    WriteInteger('TCPNoDelay', 1);
    WriteInteger('TCPKeepalives', 1);
    WriteInteger('ProxyMethod', pMethode);
    WriteString('ProxyHost', pHost);
    WriteInteger('ProxyPort', StrToInt(pPort));
    WriteString('Cipher', 'blowfish');
    end;
    end;
    finally
    reg.CloseKey;
    reg.Free;
    end;
    rPlink := ExtractFilePath(Application.ExeName)+'Plink\Plink.exe -v -N -C -D 1080 '+
      user+'@'+host+' -P '+port+' -pw '+pass;
    DosCommand1.CommandLine := rPlink;
    DosCommand1.Execute;
    DosCommand1.OutputLines := Memo1.Lines;
    pf := 'C:\Program Files (x86)\Proxifier\Proxifier.exe';
    profPF := 'Plink\Plink.ppx silent-load';
    ShellExecute(Handle, 'open', PAnsiChar(pf), PAnsiChar(profPF), nil, SW_HIDE);
end;

Membuat Killtask

Selanjutnya sebelum ke pengkodingan button Stop buat terlebih dahulu function Killtask dan procedure CleanUpSystemTray yang mana untuk cara membuatnya bisa baca di postingan close aplikasi dengan killtask.

Kode Stop Button

Terakhir dengan mengklik 2 X Button3 yang mana disini difungsikan untuk button stop yaitu untuk menghentikan aplikasi plink dan proxifier dan procedurenya adalah sebagai berikut
procedure TForm1.Button3Click(Sender: TObject);
var
  reg: TRegistry;
  path, host: String;
begin
  host := Edit1.Text;
  reg := TRegistry.Create;
  try
  with reg do begin
  RootKey := HKEY_CURRENT_USER;
  path := '\Software\SimonTatham\PuTTY\Sessions\'+ host;
  if not KeyExists(path) then
  DeleteKey(path);
  end;
  finally
  reg.CloseKey;
  reg.Free;
  end;
  DosCommand1.Stop;
  Memo1.Clear;
  KillTask('Proxifier.exe');
  CleanUpSystemTray;
end;

Test Project

Setelah semua kode diatas siap coba klik tombol Run atau pada keyboard tekan F9 untuk tes project.

test project simple plink
Tes Project Simple P-Link

Demikianlah untuk postingan kali ini tentang cara membuat simple p-link semoga bermanfa'at dan semoga bisa dikembangkan lagi oleh teman-teman,Nantikan lagi experiment dari saya berikutnya.

Oke Salam Blogger and Happy Koding.

09 February 2016

Cara Membuat SSH Simple Dengan Delphi

Sekarang pada postingan kali ini saya akan mencoba untuk membuat aplikasi dimana aplikasi ini bisa untuk menjalankan bitvise dan juga bagaimana agar sebagian profilenya bisa saya isi dengan perintah delphi dan juga bisa autlogin pada saat di start.
Mungkin teman-teman ada yang belum tahu apa fungsi dan kegunaan dari bitvise tersebut teman-teman bisa membacanya di web resminya bitvise,dan untuk penyetingannya bitvise bisa teman-teman baca dipostingan saya sebelumnya,untuk itu postingan ini saya kasih judul dengan Membuat SSH Simple.

Persiapan

Pada dasarnya bitvise ini ada dua versi yaitu versi instal dan satunya lagi versi portable,disini saya akan mencoba membuat dengan versi yang instal untuk itu persiapkan atau download dahulu  bitvise versi install pada pc dan juga download proxifiernya karena saya akan coba sekaligus untuk bisa menjalankan proxifier tersebut.
Setelah di download kemudian install bitvise dan proxifier tersebut kemudian cari dimana lokasi hasil install dari kedua aplikasi tersebut berada setelah di install, karena disini saya menggunakan OS Windows 64 Bit maka kedua aplikasi tersebut berada pada directory 'C:\Program Files (x86)\Bitvise SSH Client\BvSsh.exe' dan 'C:\Program Files (x86)\Proxifier\Proxifier.exe'.

Langkah Pembuatan

Setelah selesai penginstalan kedua aplikasi tersebut dan sudah didapatkan path atau directory nya kemudian saya buka aplikasi delphinya dan buat project baru kemudian saya coba untuk save dahulu project baru tersebut karena pada project baru tersebut saya akan menambahkan satu folder untuk profile bitvise dan proxifier.

menambahkan profile bitvise dan proxifier
Menambahkan Profile Bitvise dan Proxifier

Kemudian saya kembali lagi ke project dan pada form yang baru saya coba tambahkan beberapa komponen yaitu
1. 2 buah Groupbox.
2. 6 buah Label.
3. 6 buah Edit.
4. 3 buah Button.
Dan saya coba posisikan atau tempatkan tiap-tiap komponen tersebut sehingga tampak seperti gambar di bawah ini

menambahkan komponen pada form dan memposisikan tata letaknya
Menambahkan Beberapa Komponen Pada Form

Source Code

Setelah selesai menempatkan komponen saya lanjutkan untuk ke bagian kode dimana button1 disini saya akan fungsikan untuk menyimpan setingan akun untuk bitvise kemudian button2 akan difungsikan untuk menjalankan bitvise dan proxifier dan button3 akan saya fungsikan untuk menghentikan atau mengeluarkan bitvise dan proxifier.

Penambahan Unit

Dalam pembuatan project ini saya harus menambahkan beberapa unit dalam uses dimana unit tersebut adalah untuk membuat function killtas kemudian unit untuk menyimpan dan satu unnit lagi untuk menjalankan aplikasi bitvise dan proxifier.Untuk itu dalam pembuatan project ini alangkah lebih baik membaca terlebih dahulu postingan berikut dibawah ini


Untuk itu unit yang saya tambahkan adalah IniFiles, ShellAPI dan TLHelp32.

Membuat Function Killtask

Langkah yang pertama saya lakukan adalah pembuatan function killtask yaitu untuk menutup aplikasi bitvise dan proxifier dalam project ini,dimana untuk cara membuatnya telah saya posting sebelumnya pada judul Cara Membuat Killtask.

Kode Formcreate

Setelah membuat function saya coba klik 2X pada form untuk membuat procedure daripada formcreate yang mana pembuatan procedure ini adalah supaya pada saat kita buka aplikasi ssh simple ini bisa membaca atau meload config yang telah disave sebelumnya.Sebelum pada procedure formcreate saya coba tambahkan config: TIniFile dibawah Form1: TForm1,kemudian lanjut ke procedure formcreate dimana procedurenya menjadi seperti dibawah ini
procedure TForm1.FormCreate(Sender: TObject);
begin
  Config := TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'Profile\Config.ini');
  try
  Edit1.Text := Config.ReadString('CONFIG', 'Host', Edit1.Text);
  Edit2.Text := Config.ReadString('CONFIG', 'Port', Edit2.Text);
  Edit3.Text := Config.ReadString('CONFIG', 'User', Edit3.Text);
  Edit4.Text := Config.ReadString('CONFIG', 'Pass', Edit4.Text);
  CheckBox1.Checked := Config.ReadBool('CONFIG', 'Uproxy', CheckBox1.Checked);
  Edit5.Text := Config.ReadString('CONFIG', 'Lproxy', Edit5.Text);
  Edit6.Text := Config.ReadString('CONFIG', 'Lport', Edit6.Text);
  finally
  Config.Free;
  end;
end;

Kode Button Save

Kemudian lanjut ke pembuatan procedure save atau untuk menyimpan disini button1 saya buat untuk tombol save tersebut saya klik 2X button save tersebut kemudian saya buat procedurenya seperti berikut
procedure TForm1.Button1Click(Sender: TObject);
begin
  Config := TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'Profile\Config.ini');
  try
  Config.WriteString('CONFIG', 'Host', Edit1.Text);
  Config.WriteString('CONFIG', 'Port', Edit2.Text);
  Config.WriteString('CONFIG', 'User', Edit3.Text);
  Config.WriteString('CONFIG', 'Pass', Edit4.Text);
  Config.WriteBool('CONFIG', 'Uproxy', CheckBox1.Checked);
  Config.WriteString('CONFIG', 'Lproxy', Edit5.Text);
  Config.WriteString('CONFIG', 'Lport', Edit6.Text);
  finally
  Config.Free;
  end;
end;

Kode Button Start

Saya lanjut lagi untuk pembuatan procedure button Start dimana disini button2 saya buat untuk button start dan saya klik 2X button start tersebut kemudian saya buat procedure nya seperti berikut ini
procedure TForm1.Button2Click(Sender: TObject);
var
  bitvise, loginSSH, profSSH, host, port, user, pass: String;
  lproxy, lport: String;
  pf, profPf: String;
begin
  host := Edit1.Text;
  port := Edit2.Text;
  user := Edit3.Text;
  pass := Edit4.Text;
  lproxy := Edit5.Text;
  lport := Edit6.Text;
  if CheckBox1.Checked then
  begin
    loginSSH := ' -host='+host+' -port='+port+' -user='+user+' -password='+pass+
                ' -proxy=y -proxyType=HTTP -proxyServer='+lproxy+' -proxyPort='+lport+' -loginOnStartup -menu=small';
  end
    else begin
      loginSSH := ' -host='+host+' -port='+port+' -user='+user+' -password='+pass+' -proxy=n -loginOnStartup -menu=small';
      end;
  bitvise := 'C:\Program Files (x86)\Bitvise SSH Client\BvSsh.exe';
  profSSH := ' -profile=Profile\ssh.bscp'+loginSSH;
  pf := 'C:\Program Files (x86)\Proxifier\Proxifier.exe';
  profPf := 'Profile\ssh.ppx silent-load';
  ShellExecute(Handle, 'open', PAnsiChar(bitvise), PAnsiChar(profSSH), nil, SW_HIDE);
  ShellExecute(Handle, 'open', PAnsiChar(pf), PAnsiChar(profPf), nil, SW_HIDE);
end;

Kode Button Stop

Dan yang terakhir lanjut ke button Stop dimana disini button3 saya buat sebagai button stop dan untuk membuat procedure nya saya klik 2X button stop tersebut kemudian saya buat procedurenya seperti ini
procedure TForm1.Button3Click(Sender: TObject);
begin
  KillTask('BvSsh.exe');
  KillTask('Proxifier.exe');
end;
Setelah itu saya kira semua kode sudah siap dan saya coba dengan mengklik Run pada menu atau bisa juga dengan menekan F9 pada keyboard dan coba jalankan aplikasi tersebut kemudian saya tes dari pada semua tombol save,start dan stop ternyata semua sesuai dengan apa yang saya inginkan dengan kata lain project ini success

tes running project ssh simple
Tes Run Project  Ssh Simple

Demikianlah untuk postingan kali ini tentang cara membuat SSH SIMPLE menurut experiment saya semoga postingan ini bermanfaat bagi teman-teman yang ingin mencoba membuat juga dan semoga teman-teman bisa mengembangkannya.Nantikan lagi experiment saya selanjutnya oke sukses selalu.

Salam Blogger And Happy Coding.

04 February 2016

Membuat Config Save Dan Load Dengan Delphi

Dengan keadaan cuaca yang tidak mendukung untuk bermain keluar rumah kemudian saya coba nyalain PC dan saya lanjut bermain-main dengan delphi,untuk kali ini saya ingin mencoba bagaimana cara membuat sebuah config yang mana tujuan pembuatan config ini adalah supaya aplikasi yang dibuat bisa menyimpan dan meload atau menampilkan kembali apa yang telah kita seting.
Sehingga kita tidak usah repot lagi untuk menseting ulang apa yang telah kita coba seting jadi tinggal kita save dan sewaktu mau menggunakannya kembali kita tinggal klik load.Untuk itu maka postingan kali ini saya beri judul dengan Membuat Config Save Dan Load.

Langkah Pembuatan

Baiklah mungkin sudah jelas tujuan postingan untuk kali ini supaya tidak panjang lebar ceritanya saya akan coba langsung ke langkah pembuatan,biasa pertama buka aplikasi delphinya kemudian pada form yang baru saya coba tambahkan beberapa komponen,yang mana komponen yang saya coba tambahkan adalah:
1. 2 Buah Komponen Label.
2. 2 Buah Komponen Edit.
3. 2 Buah Komponen Button.
4. 1 Buah Komponen Checkbox.
5. 2 Buah Komponen Radiobutton.
Kemudian saya coba posisikan atau mengatur tata letak masing-masing komponen tersebut bagaimana supaya kelihatan tampak bagus,dan saya coba posisikan seperti pada gambar dibawah ini

pengaturan tata letak komponen
Pengaturan Posisi Komponen

Mengganti Properties Caption Dan Text Komponen 

Kemudian pada masing-masing komponen pada object inspetor saya coba ganti seperti:
- komponen label saya ganti captionnya dengan Nama dan No HP kemudian 
- komponen button saya coba ganti captionnya dengan SAVE dan LOAD dan untuk 
- komponen edit saya coba ganti properties Text nya dengan Nama dan No Handphone kemudian untuk 
- komponen checkbox dan radiobutton saya coba ganti captionnya dengan Jenis Kelamin, Laki-laki dan Perempuan ini hanya untuk experimen saya aja.

Pengkodingan

Setelah itu saya coba lanjut ke text editornya untuk membuat kodingannya agar contoh dari aplikasi yang akan saya buat ini bisa jalan dengan tujuannya yang mana yaitu aplikasi ini bisa membuat sebuah config kemudian bisa save dan tentu harus bisa load atau menampilakan apa yang telah di save.
Disini pertama saya coba tambahkan pada uses yaitu unit IniFiles atau bisa teman-teman baca di postingan cara membuka dan menutup aplikasi lain untuk menambahkan unit pada uses,terus saya coba membuat variable config yang mana coba saya letakan dibawah var Form1: TForm1 jadinya seperti pada gambar dibawah ini

menambahkan variable config
Menambahkan Variable Config

Koding Button SAVE

Setelah itu saya lanjut untuk membuat procedure untuk button SAVE sesuai dengan namanya jadi button ini saya buat untuk bisa menyimpan pada config dengan cara mengklik 2X button SAVE kemudian saya tambahkan beberapa kodingan pada procedure button tersebut,dimana procedure tersebut menjadi seperti berikut dibawah ini
procedure TForm1.Button1Click(Sender: TObject);
begin
  config := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'config.ini');
  try
    config.WriteString('CONFIG', 'NAMA', Edit1.Text);
    config.WriteString('CONFIG', 'NOHP', Edit2.Text);
    config.WriteBool('CONFIG', 'JKEL', CheckBox1.Checked);
    config.WriteBool('CONFIG', 'LAKI', RadioButton1.Checked);
    config.WriteBool('CONFIG', 'PEREM',  RadioButton2.Checked);
    finally
    config.Free;
    end;
end;

Koding Button LOAD

Kemudian lanjut untuk membuat procedure button LOAD yaitu saya fungsikan button ini untuk supaya bisa menampilkan kembali apa yang telah di SAVE dimana procedure untuk button LOAD tersebut adalah seperti berikut 
procedure TForm1.Button2Click(Sender: TObject);
begin
  config := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'config.ini');
  try
    Edit1.Text := config.ReadString('CONFIG', 'NAMA', Edit1.Text);
    Edit2.Text := config.ReadString('CONFIG', 'NOHP', Edit2.Text);
    CheckBox1.Checked := config.ReadBool('CONFIG', 'JKEL', CheckBox1.Checked);
    RadioButton1.Checked := config.ReadBool('CONFIG', 'LAKI', RadioButton1.Checked);
    RadioButton2.Checked := config.ReadBool('CONFIG', 'PEREM', RadioButton2.Checked);
    finally
    config.Free;
    end;
end;

Tes Run Aplikasi

Setelah kodingan tersebut diatas saya buat langkah terahir adalah saya coba run atau tekan F9 kemudian saya coba mengisi kolom edit1 dan edit2 dan di ceklis pada checkbox dan radiobutton1 kemudian saya coba klik tombol SAVE setelah itu saya coba tutup aplikasi tersebut kemudian saya coba run lagi kemudian saya klik button LOAD dan ahirnya tampil cocok seperti yang di SAVE sebelumnya.

tes runing aplikasi save and load
Tes Running Project Save and Load

Demikian experimen saya tentang cara membuat config serta bisa SAVE dan LOAD semoga postingan ini bermanfaat bagi teman-teman dan bisa teman-teman kembangkan lagi.Nantikan lagi experimen selanjutnya dari saya.Apabila teman-teman ada yang kurang jelas atau ada saran silahkan tulis di komentar,Terima Kasih.

Ok Salam Blogger And Happy Coding.

02 February 2016

Close Aplikasi Lain Dengan Killtask Dan Cleanupsystemtray Di Delphi

Sebenarnya pada postingan untuk kali ini fungsinya sama dengan postingan kemarin yaitu tentang cara menutup aplikasi lain dengan delphi tetapi untuk kali ini saya coba dengan menggunakan sebuah fungsi.
Dimana apabila dengan cara pada postingan kemarin untuk menutup aplikasi lain tidak bisa maka dengan cara kali ini mungkin bisa sebagai alternatip untuk melakukan proses close aplikasi.

Langkah Pembuatan

Karena untuk kali ini saya akan mencoba dengan menggunakan sebuah fungsi maka saya kemudian membuka aplikasi delphinya dulu dan saya coba tambahkan pada Form 2 buah Button dimana satu button untuk membuka aplikasi dan satu button lagi untuk menutup aplikasi yang di telah dibuka saya posisikan button tersebut pada form seperti pada gambar berikut dibawah ini

penambahan komponen button pada form
Penambahan 2 Buah Button

Kode Function Killtask

Disini saya akan coba membuat sebuah function Killtask yaitu fungsinya untuk menutup aplikasi,karena disini akan saya coba untuk membuat fungsi dan dimana untuk membuat fungsi ini perlu tambahan unit pada uses yang mana unitnya adalah TLHelp32,setelah saya coba tambahkan unit tersebut pada uses kemudian pada kode editor saya coba buat kode function sebagai berikut
function KillTask(ExeFileName: string): integer;
const
  PROCESS_TERMINATE = $0001;
var
  ContinueLoop: BOOL;
  FSnapshotHandle: THandle;
  FProcessEntry32: TProcessEntry32;
begin
  Result := 0;
  FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
  ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
  while Integer(ContinueLoop) <> 0 do
  begin
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
      UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
      UpperCase(ExeFileName))) then
      Result := Integer(TerminateProcess(
                        OpenProcess(PROCESS_TERMINATE,
                                    BOOL(0),
                                    FProcessEntry32.th32ProcessID),
                                    0));
     ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
  end;
  CloseHandle(FSnapshotHandle);
end;

Procedure Cleanup system Tray

Selain itu disini saya akan coba dengan membuat sebuah procedure CleanUpSystemTray yang mana fungsinya adalah untuk merefresh icon aplikasi yang diclose yang masih tertinggal pada sysytem tray,dan disini saya perlu tambahan unit ShellApi pada uses yang mana procedurenya adalah sebagai berikut
procedure CleanUpSystemTray;
var
  hTaskbar: HWND;
  hSysTray: HWND;
  R: TRect;
  iXPos: Integer;
  iYPos: Integer;
  iLeft: Integer;
  iRight: Integer;
  iTop: Integer;
  iBottom: Integer;
  iMouseFlag: Integer;
  p: TPoint;
const
  cMax = 65535;
  cXStep = 1000;
  cYStep = 100;
begin
    hTaskbar := FindWindow(PChar('Shell_TrayWnd'), nil);
    hSysTray := FindWindowEx(hTaskbar, 0, 'TrayNotifyWnd', nil);
    GetWindowRect( hSysTray, R );
    iLeft       := R.Left   * cMax div Screen.Width;
    iRight      := R.Right  * cMax div Screen.Width;
    iTop        := R.Top    * cMax div Screen.Height;
    iBottom     := R.Bottom * cMax div Screen.Height;
    GetCursorPos(p);
    iMouseFlag  := MOUSEEVENTF_MOVE + MOUSEEVENTF_ABSOLUTE;
    iXPos := iLeft;
    repeat
      iYPos := iTop;
      repeat
        mouse_event(iMouseFlag, iXPos, iYPos, 0, 0);
        iYPos := iYPos + cYStep;
      until iYPos >= iBottom;
        iXPos := iXPos + cXStep;
      until iXPos >= iRight;
        SetCursorPos(p.x, p.y);
end;

Procedure Button Open

Disini saya akan mencobanya dengan membuka sebuah aplikasi Bitvise yang mana aplikasi bitvise ini berada di folder C:\Program Files (x86)\Bitvise SSH Client\BvSsh.exe karena saya menggunakan OS 64Bit apabila menggunakan OS 32Bit mungkin posisi bitvise berada di C:\Program Files\Bitvise SSH Client\BvSsh.exe.Dan untuk procedure button1 yang mana difungsikan untuk membuka bitvise maka saya coba dengan membuat procedurenya sebagai berikut
procedure TForm1.Button1Click(Sender: TObject);
var
  bitvise: String;
begin
  bitvise := 'C:\Program Files (x86)\Bitvise SSH Client\BvSsh.exe';
  ShellExecute(Handle, 'open', PAnsiChar(bitvise), nil, nil, SW_NORMAL);
end;

procedure Button Close

Untuk button2 yang mana saya coba difungsikan untuk menutup bitvise yang telah dibuka,yang mana untuk procedurenya saya buat sebagai berikut
procedure TForm1.Button2Click(Sender: TObject);
begin
  KillTask('BvSsh.exe');
  CleanUpSystemTray;
end;

Setelah saya buat procedure semua tersebut diatas kemudian saya coba Run untuk melihat apakah berfungsi dan kemudian saya coba klik tombol open dan tombol close setelah itu ahirnya hasilnya wow...

test killtask dan cleanupsystemtray
Tes Running

Demikianlah untuk postingan kali ini sesuai dengan judul diatas semoga dengan postingan ini bermanfa'at bagi teman-teman.

Ok Salam Blogger And Happy Coding.