Post Data Dari Bahasa Delphi Ke PHP dengan idHTTP

Bahasa pemroraman delphi dan php adalah dua bahasa pemrograman yang berbeda, namun kedua bahasa tersebut dapat melakukan transaksi data, misal delphi sebagai client dan php sebagai bahasa sever / web service. (Kalau di film kartun dragon ball seperti melakukan jurus fusion dan bisa menjadi kekuatan yang hebat). Namun untuk pemula yang masih bingung dengan bahasa delphi atau php mungkin bisa memperdalam dulu bahasanya. Dibawah ini merupakan contoh program untuk mengirim data dari aplikasi delphi ke php.

[ lihat-gambar-di-file-pdf ]

Pasa button1 masukan kode berikut.

Script delphi

procedure TForm1.Button1Click(Sender: TObject);
Var
  params : TStringList;
begin
  params := TStringList.Create;
  params.Add('a='+'hello');
  memo1.Text := idhttp1.Post('http://localhost/test/hallo.php', params);
  params.free;
end;

atau kode

procedure TForm1.Button1Click(Sender: TObject);
Var
  params : TStringList;
  res : TStringStream;
begin
  params := TStringList.Create;
  params.Add('a='+'hello');
  res := TStringStream.Create('');
  idhttp1.Post('http://localhost/test/hallo.php', params, res);
  ShowMessage(res.DataString);
  res.Free;
  params.free;
end;

Script PHP

Simpan di c:\xampp\htdocs\test\hallo.php

<?php
echo $_POST["a"];

Terus coba di running program delphi tersebut, kemudian di klik button1 maka akan muncul gambar seperti dibawah.

[ lihat-gambar-di-file-pdf ]

Semoga bermanfaat, wassalam.

Silahkan download untuk versi pdf di bawah ini.

 

download-pdf-button

Menjalanakan perintah cmd dengan Delphi 7

Command prompt windows atau biasa dipanggil dengan cmd memiliki banyak fungsi yang sering kita tidak ketahui oleh kita dikarenakan sudah terbiasa dengan fasilitas GUI nya windows. Silahkan cari di google untuk lebih lengkapnya.

Bagaimana cara untuk menjalankan perintah cmd di delphi? contoh untuk menjalankan command line windows di delphi adalah sebagai berikut.

Contoh kasus adalah untuk menghentikan proses aplikasi notepad.exe dengan menggunakan perintah cmd window yaitu dengan perintah

c:\taskkill -f /im notepad.exe

bagaimana dengan menggunakan delphi, kodenya adalah sebagi berikut.

ShellExecute(0, 'open', 'taskkill', PChar('-f /im "notepad.exe"'), nil, SW_HIDE);

Kode ini bisa di simpan atau di panggil sesuai dengan kebutuhan programmer.
Dan jangan lupa untuk memanggil library ShellApi untuk menjalankannyan.

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ShellApi, ExtCtrls, StdCtrls, Registry;

Semoga bermanfaat. wassalam.

Write dan Delete Registry Dengan Delphi 7

endang-registry

Registry, dalam platform sistem operasi Microsoft Windows 32-bit, merupakan sebuah basis data yang disusun secara hierarkis yang mengandung informasi mengenai konfigurasi sebuah sistem, mulai dari konfigurasi perangkat keras, perangkat lunak, asosiasi ekstensi berkas dengan aplikasinya hingga preferensi pengguna.

Delphi memungkinkan untuk melakukan perubahan pada registry windows, seperti pada contoh untuk menysipkan aplikasi kedalam startup windows, jadi ketika windows di mulai maka aplikasi otomatis terbuka.

endang-delphi-window-form

kode di sisipkan di dalam aksi onclick button.

procedure TForm1.Button1Click(Sender: TObject);
var
reg: TRegistry;
begin
reg := TRegistry.Create(KEY_SET_VALUE);
try
reg.RootKey := HKEY_CURRENT_USER;
if reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run\', true) then
ShowMessage('Restart untuk aktifkan aksi ini');
try
reg.WriteString(ExtractFileName(Application.ExeName), Application.ExeName);
finally
reg.CloseKey;
end;
finally
reg.Free;
end;
end;

Kode berfungsi untuk membuka menuliskan aplikasi dan path aplikasi kedalam registry.

