RTTI (Run Time Type Information)


Anda Delphi programmer? Pernah menggunakan fitur RTTI? Kalau sudah pernah menggunakan operator is dan as, anda dapat dikatakan sudah pernah menggunakan fitur RTTI (Run Time Type Information). Hal lain adalah ketika Anda membutuhkan tipe data dan konstanta enumerasi, seringkali Anda membutuhkan nilai String dari nama enumerasinya. Hal termudah namun merepotkan memang membuat fungsi yang memetakan dari setiap nilai enum ke stringnya. Dengan fitur RTTI dari unit TypInfo, Anda dapat melakukannya dengan mudah secara programming.

Contoh:

unit TestingRTTI;

interface

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

type
TForm3 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TPerkakasDapur = (pdPisau, pdGarpu, pdPiring, pdGelas);

var
Form3: TForm3;

implementation

uses TypInfo;

{$R *.dfm}

procedure TForm3.FormCreate(Sender: TObject);
begin
showMessage(GetEnumName(TypeInfo(TPerkakasDapur), integer(pdGarpu))) ;
end;

end.

Aplikasi di atas akan menampilkan string dalam message box : pdGarpu

Coba tengok caranya untuk dua arah, dari string ke enum, dan dari enum ke string di sini. Punya pengalaman menarik untuk dishare tentang RTTI? Atau link menarik tentang RTTI seperti ini misalnya? Share dunk..

Tambahan url keren ttg RTTI:

http://robstechcorner.blogspot.com/search/label/RTTI

Diterbitkan oleh

wisnuwidiarta

Hi, my name is Wisnu Widiarta. I am a movie lover and love traveling especially camping and doing outdoor activities. Coding and problem solving in general are things I love as well.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google

You are commenting using your Google account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.