Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi Fmx Frameler arası geçişte frame tamamen kapanmıyor
#1
Merhabalar, fmx üzerinde bir proje ile uğraşıyorum.  Öncelikle projenin yapısını anlatıp daha sonra problemi anlatmam daha uygun olacak sanırım. Projede bir adet BaseForm bulunmakta. Daha sonra gösterilecek olan tüm firemonkey frame'ler bu BaseForm formunun üzerinde görüntülenecek. Program ilk açıldığında Login frame 'i BaseForm üzerinde görüntüleniyor. Login işlemi yapıldıktan sonra  Login frame i Hide ile gizlenip showframe() fonksiyonu yardımıyla  MainFrame adında yeni bir frame görüntüleniyor. Main frame içerisinde Ekranın alt kısmında menü bar'ı bulunmakta, menü seçenekleri :  |  Anasayfa | Güncel | Profil | Çıkış |    . Menüde bulunan tüm seçeneklerin her bir detayı ayrı birer firemonkey frame olarak projede oluşturuldu. MainFrame in create olayında anasayfa detay frame 'i MainFrame üzerinde gösteriliyor. Yani burada frame içerisinde frame gösteriyorum. Menüdeki diğer seçenekler seçildiğinde bir önceki seçilen frame hide edilip tıklanan ilgili detay frame görüntüleniyor. Menüde bulunan Çıkış seçeneğine tıkladığımda showframe() fonksiyonu ile  Login frame ini BaseForm formu üzerinde görüntülüyorum. İşte problem tamda bundan sonra başlıyor. Bir daha login olursam MainFrame görüntüleniyor ama çıkış menü seçeneğinde başlıyor. Normalde Anasayfada başlaması gerekir. Fark ettimki ikinci loginde MainFrame in create olayı çalıştırılmıyor. Çünkü çıkış seçeneği ile login frame ini görüntülerken mainframe arka planda kalıyor. Böylece ikinci login işleminde menüdeki çıkış sekmesinden başlıyor. 

MainFrame'den Login Frame geçerken mainframe in tamamen kapatılmasını istiyorum. 
Ek bilgi olarak   MainFrame.Destroy;  komutunu denedim ama MainFrame içerisinde bu satırı yazmam gerektiği için program hataya düşüyor. Fesih Bey'in youtube'da BTG kanalı üzerinde anlattığı Delphi ile Mobil Uygulama Geliştirme serisini izledim problemimi çözecek kısmı bulamadım 
Yardımcı olursanız çok sevinirim, herkese iyi çalışmalar
Cevapla
#2
orangeui kullanıyorsunuz, orangeui de bir forumu en son nasıl kapatıysanız o şekilde açıyor. normal forumu create eder gibi düşünmeyin.
Cevapla
#3
(07-10-2021, Saat: 16:54)nguzeller Adlı Kullanıcıdan Alıntı: orangeui kullanıyorsunuz, orangeui de bir forumu en son nasıl kapatıysanız o şekilde açıyor. normal forumu create eder gibi düşünmeyin.

Cevap için teşekkürler, evet orangeui kullanıyorum fakat firemonkey frame lerinin create isminde constructor metodunu override ettiğinizde frame ilk açılırken bu fonksiyon tetikleniyor. Yukarıda anlatmış olduğum durumda problemin çözümü için daha farklı bir yapı tavsiyesi varsa ona göre bir düzenleme de yapabilirim
Cevapla
#4
create constructor olayı bir kere çalışıyor. hada sonraki forum çağırmalarda çalışmıyor.
Cevapla
#5
Create olayı, yerine Show olayını kullanın. 

  public
    { Public declarations }
   procedure Show;override;
   constructor Create(AOwner: TComponent); override;

 end;

.....

procedure TfrmLisans.Show;
begin
  inherited;
  //Create motodundaki kodlarnızı bu kısma yazınız.
end;

