Cara sederhana membuat tampilan UNICODE pada Delphi 2006 kebawah

Apakah UNICODE itu?

UNICODE adalah suatu standar industri yang dirancang untuk mengijinkan teks dan simbol dari semua tulisan di dunia untuk ditampilkan dan dimanipulasi secara konsisten oleh komputer.

Dengan UNICODE kita dapat menampilkan teks atau simbol khusus (kode ASCII diatas 255) seperti tulisan Arab, China, Latin dan lain-lain.

Pada UNICODE setiap karakter disimpan dalam 2 byte (2x karakter biasa), sehingga memungkinkan ada $FFFF (65535 karakter).

Dukungan Delphi terhadap UNICODE dimulai sejak Delphi 2009, lalu bagaimana nasib pengguna Delphi dibawah 2009, apakah harus gigit jari ..?

Tenang  ….. , dengan trik sederhana kita pengguna Delphi yang belum mendukung UNICODE (Delphi 2006 atau bahkan Delphi 7) dapat menikmati tampilan UNICODE tanpa hapus menginstall komponen tambahan.

Sudah gak sabar ya ..

Langsung aja deh ini penampakannya ..
unicode.jpg

Ini source kodenya

unit main;

interface

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

type
  TFMain = class(TForm)
    procedure FormPaint(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FMain: TFMain;

const
     arbBasmalah: array[0..30] of WideChar =
                  (#$0628,#$0640,#$0633,#$0640,#$0640,
                  #$0640,#$0640,#$0640,#$0640,#$0640,
                  #$0640,#$0645,#$0020,#$0627,#$0644,
                  #$0644,#$0647,#$0020,#$0627,#$0644,
                  #$0631,#$062D,#$0645,#$0646,#$0020,
                  #$0627,#$0644,#$0631,#$062D,#$064A,
                  #$0645);
     arbImam: array[0..8] of WideChar = (#$0627,#$0645,#$0627,#$0645,
	          #$0020,#$062D,#$0627,#$0644,#$0645);

implementation

{$R *.dfm}

procedure TextSizeW(Canvas:TCanvas;ws:WideString;var sz:TSize);
begin
     GetTextExtentPoint32W(Canvas.Handle,PWideChar(ws),Length(ws),sz);
end;

procedure TulisUnicode(Canvas:TCanvas;Left,Top:Integer;sText:WideString);
var
   r: TRect;
   sz: TSize;
begin
     with Canvas do
     begin
          TextSizeW(Canvas,sText,sz);
          r:=Rect(Left,Top,Left+sz.cx,Top+sz.cy);
          DrawTextW(Handle,PWideChar(sText),Length(sText),r,DT_CENTER);
     end;
end;

procedure TFMain.FormPaint(Sender: TObject);
begin
     with Canvas do
     begin
          Brush.Style:=bsClear;
          with Font do
          begin
               Name:='Times New Roman';
               Size:=40;
               Color:=clGreen;
          end;
     end;
     TulisUnicode(Canvas,10,10,arbBasmalah);
     Canvas.Font.Color:=clMaroon;
     TulisUnicode(Canvas,10,100,arbImam);
end;

end.

Kalo males ngoding sendiri, boleh langsung download aja disini

https://www.box.com/s/kbax7j9xur8ienj8v3vw

Catatan:
Telah diuji menggunakan Turbo Delphi 2006 dan Delphi 7
Tools untuk mempermudah generate array akan di posting menyusul

== Semoga Bermanfaat ==

Sumber mengenai UNICODE dapat dibaca di

http://edn.embarcadero.com/article/38437
http://en.wikipedia.org/wiki/Unicode
http://id.wikipedia.org/wiki/Unicode

9 Comments to Cara sederhana membuat tampilan UNICODE pada Delphi 2006 kebawah

  1. Joko Rivai says:

    Top markotop..
    tinggal nyari referensi huruf arabnya πŸ™‚

  2. Imam Chalimi says:

    Masih ada lanjutannya bang, ada tool untuk nulis arabnya, juga ada tool (full source) untuk convert ke arraynya πŸ˜€

  3. mantur suwun pak ilmune semoga bermanfaat

  4. Beri says:

    mantap bang, ijin copy bang buat referensi temen2 delphier Banten.

  5. Imam Chalimi says:

    Alhamdulillah kalo bermanfaat πŸ˜€

  6. Rofik Irfanto says:

    siiipp pak,,,, tetap semangat untuk berbagi ya pak,,, semoga bermanfaat ,dan dinilai amal jariyah .amiiinn

  7. Imam Chalimi says:

    Terimakasih mas Rofik πŸ˜€

  8. Tajrin says:

    Permisi bapak-bapak sekalian.
    Bagaimana caranya menginput teks arab di
    Delphi 7?.trmksh.

Leave a Reply to Imam Chalimi Cancel reply

Your email address will not be published. Required fields are marked *