Poznato je da programeri spadaju u deo populacije koji se odlikuje lenjošću. Što znači da, ako se negde može uštedeti u pisanju programskog koda, tim bolje. Često je potrebno da utrošite dosta vremena u pisanju koda koji obrađuje greške, ali možete to isto vreme iskoristiti za kreiranje aplikacija na takav način da se greške nikada ne dešavaju (jednostavno, da pokušate da ih predupredite). U sledećim redovima navešćemo vam par "trikova" koji će vam možda pomoći u tom pravcu.
Kada razvijate aplikacije koje rade sa bazama podataka, onda uvek imate veliki broj tekst polja, padajućih listi i sličnog. U ovakvim situacijama poželjno je da programski kod unutar događaja "OnChange" vežete za sva ulazna polja, i da na formu postavite jedno "Apply" dugme. Dugme "Apply" će biti nedostupno sve do prvog unosa, tj. promene sadržaja bilo kog polja. Takođe, potrebno je da obezbedite message-box koji će "iskakati" ukoliko korisnik pokuša da zatvori formu, a napravio je neke izmene. U ovaj message-box, pored obaveštenja ubacite i dva dugmića: "Close" i "Cancel", da bi se korisnik mogao odlučiti da li će da zatvori formu sa datim promenama, ili će odbaciti promene. Sve što je potrebno je da kreirate jednostavnu "if / else" instrukciju koja će "osmatrati" dugme "Apply". Ukoliko ovo dugme bude dostupno (što znači da je korisnik napravio izmene), upozorićemo ga da je napravio izmene.
void __fastcall TForm2::Button4Click(TObject *Sender)
{
if (Dugme1->Enabled == true)
UpozoravajucaForma->ShowModal();
else
Close();
}
Još jedna preporučena metoda je forsiranje prikaza prozora u sredini ekrana, bez obzira na prethodnu poziciju prozora, ili podešavanja video kartice. Ovim možete da izbegnete grešku koja se često javlja u praksi, a uzrokovana je time da neke video kartice kreiraju zapise u registry bazi, gde smeštaju podatke o poziciji i veličini prozora (bez obzira na podešavanje aplikacije). Ovo možete preduprediti ubacivanjem određenog koda na događaj "OnActivate" forme (pre nego događaj "OnClick", kojim se otvara forma):
void __fastcall TForm1::FormActivate(TObject *Sender)
{
// Izracunavanje gornje i leve ivice forme 1. (Centriranje forme 1)
Form1->Left = (Screen->Width - Form1->Width)/2;
Form1->Top = (Screen->Height - Form1->Height)/2;
// Prevencija podesavanja video kartice
Form1->Height = 480;
Form1->Width = 640;
}
Takođe, možete podesiti i da se prozor "dete" centrira u odnosu na prozor "roditelj". Ponovo, iskoristićemo događaj "OnActivate" "dete" forme, što je bolje rešenje od događaja OnClick dugmića na formi "roditelju".
void __fastcall TForm2::FormActivate(TObject *Sender)
{
// Izracunavanje gornje i leve ivice forme 2. (Centriranje forme 2)
Form2->Left = (Form1->Width - Form2->Width)/2 + Form1->Left;
Form2->Top = (Form1->Height - Form2->Height)/2 + Form1->Top;
// Prevencija podesavanja video kartice
Form2->Height = 372;
Form2->Width = 481;
}
Gornji primeri uglavnom služe za otklanjanje mogućih grešaka koje mogu da naprave neiskusni korisnici. Na ovaj način možete pokušati da predvidite sve moguće "pogrešne korake" neiskusnih korisnika.