Delphi – Kreiranje uskršnjih jaja

U tehničkoj terminologiji, uskršnja jaja (engl. easter eggs) ne predstavljaju šarena jaja koja se daruju tokom uskršnjih praznika. Uskršnja jaja su oduvek predstavljala mogućnost za dizajnere i programere da demonstriraju sopstveni ponos unutar svojih proizvoda, čiji razvoj ponekad traje mesecima ili čak godinama.

Najčešće se uskršnja jaja koriste za predstavljanja razvojnog tima (da bi korisnici njihovog softvera znali ko je uložio mnogo rada i truda) ili za prikaz neke humoristične poruke. Da bi korisnici videli uskršnja jaja, moraju da saznaju specijalnu proceduru ili kombinaciju tastera, klik na odgovarajuće mesto ili da edituju odgovarajući fajl.

Drugim rečima, programeri implementiraju određeni nedokumentovani programski kod, koji dolazi skriven unutar operativnog sistema, aplikacija, igara i drugih programa. Svaka od verzija Delphi IDE okruženja sadrži skrivene poruke koje rasvetljavaju razvojne detalje, date verzije kompajlera. U najvećem broju slučajeva, to je lista projektanata i programera koji su radili na kompajleru, ali ponekad je to i nešto sasvim drugo.

Jedna od praktičnih koristi implementacije uskršnjih jaja u vaše programe jeste to što možete sakriti specijalna podešavanja programa koja neće biti dostupna korisnicima. Po potrebi vi možete izvršiti doterivanja u programu preko tih skrivenih opcija. Ali ovakava vrsta uskršnjih jaja nas sada ne interesuje, već ćemo kreirati zabavno uskršnje jaje koje će prikazati zabavnu skrivenu poruku kada korisnik pritisne odgovarajuću kombinaciju tastera na tastaturi. Isti kod kasnije možete iskoristiti za npr. prikaz scroll-ujućeg teksta, startovanje multimedijalnih prezentacija ili čak startovanje igara.

Da biste vašem programu dodali uskršnje jaje, uradite sledeće:

  1. Izaberite koja od formi će se koristiti za aktiviranje uskršnjeg jajeta. Ako imate samo jednu formu – glavna forma će biti iskorišćena za aktivaciju (recimo Form1).
  2. Deklarišite integer varijablu u private delu deklaracije forme:


    private
    icnt : integer;

  3. Dodajte dve konstante na nivou forme (u sekciju interface)


    const
    sEgg = ‘AKTIVACIJA’;
    iEggLen = Length(sEgg);

  4. Sledeći programski kod dodajte unutar obrade događaja „OnCreate“ forme:


    procedure TForm1.FormCreate
    (Sender: TObject);
    begin
    KeyPreview := True;
    icnt:=1;
    end;

  5. Naše uskršnje jaje aktiviraće se kada korisnik unese „AKTIVACIJA“ držeći pritisnut taster CTRL. Zato će obrada događaja OnKeyPress forme izgledati na sledeći način:


    Procedure TForm1.FormKeyDown
    (Sender: TObject; var Key: Word;
    Shift: TShiftState);
    begin
    if ssCtrl in Shift then begin
    if Key = Ord(sEGG[icnt]) then begin
    if icnt = iEggLen then begin
    ShowMessage
    (‘Krstaricino Uskrsnje jaje!’);
    icnt := 1;
    end else begin
    icnt := icnt + 1;
    end;
    end else begin
    icnt := 1;
    end;
    end;
    end;


Skrivena reč koju korisnik treba da unese krije se unutar konstante sEgg, a to je „AKTIVACIJA“. Varijabla icnt služi za prebrojavanje pritisaka na tastere kada „hvatamo“ jaje. Unutar obrađivača događaja OnCreate osobina KeyPreview postavljena je na True, što znači da će forma prihvatiti događaje sa tastature pre aktiviranja kontrole. Glavni kod se nalazi unutar obrađivača događaja OnKeyPress. Prvo proveravamo da li je pritisnut taster CTRL. Ako jeste, proveravamo da li je poslednji uneti karakter – odgovarajući karakter. Ukoliko korisnik unese ispravnu kombinaciju, preko message box-a prikazaćemo jednostavnu poruku: „Krstaricino Uskrsnje jaje!“.

Uskršnja jaja nemaju gotovo nikakvu upotrebnu vrednost, ali ih ljudi vole, i vole da ih otkrivaju. Ubacite jaja u vaše aplikacije i prepustite korisnicima da ih „ulove“.

Pratite Krstaricu na www.krstarica.com