Begin : = end / 2;
Cevapla
#6
procedure Hide;override; kullanabilir, forum açılışta nasıl bulmak istiyorsa burada düzenlemesi yapılabilir.
Cevapla
#7
(08-10-2021, Saat: 09:28)RAD Coder Adlı Kullanıcıdan Alıntı: Create olayı, yerine Show olayını kullanın. 

  public
    { Public declarations }
   procedure Show;override;
   constructor Create(AOwner: TComponent); override;

 end;

.....

procedure TfrmLisans.Show;
begin
  inherited;
  //Create motodundaki kodlarnızı bu kısma yazınız.
end;

Çok teşekkür ederim Show prosedürü problemi çözdü
Cevapla
#8
(08-10-2021, Saat: 13:41)vedat33 Adlı Kullanıcıdan Alıntı:
(08-10-2021, Saat: 09:28)RAD Coder Adlı Kullanıcıdan Alıntı: Create olayı, yerine Show olayını kullanın. 

  public
    { Public declarations }
   procedure Show;override;
   constructor Create(AOwner: TComponent); override;

 end;

.....

procedure TfrmLisans.Show;
begin
  inherited;
  //Create motodundaki kodlarnızı bu kısma yazınız.
end;

Çok teşekkür ederim Show prosedürü problemi çözdü

@vedat33  Çözüme ulaştığınıza sevindim. 
Sizden başka herkes puan vermiş.  Sad
Begin : = end / 2;
Cevapla
#9
(09-10-2021, Saat: 11:00)RAD Coder Adlı Kullanıcıdan Alıntı:
(08-10-2021, Saat: 13:41)vedat33 Adlı Kullanıcıdan Alıntı: Çok teşekkür ederim Show prosedürü problemi çözdü

@vedat33  Çözüme ulaştığınıza sevindim. 
Sizden başka herkes puan vermiş.  Sad

Kusura bakmayın unutmuştum, hallettim  Blush  Bu arada sizin yazmış olduğunuz show metodu cevabı problemimi çözmüştü. Sebebini bilmemekle beraber 2 gün önce 2 tframe arasında geçiş yaparken show metodunu tetikletmeye çalıştım ama olmadı. Rad studio 11 kullanıyorum
Cevapla
#10
(16-11-2021, Saat: 09:22)vedat33 Adlı Kullanıcıdan Alıntı:
(09-10-2021, Saat: 11:00)RAD Coder Adlı Kullanıcıdan Alıntı: @vedat33  Çözüme ulaştığınıza sevindim. 
Sizden başka herkes puan vermiş.  Sad

Kusura bakmayın unutmuştum, hallettim  Blush  Bu arada sizin yazmış olduğunuz show metodu cevabı problemimi çözmüştü. Sebebini bilmemekle beraber 2 gün önce 2 tframe arasında geçiş yaparken show metodunu tetikletmeye çalıştım ama olmadı. Rad studio 11 kullanıyorum

Estağfurullah.
Gözden kaçırdığınız bir durum vardır (procedure tanımını override direktifi ile ezdiğinizi varsayıyorum). 
Rad Studio 11 ile yeni bir projede bu durumu test etmenizde fayda var.
Begin : = end / 2;
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi FMX, geliştirdiğiniz uygulamanın log kaydını alma işlemi muratcelik64 3 290 22-03-2026, Saat: 05:00
Son Yorum: ovural
  Delphi FMX ile geliştirilen projenin yedeğini alma işlemi. muratcelik64 1 170 15-03-2026, Saat: 20:43
Son Yorum: mkysoft
  Çözüldü _ Delphi Community Edition SDK ayarları hatası cinarbil 1 485 12-03-2026, Saat: 10:25
Son Yorum: damert6
  Delphi FMX Enter tuşu (dpad_center) yakalama tarkancengiz 10 2.389 05-03-2026, Saat: 10:26
Son Yorum: RAD Coder
  Delphi 13 - Listbox içerisinde yatay kaydırma çalışmıyor Mr.X 2 534 18-10-2025, Saat: 13:11
Son Yorum: Mr.X



Konuyu Okuyanlar: