Kamis, 25 Desember 2008

Singleton : Makhluk yang kesepian

huwaaah.. ntah mungkin gara - gara beneran kesepian atau gimana.. jadi pingin ngeposting masalah singleton..

singleton ini mantab banget loh.. dia ini salah satu pattern yang bisa dibilang sering digunakan.. Jadi singleton ini adalah sebuah objek (biasanya digambarkan dengan class) yang hanya ada satu di seluruh aplikasi.. biasanya kan kalo kita abis buat class terus kita new - new gitu.. nah kalo singleton nggak bisa dibuat.. dia cuma bisa digunakan.. bingung?? semakin menarik.. :P

gini2 contohnya kita ngebuat game.. nah kan karakter utama cuma ada 1 doang kan di seluruh game (tergantung gamenya sih.. -___-). Mau itu game udah pindah - pindah map, udah beli barang, udah bertarung, udah mati mungkin.. tapi karakternya masih sama - sama aja kan..

nah itu tadi penjelasan dan gunanya.. sekarang gimana sih cara ngebuatnya??

class Karakter
{
public int HP;
public int MP;
public int Attack;
public int Defence;

private static Karakter instance = new Karakter();
public static Karakter GetSingleton()
{
return instance;
}

private Karakter()
{
HP = 100;
MP = 50;
Attack = 97;
Defence = 68;
}
}


nah itu cara buatnya.. terus gimana sih cara makenya??
kalo mau ngakses karakter yang itu.. kita tinggal panggil aja singletonnya.. misalnya mau ngeliat hpnya maka..

C++ : cout << Karakter.GetSingleton().HP << endl;
C# : Console.WriteLine(Karakter.GetSingleton().HP);
Java : System.out.println(Karakter.GetSingleton().HP);


yah intinya mah itu.. dan yang perlu diingat perintah itu bisa dijalankan dimanapun anda menuliskannya.. kenapa?? karena dia GetSingleton adalah public static dia bisa diakses, diubah, dan diaapa - apain darimanapun.. menarik bukan??

nah cocok banget nih.. buat misalnya database, atau karakter sebuah game, atau biasanya form di C# juga bisa sih.. hehehe.. yah.. dicoba - coba aja yah..

Selamat mencoba.. ^_^

Rabu, 24 Desember 2008

Menyalin teks di textbox ke clipboard sebagai gambar

intinya sih mudah..

1. Mengubah teks di textbox menjadi gambar
2. Mengeset gambar itu ke dalam clipboard

biasanya ini berguna kalo mau bikin program yang mau format tulisannya nggak berubah - berubah.. misalnya untuk teks - teks yang pake unicode (contohnya : bahasa arab)

1. Mengubah teks di textbox menjadi gambar

private Bitmap CreateBitmap(string tImageText)
private Bitmap CreateBitmapImage(string sImageText)
{
Bitmap bmpImage = new Bitmap(1, 1);
int iWidth = 0;
int iHeight = 0;

Font MyFont = new Font("Verdana", 24, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);

StringFormat strFormat = new StringFormat();
strFormat.Alignment = StringAlignment.Far;

Graphics MyGraphics = Graphics.FromImage(bmpImage);

iWidth = (int)(MyGraphics.MeasureString(sImageText, MyFont, 1000).Width * 1.25);
iHeight = (int)MyGraphics.MeasureString(sImageText, MyFont).Height * 5;

bmpImage = new Bitmap(bmpImage, new Size(iWidth, iHeight));

Rectangle rect = new Rectangle(0, 0, iWidth, iHeight);

MyGraphics = Graphics.FromImage(bmpImage);
MyGraphics.Clear(Color.White);
MyGraphics.TextRenderingHint = TextRenderingHint.AntiAlias;
MyGraphics.DrawString(sImageText, MyFont, new SolidBrush(Color.Black), rect, strFormat);
MyGraphics.Flush();

return bmpImage;
}


2. Mengeset gambar itu ke dalam clipboard

//Dimisalkan textbox yang akan dicopy adalah textBox1
Clipboard.SetImage(CreateBitmapImage(temp));

Setelah gambar itu masuk ke dalam clipboard, anda dapat mempastenya dimanapun.. di word misalnya atau di paint...

Selamat mencoba.. ^_^