Programlarınıza sürpriz ekleyin. (Easter Egg)

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Programlarınıza sürpriz ekleyin. (Easter Egg)

Mesaj gönderen fduman »

Genelde yazılımlarda gelenektir. Kullanıcı programda belirli bir kelimeyi yazdığında birşeyler aktif olur. Quake GOD MODE'a geçer. Word Quick brown fox... yazar, Delphi geliştiricilerinin isimlerini star wars stili gösterir vs.. Bu yazımda, uygulamalarınıza sürpriz ekranları nasıl ekleyeceğinizi göstermeye çalışacağım.

1. Öncelikle sürpriz yumurta (diyeyim artık) 'yı ekleyeceğiniz Form'un KeyPreview property'sini True konuma getirin :!: ki başka bir component'e focusluyken bile basılan tuşları alabilelim.

2. Daha sonra Formunuzun class tanımına sürpriz için kullanacağımız değeri tutacak alanı ekleyelim.

Kod: Tümünü seç

type
  TForm1 = class(TForm)
    .......
  private
    { Private declarations }
     FEasterString: string;  // !!! İşte bunu ekleyin.
  public
    { Public declarations }
  end;
3. Gerekli kodu yazın. Koddaki EasterEgg değerini kendi istediğiniz birşey ile değiştirebilirsiniz. Ben "DELPHI TURKIYE" yaptım. Büyük/küçük harf duyarlı olduğunu unutmayın. Kodu denerken büyük harflerle yazmalısınız.

Kod: Tümünü seç

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
const
  EasterEgg = 'DELPHI TURKIYE';
begin
  // Kullanıcının bastığı tuşlar FEasterString olarak depolanır
  FEasterString := FEasterString + Key;
  // Şu ana kadar depolanan FEasterString, boyutu kadar
  // EasterEgg string'i ile karşılaştırılır.
  // Fark varsa şu ana kadar depolanan karakterler silinir.
  // Kullanıcının yeniden giriş yapması gerekir.
  if Copy(EasterEgg, 1, Length(FEasterString)) <> FEasterString then
    FEasterString := ''
  else
    // Aynı ise EasterEgg karakter boyutuna ulaşıp ulaşmadığı
    // kontrol edilir. Ulaşmışsa istenilen bir sürpriz kullanıcıya
    // gösterilir.
    if Length(FEasterString) = Length(EasterEgg) then
      ShowMessage('GOD MODE ON :)');
end;
4. Kullanıcı DELPHI TURKIYE yazdığında ShowMessage ile bir mesaj göstermeyi tercih ettim. Siz başka şeyler yapabilirsiniz. Ne bileyim, bir tetris oyunu açabilir, bir resim gösterebilir, yazılımın kaynak kodlarını kullanıcıya açabilirsiniz. :)

5. Dikkat ettiyseniz runtime'da DELPHI TURKIYE yi yazarken herhangi bir hata yapılırsa, en baştan yazmanız gerekecektir.

Kolay gelsin.
Kullanıcı avatarı
kelaynak2
Üye
Mesajlar: 135
Kayıt: 30 Haz 2003 02:18

Re: Programlarınıza sürpriz ekleyin. (Easter Egg)

Mesaj gönderen kelaynak2 »

Gerçekten kısa kodla yazılmış etkili bir örnek.
Registery kullanılarak aynı kelimeyi yeniden yazmaya gerek duymadan belli özellikler aktif gösterilebilir.
Cevapla