procedure TForm1.Button2Click(Sender: TObject);
var
reg: TRegistry;
begin
reg := TRegistry.Create(KEY_SET_VALUE);
try
reg.RootKey := HKEY_CURRENT_USER; // or HKEY_CURRENT_USER
if reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run\', true) then
try
if Reg.DeleteValue(ExtractFileName(Application.ExeName)) then
ShowMessage('Restart untuk aktifkan aksi ini');
finally
reg.CloseKey;
end;
finally
reg.Free;
end;
end;

Kode diatas digunakan untuk menghapus key yang tadi dimasukan diregistry.

reg.RootKey := HKEY_CURRENT_USER;

Penyimpaan RootKey ada di HKEY_CURRENT_USER, dikarenakan autorisasi yang bisa Open atau bisa digunakan adalah key tersebut. Untuk rootkey yang sensitif mungkin harus menggunkan hak akses tertentu dengan metode tertentu. Semoga bermanfaat, wassalam.

Membaca data json dengan delphi 7

Berikut kode untuk membaca data json dengan delphi 7.

uses
 IdHTTP, IdException, IdStack, uLkJSON;

procedure TForm1.Button1Click(Sender: TObject);
var
 sJSON: String;
 js, Items, Item: TlkJSONBase;
 I, J: Integer;
 IdHTTP: TIdHTTP;
 resp: TMemoryStream;
begin
 IdHTTP := TIdHTTP.Create(Self);
 resp := TMemoryStream.Create;
 try
 try
 IdHTTP.Get('http://localhost/experiments/json/index.txt', resp);
 resp.Position := 0;
 memo1.Lines.LoadFromStream(resp);

SetLength(sJSON, resp.Size);
 resp.Position := 0;
 resp.Write(sJSON[1], Length(sJSON));

js := TlkJSON.ParseText(sJSON);
 for I := 0 to Pred(js.Count) do
 begin
 Items := js.Child[I].Field['items'];
 for J := 0 to Pred(Items.Count) do begin
 Item := Items.Child[J];
 Memo2.Lines.Add(VarToStr(Item.Field['region_id'].Value));
 Memo2.Lines.Add(VarToStr(Item.Field['average_cover'].Value));
 Memo2.Lines.Add(VarToStr(Item.Field['average_growth'].Value));
 end;
 end;

except
 // this exception class covers the HTTP protocol errors; you may read the
 // response code using ErrorCode property of the exception object, or the
 // same you can read from the ResponseCode property of the TIdHTTP object
 on E: EIdHTTPProtocolException do
 ShowMessage('Indy raised a protocol error!' + sLineBreak +
 'HTTP status code: ' + IntToStr(E.ReplyErrorCode) + sLineBreak +
 'Error message' + E.Message);
 // this exception class covers the cases when the server side closes the
 // connection with a client in a "peaceful" way
 on E: EIdConnClosedGracefully do
 ShowMessage('Indy reports, that connection was closed gracefully!');
 // this exception class covers all the low level socket exceptions
 on E: EIdSocketError do
 ShowMessage('Indy raised a socket error!' + sLineBreak +
 'Error code: ' + IntToStr(E.LastError) + sLineBreak +
 'Error message' + E.Message);
 // this exception class covers all exceptions thrown by Indy library
 on E: EIdException do
 ShowMessage('Indy raised an exception!' + sLineBreak +
 'Exception class: ' + E.ClassName + sLineBreak +
 'Error message: ' + E.Message);
 // this exception class is a base Delphi exception class and covers here
 // all exceptions different from those listed above
 on E: Exception do
 ShowMessage('A non-Indy related exception has been raised!');
 end;
 finally
 IdHTTP.Free;
 resp.Free;
 end;
end;


Untuk membaca json, kode diatas menggunakan library tambahan yaitu lkjson.  Wassalam.

Contoh kode delphi untuk mendapatkan respon alamat situs

Contoh kode delphi untuk mendapatkan respon alamat situs adalah sebagai berikut.

uses
 IdHTTP, IdException, IdStack;

procedure TForm1.Button1Click(Sender: TObject);
var
 IdHTTP: TIdHTTP;
 resp: TMemoryStream;
