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.
Pratite Krstaricu na www.krstarica.com