Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
TabControl - Destory Sorunu ?
#1
İyi günler,

TabControl Bileşenin de Bir miktar ( 8 adet ) tab Item Ekledim ve Butonlar vasıtası ile bu Itemlere destory komutunu işletiyorum ( yok etmenin bulduğum en basit yolu ).
Herşey iyi güzelken bir bir yok olurken bazen yok ederken uygulama donuyor komple ve tab'ların miktarını label'de falan gösterirken de donuyor.
bunun sebebi nedir ?


//Her tab'da butonlar var ve hepsinde bu geçerli
procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled := true ;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
TabControl1.ActiveTab.Destroy  ;
TabControl1.TabIndex := RandomRange(0,TabControl1.TabCount);
Timer1.Enabled := false ;
end;

sadece destory komutunu test etmek istedim.  Shy
Cevapla
#2
FMX 'de de işler VCL 'deki gibi mi bilemem de VCL 'de bu işi şöyle yapabilirsin.


procedure TForm1.Button1Click(Sender: TObject);
begin
  Randomize;

  if FindComponent('TabControl1') <> nil then
    if (TabControl1.Tabs.Count >= 0) then
    begin
      TabControl1.TabIndex := Random(TabControl1.Tabs.Count-1);

      if TabControl1.TabIndex in [0..TabControl1.Tabs.Count-1] then
        TabControl1.Tabs.Delete(TabControl1.TabIndex) else
        TabControl1.Destroy;
    end;

end; 

Cevapla
#3
(17-02-2019, Saat: 13:59)ChangeoveR Adlı Kullanıcıdan Alıntı: FMX 'de de işler VCL 'deki gibi mi bilemem de VCL 'de bu işi şöyle yapabilirsin.


procedure TForm1.Button1Click(Sender: TObject);
begin
  Randomize;

  if FindComponent('TabControl1') <> nil then
    if (TabControl1.Tabs.Count >= 0) then
    begin
      TabControl1.TabIndex := Random(TabControl1.Tabs.Count-1);

      if TabControl1.TabIndex in [0..TabControl1.Tabs.Count-1] then
        TabControl1.Tabs.Delete(TabControl1.TabIndex) else
        TabControl1.Destroy;
    end;

end; 



Size çok teşekkür ederim olumlu sonuç ;

kodda birkaç değişiklik ile istediğimi elde ettim.

procedure TForm1.Button1Click(Sender: TObject);
begin
Randomize;

 if FindComponent('TabControl1') <> nil then
   if (TabControl1.TabCount >= 0) then
   begin
   if TabControl1.TabIndex in [0..TabControl1.TabCount-1] then
   TabControl1.Delete(TabControl1.TabIndex) else
   TabControl1.Destroy;

   TabControl1.TabIndex := Random(TabControl1.TabCount-1);


   end;
end;
Cevapla
#4
rica ederim.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Mapview üzerinde splash ekran logo sorunu arsl01 4 918 05-12-2023, Saat: 23:00
Son Yorum: arsl01
  IOS SDK Ekleme Esnasında Yavaş Aktarım Sorunu Çözümü Mr.X 0 264 23-11-2023, Saat: 21:18
Son Yorum: Mr.X
  IOS 17 Crash Sorunu Çözümü emrahozten 5 926 14-11-2023, Saat: 19:53
Son Yorum: mcuyan
  Apple Enterprise Hesap Sorunu emrahozten 0 267 13-11-2023, Saat: 10:51
Son Yorum: emrahozten
  PAServer Manager form ölçek sorunu delphi.developer 0 221 12-11-2023, Saat: 01:43
Son Yorum: delphi.developer



Konuyu Okuyanlar: 1 Ziyaretçi