oluşturduğum panel nesnelerini silmekistiyorum

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

oluşturduğum panel nesnelerini silmekistiyorum

Mesaj gönderen tuanna »

arkadaşlar oluşturduğum panel nesnelerini silmek için bir kod yazdım ama ...

kod bana göre sunuyapmalı
tüm componentleri arıyor...componentler panel clasına aitse namelerini kontrolettiriyorum nameleri bunlar ise sil diyecem ama hata veriyor...hata ne dersseniz derleme kısmında yok ama çalışma esnasında hata oluşuyor...

procedure TFrmkesme.Button4Click(Sender: TObject);
var
k:integer;
begin
For k:=0 to ComponentCount-1 do begin
If (Components[k] is Tpanel) then
if (Tpanel(Components[k]).Name='pnlresim') or (Tpanel(Components[k]).Name='pnltools') or (Tpanel(Components[k]).Name='solcetvel')or (Tpanel(Components[k]).Name='ortailkcetvel')or (Tpanel(Components[k]).Name='ortaikincicetvel')or (Tpanel(Components[k]).Name='sagcetvel') or (Tpanel(Components[k]).Name='ustcetvel')or (Tpanel(Components[k]).Name='altcetvel')then
begin
Components[k].Free;
end;
end;

end;
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

evet arkadaşlar oldu sonun da söle oldu bakmak isterseniz....

procedure TFrmkesme.Button4Click(Sender: TObject);
var
k:integer;
begin
For k:=0 to ComponentCount-1 do begin
If (Components[k] is Tpanel)
then
if (Tpanel(Components[k]).Name='pnlresim') or (Tpanel(Components[k]).Name='pnltools') or (Tpanel(Components[k]).Name='solcetvel')or (Tpanel(Components[k]).Name='ortailkcetvel')or (Tpanel(Components[k]).Name='ortaikincicetvel')or (Tpanel(Components[k]).Name='sagcetvel') or (Tpanel(Components[k]).Name='ustcetvel')or (Tpanel(Components[k]).Name='altcetvel')then
begin

end
else
begin
Components[k].Free;
end;

end;

end;
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

ya arkadaşlar böle olduğunda birden fazla nesneyi free etmeye çalıştığımda list of index(32) diye hata veriyor...

procedure TFrmkesme.Button4Click(Sender: TObject);
var
k:integer;
begin
For k:=0 to ComponentCount-1 do begin
If (Components[k] is Tpanel)
then
if (Tpanel(Components[k]).Name='pnlresim') or (Tpanel(Components[k]).Name='pnltools') or (Tpanel(Components[k]).Name='solcetvel')or (Tpanel(Components[k]).Name='ortailkcetvel')or (Tpanel(Components[k]).Name='ortaikincicetvel')or (Tpanel(Components[k]).Name='sagcetvel') or (Tpanel(Components[k]).Name='ustcetvel')or (Tpanel(Components[k]).Name='altcetvel')then
begin

end
else
begin
Components[k].Free;
end;

end;

end;


bir bakabilirmisiniz....
Siz hayal edin...Biz yapalım TuannaSoft...
t-hex
Kıdemli Üye
Mesajlar: 531
Kayıt: 18 Mar 2005 02:45
Konum: İstanbul/Antalya
İletişim:

Mesaj gönderen t-hex »

Paneller silindikçe ComponentCount sayısı azalıyor ve döngü toplam panellerin sayısının dışına kadar uzanıyor. Döngüyü tersten yapın, ayrıca forumda arama yapın benzer mevzular çok konuşuldu daha önce
Cevapla