Şifre ekranı konusunda :
Bildiğiniz gibi şifre ekranını program gösterilmeden ekrana getirmeniz gerek bunun için genellikle formun on show olayına:
sifreekrani.showmodal diye yazılır.
Ama olmaz!!! Geniş bir program yazıyorsanız (örn register isteyen bir program) bu yöntemle çok kolay programınız kırılır.
Çünkü bütün formlar create edilmiş durumdadır. Yani programın istediğimiz formu yazdığımız başka bir programla gösterile bilir.
(findwindow ve show window komutları ile)
Bunu önlemek için şifre ekranını formlar create edilmeden göstermeniz gerekir.
project\view source ye girerek aşağıdaki değişiklikleri yapın
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {anaform},
Unit1 in 'Unit2.pas' {sifreekrani};
{$R *.res}
begin
Application.Initialize;
sifreekrani:=tsifreekrani.Create(application);
sifreekrani.showmodal; //burada gösteriyoruz.
Application.CreateForm(Tanaform, anaform);
sifreekrani.free;//hafızdan temizliyoruz.
Application.Run;
end.
Burada showmodal ile göstermeniz önemli; sifreekrani formu kapatılıncaya kadar hiç bir işlem yapmaz.
Şifre yanlışsa halt; ile programı kesebiliriz.
Şifre doğru ise sadece sifreekrani.close dememiz yeterli.
Örnek olarak: http://byjeepower.googlepages.com/Sifre.zip
Saygılar...