çoklu formlarla çalışmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
master_20
Üye
Mesajlar: 85
Kayıt: 27 Eki 2010 09:42

çoklu formlarla çalışmak

Mesaj gönderen master_20 »

Merhaba arkadaşlar delphide ilk yaptığım projemde içinden çıkamadığım bir durum var :s yaklaşık 10 tane formum ve 1 tanede data modülüm var. bu formalardan sadece bir ekz görüntüleyip daha sonra hiç işime yaramayacak olanlar var bunlar exe üzerinde yer kaplamaması için formları çaüırırken yada kapatırken hangi kodları kullanmam lazım. mesela şifre ekranı lisans ekranı bunları ilk çalışırken görüntülüyorum daha sonra hiç işime yaramıyor exe üerinde yer kaplamasın istiyorum. ben formları açarken ve kapatırken çok acemice olan show ve closeyi kullanıyorum :)

ikinci bir sorumda programımda ilk önce lisans kontrolü yapan form açılıyor daha sonra kullanıcı şifre eknaı en sonundada anaformum açılıyor. fakat lisans ve şifre formlarını çarpıdan kapattığımda sonraki form açılıyor. formun closesine canone yazıyorum bu sefer hiç kapanmıyor :s bu konuda ne yapmam gerekiyor ?
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Çoklu formlarla çalışmak

Mesaj gönderen csunguray »

Öncelikle bir forum konusu içerisinde birden fazla soru sormayın. Her soru kendine özeldir. Birincisi bir formu EXE den atamazsınız. Sizin anlatımınıza göre program çalışırken EXE nin boyutu sürekli azalsın ve çoğalsın diyorsunuz. Öyle bir şey olmaz. Sanırım siz formlar memory de yer kaplamasın demek istiyorsunuz? Bu durumda formları projenizin Auto-create listesinden çıkarmanız lazım. Bunu Project > Options > Forms bölümünden yapabilirsiniz. Böylece programın başlarken programdaki tüm formları memory de otomatik olarak oluşturmasını engelledik. Formları görüntülerken de aşağıdaki gibi bir kalıbı kullanmanız gerekir.

Kod: Tümünü seç

Form1 := TForm1.Create(Self);
try
  Form1.ShowModal;
finally
  Form1.Free;
end;
Formu hafızada oluşturuyorsunuz, modal olarak görüntülüyorsunuz ve son olarak hafızadan atıyorsunuz. Ayrıca form kapanırken nasıl bir sonuçla kapandığını da (Tamam veya Vazgeç) şu şekilde kontrol edebilirsiniz.

Görüntülediğiniz formdaki Tamam düğmesinin OnClick olayına aşağıdaki kodu yazın.

Kod: Tümünü seç

procedure Form1.Button1Click(Sender: TObject);
begin
  Close; 
  Modalresult := mrOK;
end;
Ana form içerisinde Form1 i görüntülerken aşağıdaki şekilde görüntüleyin.

Kod: Tümünü seç

Form1 := TForm1.Create(Self);
try
  if Form1.ShowModal = mrOK then
  begin
    ShowMessage('Tamam tuşuna basılarak çıkıldı.');
  end else
  begin
    ShowMessage('Tamam tuşuna basma haricindeki bir yöntemle çıkıldı.');
  end;
finally
  Form1.Free;
end;
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Cevapla