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
  Delphi Android Java kullanmak AliZairov 11 1.203 22-03-2018, Saat: 04:36
Son Yorum: AliZairov
  Delphi AVD Manager kullanımı Bay_Y 15 524 07-03-2018, Saat: 15:59
Son Yorum: Bay_Y
  Delphi Android Java Tetikleyici hyperxman 0 121 15-02-2018, Saat: 01:06
Son Yorum: hyperxman
  Delphi Android Sayı Karmaşası [Çözüldü] codder71 2 208 12-01-2018, Saat: 15:54
Son Yorum: codder71
  Delphi Dahili Hafıza Boyutu Öğrenme codder71 4 257 08-01-2018, Saat: 01:33
Son Yorum: codder71



Konuyu Okuyanlar: 1 Ziyaretçi