panel icerisinde ki tum speedbuttonlari free etmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
frost majere
Üye
Mesajlar: 26
Kayıt: 28 Ara 2006 09:14

panel icerisinde ki tum speedbuttonlari free etmek

Mesaj gönderen frost majere »

Kod: Tümünü seç

for i:=Panel1.ControlCount-1 downto 0 do begin
    if Panel1.ClassType=TSpeedButton then begin
      if Panel1.Controls[i].Name<>'Pointnum' then begin
        Panel1.Controls[i].Destroy;
      end;
    end;
  end;
panel1 icerisinde ki tum speedbuttonlari yukarida ki kod ile yok etmeye calisiyorum fakat beceremedim. yardimci olursaniz sevinirim.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.

Kod: Tümünü seç

if (panel.controls[i] is tspeedbutton) then freeandnil(panel.controls[i]);
kodunuzun böyle birşey olması lazım.
birde dikkat etmeniz gereken nokta for döngüsünü

Kod: Tümünü seç

controlcount-1 downto 0 
şeklinde yapmanız gerekmektedir.
çünkü kontrollerden birini sildiğinizi controls de değişecektir. buda arada silmediğiniz speedbuttonlar olabilir demek.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: panel icerisinde ki tum speedbuttonlari free etmek

Mesaj gönderen sabanakman »

Kodlar normal görünüyor.
frost majere yazdı:... yukarida ki kod ile yok etmeye calisiyorum fakat beceremedim...
Bu kadar mı? Olmayanın ne olduğunu daha açık yazabilirsen iyi olur. Bu aralar sihirli küremi kaybettim de :twisted:
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
frost majere
Üye
Mesajlar: 26
Kayıt: 28 Ara 2006 09:14

Mesaj gönderen frost majere »

Kod: Tümünü seç

for i:=Panel1.ControlCount-1 downto 0 do begin
    if (panel1.controls[i] is tspeedbutton) then begin
      if Panel1.Controls[i].Name<>'Pointnum' then begin
        Panel1.Controls[i].Destroy;
      end;
    end;
  end;

$eklinde cozdum. yardimariniz icin tesekkurler.
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

aslangeri yazdı:s.a.

Kod: Tümünü seç

birde dikkat etmeniz gereken nokta for döngüsünü 
[code]controlcount-1 downto 0 
şeklinde yapmanız gerekmektedir.
çünkü kontrollerden birini sildiğinizi controls de değişecektir. buda arada silmediğiniz speedbuttonlar olabilir demek.
kolay gelsin.


bu güzel bir bilgiydi. genelde tersini yapıyoruz çünkü
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Cevapla