Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 4/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi de TabItem içersinde form açma
#1
Merhabalar yeni forum hayırlı olsun.

Firemonkey de tabcontrol un tabitem ında için dışarıdan bir formu nasıl gösterebilirim ?

Bu şeklide de test ettim olmadı

    FrmChild := TFrmChild .Create(Self);
    FrmChild.Parent := TabitemParent;

iyi çalışmalar
Cevapla
#2
(15-12-2016, Saat: 11:57)JavaCiva Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhabalar yeni forum hayırlı olsun.

Firemonkey de tabcontrol un tabitem ında için dışarıdan bir formu nasıl gösterebilirim ?

Bu şeklide de test ettim olmadı

    FrmChild := TFrmChild .Create(Self);
    FrmChild.Parent := TabitemParent;

iyi çalışmalar

Merhaba,
Windows platform yapısında yer alan Form'lar temelde TWinControl'den türemiştir ve Parent özelliği de yalnızca TWinControl tipini destekler.

55qfd4.jpg

FMX mimarisinde (Multi Platform) ise Formlar daha tümleşik/karmaşık/komplex yapılardan türemiş ve Parent özellikleri TFmxObject tipini destekler.

n4i0xf.jpg


Yani FMX uygulama geliştirme teknikler az da olsa VCL uygulama yazma tekniklerinden farklılık gösterir.
VCL'de yazılan bir uygulamanın FMX versiyonunu yazmadan önce, bu yeni platform hakkında ön bilgiye sahip olmak şarttır.

Peki FMX Form'lar, VCL'de olduğu gibi doğrudan Parent özellikleri değiştirilemez mi?
Tabi ki değiştirilebilir, fakat VCL mantığı ile değil.

2 Farklı yöntemle yapılabilir.
Örnek bir uygulama yaparak 2 yöntemi de gösterelim.
Uygulamada ana form ile birlikte 2 adet formumuz olsun. (Form1 ve Form2)
Ana forma 2 Adet TabItem'dan oluşan bir adet TabControl yerleştirelim ve TabItem1 üzerine 2 Adet buton yerleştirelim. (Yöntem1 ve 2 için)

Ana form yapısı

ncfs54.jpg



I. Yöntem:

Form2 yapısı;

8zip8w.jpg


I. Yöntem Buton kodu;
Form2 üzerinde tüm kontrolleri barındıran TLayout'un parent'ı değiştirilmesi yeterli olacaktır.

  
Application.CreateForm(TForm2, Form2);
Form2.Layout1.Parent := TabItem2;


II. Yöntem:

Form2 yapısı;

x1egkx.jpg

II. Yöntem Buton kodu;
Bu yöntemde hedef formda yer alan tüm kontrollerin parent'ları ayrı ayrı Set edilerek işlem yapılmaktadır.


  
procedure TForm1.SetParentOluştur(AParent: TControl; AForm: TCustomForm);
begin
 while AForm.ChildrenCount > 0 do
   AForm.Children[0].Parent := AParent;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 SetParentOluştur(TabItem2, TForm2.Create(Self));
end;

Sonuç:


While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Scrollable Form Problem malitutuncu 5 107 Dün, Saat: 15:49
Son Yorum: malitutuncu
  form tasarımı arsl01 0 54 10-07-2018, Saat: 09:39
Son Yorum: arsl01
  Android Cihaz İçin Form Tasarlama hi_selamlar 4 132 27-06-2018, Saat: 12:28
Son Yorum: hi_selamlar
Question delphi 10.2.3 edit-memo yazı tekrarı BY-HAYALET 2 166 05-06-2018, Saat: 11:10
Son Yorum: BY-HAYALET
Question delphi - örnek projeler hakkında BY-HAYALET 6 225 27-05-2018, Saat: 10:35
Son Yorum: BY-HAYALET



Konuyu Okuyanlar: 1 Ziyaretçi