İçinde Delphi, her projenin en az bir penceresi vardır - programın ana penceresi. Delphi uygulamasının tüm pencereleri şunlara dayanır: TForm nesnesi.
Form
Form nesneleri bir Delphi uygulamasının temel yapı taşlarıdır, kullanıcının uygulamayı çalıştırırken etkileşime girdiği gerçek pencerelerdir. Formların, görünümlerini ve davranışlarını kontrol edebileceğiniz kendi özellikleri, olayları ve yöntemleri vardır. Bir form aslında bir Delphi bileşenidir, ancak diğer bileşenlerin aksine, bileşen paletinde bir form görünmez.
Normalde yeni bir uygulama (Dosya | Yeni Uygulama) başlatarak bir form nesnesi oluştururuz. Bu yeni oluşturulan form varsayılan olarak uygulamanın ana formu olacaktır - çalışma zamanında oluşturulan ilk form.
Not: Delphi projesine ek bir form eklemek için Dosya | Yeni form.
Doğum
OnCreate
OnCreate olayı, bir TForm ilk kez oluşturulduğunda, yani yalnızca bir kez tetiklenir. Formun oluşturulmasından sorumlu ifade projenin kaynağındadır (form proje tarafından otomatik olarak oluşturulacak şekilde ayarlanmışsa). Bir form oluşturulurken ve Visible özelliği True olduğunda, aşağıdaki olaylar listelenen sırada gerçekleşir: OnCreate, OnShow, OnActivate, OnPaint.
Örneğin, dize listelerini ayırmak gibi başlatma işleri yapmak için OnCreate olay işleyicisini kullanmalısınız.
OnCreate olayında oluşturulan nesneler OnDestroy olayı tarafından serbest bırakılmalıdır.
OnCreate -> OnShow -> OnActivate -> OnPaint -> OnResize -> OnPaint...
Gösteri
Bu olay formun görüntülendiğini gösterir. Bir form görünür hale gelmeden hemen önce OnShow çağrılır. Ana formların yanı sıra, bu olay formlar Visible özelliğini True olarak ayarladığımızda veya Show veya ShowModal yöntemini çağırdığımızda gerçekleşir.
OnActivate
Bu olay, program formu etkinleştirdiğinde, yani form giriş odağını aldığında çağrılır. İstenen kontrol değilse, hangi kontrolün odaklanacağını değiştirmek için bu olayı kullanın.
OnPaint, OnResize
OnPaint ve OnResize gibi olaylar her zaman form ilk oluşturulduktan sonra çağrılır, ancak tekrar tekrar çağrılır. OnPaint, formdaki herhangi bir kontrol boyanmadan önce oluşur (formdaki özel boyama için kullanın).
hayat
Bir formun doğuşu, hayatı ve ölümü kadar ilginç değildir. Formunuz oluşturulduğunda ve tüm denetimler olayların işlenmesini beklediğinde, birisi formu kapatmaya çalışana kadar program çalışıyor!
Ölüm
Olay güdümlü bir uygulama, tüm formları kapatıldığında ve hiçbir kod yürütülmediğinde çalışmayı durdurur. Görünen son form kapatıldığında hala gizli bir form varsa, uygulamanızın (hiçbir form görünür olmadığından), ancak aslında tüm gizli formlar görünene kadar çalışmaya devam eder kapalı. Sadece ana formun erken gizlendiği ve diğer tüm formların kapalı olduğu bir durumu düşünün.
... OnCloseQuery -> OnClose -> OnDeactivate -> OnHide -> OnDestroy
OnCloseQuery
Formu Kapat yöntemini veya başka yollarla (Alt + F4) kullanarak kapatmaya çalıştığımızda OnCloseQuery olayı çağrılır. Bu nedenle, bu olay için olay işleyici, bir formun kapanmasını durdurmak ve önlemek için yerdir. Kullanıcılara formun gerçekten kapanmasını istediklerinden emin olup olmadıklarını sormak için OnCloseQuery kullanıyoruz.
prosedür TForm1.FormCloseQuery (Gönderen: TObject; var Kapatma: Boole);
başla
EğerMessageDlg('Bu pencere gerçekten kapatılsın mı?', MtConfirmation, [mbOk, mbCancel], 0) = mrCancel sonra CanClose: = Yanlış;
son;
Bir OnCloseQuery olay işleyicisi, formun kapanmasına izin verilip verilmediğini belirleyen bir CanClose değişkeni içerir. OnCloseQuery olay işleyicisi, CloseQuery değerini Close yöntemini iptal ederek (CanClose parametresi aracılığıyla) False olarak ayarlayabilir.
OnClose
OnCloseQuery formun kapatılması gerektiğini belirtirse, OnClose olayı çağrılır.
OnClose olayı, formun kapanmasını önlemek için bize son bir şans verir. OnClose olay işleyicisinin, aşağıdaki dört olası değeri içeren bir Action parametresi vardır:
- canone. Formun kapanmasına izin verilmiyor. Tıpkı OnCloseQuery'de CanClose'u False olarak ayarlamış gibi.
- Cahide. Formu kapatmak yerine gizlersiniz.
- caFree. Form kapatıldığından, ayrılmış bellek Delphi tarafından serbest bırakılır.
- caMinimize. Form kapalı değil, simge durumuna küçültülmüş. MDI alt formları için varsayılan eylem budur. Bir kullanıcı Windows'u kapattığında, OnClose'u değil OnCloseQuery olayı etkinleştirilir. Windows'un kapanmasını önlemek istiyorsanız, kodunuzu OnCloseQuery olay işleyicisine koyun, elbette CanClose = False bunu yapmayacaktır.
OnDestroy
OnClose yöntemi işlendikten ve form kapatıldıktan sonra OnDestroy olayı çağrılır. Bu olayı OnCreate olayındaki işlemlerin tersi işlemler için kullanın. OnDestroy, formla ilgili nesneleri yeniden konumlandırmak ve ilgili belleği boşaltmak için kullanılır.
Bir projenin ana formu kapandığında, uygulama sona erer.