begin
 IdHTTP := TIdHTTP.Create(Self);
 resp := TMemoryStream.Create;
 try
 try
 IdHTTP.Get('http://www.example.com', resp);
 resp.Position := 0;
 memo1.Lines.LoadFromStream(resp);
 except
 // this exception class covers the HTTP protocol errors; you may read the
 // response code using ErrorCode property of the exception object, or the
 // same you can read from the ResponseCode property of the TIdHTTP object
 on E: EIdHTTPProtocolException do
 ShowMessage('Indy raised a protocol error!' + sLineBreak +
 'HTTP status code: ' + IntToStr(E.ReplyErrorCode) + sLineBreak +
 'Error message' + E.Message);
 // this exception class covers the cases when the server side closes the
 // connection with a client in a "peaceful" way
 on E: EIdConnClosedGracefully do
 ShowMessage('Indy reports, that connection was closed gracefully!');
 // this exception class covers all the low level socket exceptions
 on E: EIdSocketError do
 ShowMessage('Indy raised a socket error!' + sLineBreak +
 'Error code: ' + IntToStr(E.LastError) + sLineBreak +
 'Error message' + E.Message);
 // this exception class covers all exceptions thrown by Indy library
 on E: EIdException do
 ShowMessage('Indy raised an exception!' + sLineBreak +
 'Exception class: ' + E.ClassName + sLineBreak +
 'Error message: ' + E.Message);
 // this exception class is a base Delphi exception class and covers here
 // all exceptions different from those listed above
 on E: Exception do
 ShowMessage('A non-Indy related exception has been raised!');
 end;
 finally
 IdHTTP.Free;
 resp.Free;
 end;
end;

Cek status koneksi domain dengan menggunakan script delphi

Kode untuk cek status koneksi domain dengan menggunakan script delphi

uses
 IdHTTP, IdException, IdStack;

procedure TForm1.Button1Click(Sender: TObject);
var
 IdHTTP: TIdHTTP;
begin
 IdHTTP:= TIdHttp.Create(Application);
 try
 IdHTTP.host:=('google.ru');
 IdHTTP.connect;
 if IdHTTP.Connected=false then
 begin
 ShowMessage('Connected false');
 IdHTTP.Disconnect;
 end
 else
 begin
 ShowMessage('Connected true');
 end;
 except
 ShowMessage('Host not found');
 end;
end;

Cek Alamat Domain Dengan Delphi 7

Melakukan pengecekan alamat domain dengan menggunakan bahasa pemrograman delphi 7, berikut adalah cuplikan kodenya.

uses
 IdHTTP, IdException, IdStack;

procedure TForm1.Button1Click(Sender: TObject);
var
 IdHTTP: TIdHTTP;
begin
 IdHTTP := TIdHTTP.Create(Self);
 try
 try
 IdHTTP.Get('http://www.example.com');
 except
 // this exception class covers the HTTP protocol errors; you may read the
 // response code using ErrorCode property of the exception object, or the
 // same you can read from the ResponseCode property of the TIdHTTP object
 on E: EIdHTTPProtocolException do
 ShowMessage('Indy raised a protocol error!' + sLineBreak +
 'HTTP status code: ' + IntToStr(E.ReplyErrorCode) + sLineBreak +
 'Error message' + E.Message);
 // this exception class covers the cases when the server side closes the
 // connection with a client in a "peaceful" way
 on E: EIdConnClosedGracefully do
 ShowMessage('Indy reports, that connection was closed gracefully!');
 // this exception class covers all the low level socket exceptions
 on E: EIdSocketError do
 ShowMessage('Indy raised a socket error!' + sLineBreak +
 'Error code: ' + IntToStr(E.LastError) + sLineBreak +
 'Error message' + E.Message);
 // this exception class covers all exceptions thrown by Indy library
 on E: EIdException do
 ShowMessage('Indy raised an exception!' + sLineBreak +
 'Exception class: ' + E.ClassName + sLineBreak +
 'Error message: ' + E.Message);
 // this exception class is a base Delphi exception class and covers here
 // all exceptions different from those listed above
 on E: Exception do
 ShowMessage('A non-Indy related exception has been raised!');
 end;
 finally
 IdHTTP.Free;
 end;
end;

Sederhana tinggal copas, selamat mempelajari. wassalam.