Delphi Can

Orjinalini görmek için tıklayınız: Delphi Formlarının Sekmeler Halinde açılması
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Sayfalar: 1 2
Arkadaşlar delphi de oluşturduğum formları buton yardımıyla sekmeler halinde açıp buton yardımı ile kapatmak istiyorum. Birçok şey denememe rağmen bir türlü yapamadım. Acil yardımlarınızı bekliyorum. Vereceğiniz bilgiler için şimdiden çok teşekkür ederim.
Merhaba
Anahtar işlemler Smile
formlar auto create olmayacak,
container özelliği nesneler panel, tabsheet vb.

form için değişken tanımla,
değişkeni create et, owner ana form olsun
parent ı container özelliği nesne yap
form değişkenini show yap.
Pagecontrol nesnesi koyup formu bunun içine create edebilirsin.
pagecontrol yaptım fakat her seferinde yeni page açıyor
procedure TForm3.kullan1Click(Sender: TObject);
var
TabSheet: TTabSheet;
begin
TabSheet := TTabSheet.Create(PageControl1);
TabSheet.Caption := 'Kullanıcı Değiştir';
TabSheet.PageControl := PageControl1;
Form4.Parent := TabSheet;
Form4.Show;
end;

Pagecontrol kullanıyorum fakat her seferinde yeni page açıyor;
procedure TForm3.kullan1Click(Sender: TObject);
var
TabSheet: TTabSheet;
begin
TabSheet := TTabSheet.Create(PageControl1);
TabSheet.Caption := 'Kullanıcı Değiştir';
TabSheet.PageControl := PageControl1;
Form4.Parent := TabSheet;
Form4.Show;
end;

Aslında benim yapmak istediğim programdaki formları sekmeler halinde kontrol edip form kirliliğinden kurtulmak;
mainmenu ile formları sekmeler halinde açıp farklı formlar üzerinde işlemler yapmak. Bilgiler için teşekkürler.
İstediğin şey bu mu ?

qJZDNB.png
main menude fişler butonu olsun ana tıkladığımda sekme olarak açılsın tekrar mainmenude cari diye bir buton olsun ona tıkladığımda da aşağıda sekme halinde ikinci bir form olsun sonra bu formlarda kırmızı çarpı (kapat) butonu olsun ona tıkladığımda o sekme kapansın açmak istediğimde tekrar mainmenuden açabileyim.
Yapmak istediğiniz şey aynı formu çift açtırtmamak mıdır?

Her tıkladığında TTabSheet tipinden bir nesneyi oluşturan kod yazarsanız her seferinde sizin için yeniden oluşturacaktır. Eğer Formlara TAG yada farklı bir belirteç ile sabitlerseniz ve bu yeni tab oluşturma anında mevcut TPageControl içindeki TTabSheet leri sırasıyla gezip TAG parametresi mevcutta varsa aktif tab olarak onu ayarlayabilir, yoksa oluşturabilirsiniz.

Kapatma işlemi için sağ tuşa bir popupmenu yada mainmenu bağlayıp, active tab hangisi ise onu container içinden destroy edebilirsiniz. Aynı formdan birden fazla oluşturması durumunda Form_Nesnesi_1 şeklinde ikinci bir klon oluşturur. Eğer formun ismi ile içerideki görsel komponentlerin stil ve yerleşke ayarlarını yönetiyorsanız başınızı ağrıtır. Orada da oluşturulmuş form isimlerini gezerek mükerrer oluşturmayı engelleyebilirsiniz.
Teşekkürler Abdullah Bey,
Bu dediklerinizi deneyeceğim. Birde butona tıkladığım da aynı formu yan yana açmam mümkün müdür. Form dizaynı aynı olacak fakat içindeki verilerle yapacağım işlemler farklı olacak.
(07-12-2017, Saat: 12:09)sahin4169 Adlı Kullanıcıdan Alıntı: [ -> ]Teşekkürler Abdullah Bey,
Bu dediklerinizi deneyeceğim.  Birde butona tıkladığım da aynı formu yan yana açmam mümkün müdür. Form dizaynı aynı olacak fakat içindeki verilerle yapacağım işlemler farklı olacak.

Rica ederim.

Tabii ki. Bu tarz işlemleri genelde mastar form tasarımları üzerinden yürütmeniz avantajlı olur. Mesela Detay formları ve Liste formları. Örneğinizden yola çıkarak; Cari listesi ve Cari detay formu olarak ele alalım. Aynı formları Stok modülünde kullanmak isterseniz, Önce Liste ve Detay olarak 2 tane form tasarımı yapın. Sonra her modül için TCariListeForm = class(TMastarListeForm) şeklinde miras alın.

Veya bu kadar kompleks olmaya gerek yok derseniz; Aynı formu tasarlarken birden fazla constructor yazın ve aynı formun içinde bir butona daha bastığınızda yeni sekmede aktif edin. Eğer ana referansınız TAG olacaksa, aynı formun içinden bir instance daha oluşturacağınız zaman TAG'ların başına eksi koyun. Cari için modül no 1 olsun. Cari formu açıldığında 1'i aktif edin. Cari formu içinden aynı formu açacağınız zaman -1 yapın. Tab kontrollerini de ona göre yönetebilirsiniz bu sayede.
Teşekkürler Abdullah Bey,
Denemeye başlıyorum. Kolay gelsin size.
Sayfalar: 1 2