oluşturduğumuz nesnleri silmek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
oluşturduğumuz nesnleri silmek
diyelimki ben 5 tane panle oluşturdum hnagisnin üzerinde tıklamış isem onu geri silmek istiyorum bunu nasıl yapabiliriz...
Siz hayal edin...Biz yapalım TuannaSoft...
click eventlerine free yazarak
kolay gelsin...
Kod: Tümünü seç
procedure TForm1.Panel1Click(Sender: TObject);
begin
panel1.Free;
end;
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
- TPanel crate edilen procedure'de bir popup menüyü o nesneye bağlarsın.
- Sonra da popup menude Sil seçildiğinde der halledersin...
- Sonra da popup menude Sil seçildiğinde
Kod: Tümünü seç
TPanel(Sender).Free;
muharrem hocam sizin sölediğiniz gibi create ettikten sonra
create ettiğim nesneye popup menü atadım atadığım popup menüde sil diye menü item ekledim ve bu itemin click olayınada
TPanel(Sender).Free;
konutunu yazdım ama sonuc...değişmedi vaktiniz varsa bir örnek yazarsanız sevinirim....tahsin_balci@hotmail.com
iyi çalışmalar sağ olun....
create ettiğim nesneye popup menü atadım atadığım popup menüde sil diye menü item ekledim ve bu itemin click olayınada
TPanel(Sender).Free;
konutunu yazdım ama sonuc...değişmedi vaktiniz varsa bir örnek yazarsanız sevinirim....tahsin_balci@hotmail.com
iyi çalışmalar sağ olun....
Siz hayal edin...Biz yapalım TuannaSoft...
Kod: Tümünü seç
procedure TForm1.CreatePanel;
var Panelx : TPanel;
begin
Panelx := TPanel.Create(self);
Panelx.OnClick := PanelClick(sender);
end;
procedure TForm1.PanelClick(sender TObject);
begin
TPanel(Sender).Free;
end;
kıdemsiz üye
@tuanna
- Tabii yaa.. Acele ile cevap verince eksik olmuş. Sender aslında TPanel olsa da, popup oldukta sonra seçtiğin TMenuitem sender pozisyonuna geçiyor...
- Hiçbir değişiklik yapmadan şöyle düzeltelim...
TPanel(Sender).Free; yazdığın satırı silip yerine şunu yaz olacaktır...
- Yanlış yönlendirme için üzgünüm, bu şekilde telafi etmiş olucaz... Başarılar... 
// Edit // Ek:
Örnek demiştin onu da ekleyim...
- Tabii yaa.. Acele ile cevap verince eksik olmuş. Sender aslında TPanel olsa da, popup oldukta sonra seçtiğin TMenuitem sender pozisyonuna geçiyor...
- Hiçbir değişiklik yapmadan şöyle düzeltelim...
TPanel(Sender).Free; yazdığın satırı silip yerine şunu yaz olacaktır...
Kod: Tümünü seç
PopUpMenu1.PopUpComponent.Free;

// Edit // Ek:
Örnek demiştin onu da ekleyim...
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
Const
{$j+} Sayac : Integer = 0; {$j-}
Var
YeniPanel : TPanel; // Uses ExtCtrls
begin
Inc(Sayac);
YeniPanel := TPanel.Create(Form1);
With YeniPanel do
begin
Name := Format('Panelim_%.2d', [Sayac]);
Parent := Form1;
Caption := Name;
Width := 100;
Height := 100;
Left := (15 * Sayac);
Top := (15 * Sayac);
PopUpMenu := PopUpMenu1;
end;
end;
Kod: Tümünü seç
procedure TForm1.Sil1Click(Sender: TObject);
begin
PopUpMenu1.PopUpComponent.Free;
end;
yalniz free edilme isi nesnenin kendi tetiklemesinde(?) olmamasi lazim. Delphi de intahar etmek yasak ama, serbest birakmak serbest.
Sacmalamis olabilirim.
panel nesnesine verdigimiz bütün Event leri de nil lememiz lazim.
Cikis noktam Form1 kendi icinde free edilemez.
Birde Panel'in secilirken free edilmesine anlam veremedim. Niye öyle bir sey yapmak istiyorsun?
Sacmalamis olabilirim.
panel nesnesine verdigimiz bütün Event leri de nil lememiz lazim.
Cikis noktam Form1 kendi icinde free edilemez.
Birde Panel'in secilirken free edilmesine anlam veremedim. Niye öyle bir sey yapmak istiyorsun?
miskin
Ve Tanri, bütün kullarini davul edecek
Ve Tanri, bütün kullarini davul edecek

@miskin
- Kimseyi yanıltmak istemem ama bildiğim ve gördüğüm kadarıyla sistem şöyle işliyor.
- Delphi içinde komutlar, windows genelindekilere benzeri birer local mesaj şeklinde yayınlanıp işleme alınıyor. Yani FREE et dediğimiz için anında işleneme konmayıp mousemove, paint, timer vs. gibi diğer application mesajlardan sonraki sırasını beklemek durumunda.
- Burada Active control, PopUp seçim yapılan menüye geçmiş durumdayken mesaj yayınını (free komutu) yapılıyor. Application seviyesindeki mesaj icra ettiğinden, parenti TPanel için de olsa PopUp menüitemi mesajı yayınlayarak görevni tamamlamış halde kendisinin de yok olmasını beklemekten başka çaresi kalmıyor...
- Kimseyi yanıltmak istemem ama bildiğim ve gördüğüm kadarıyla sistem şöyle işliyor.
- Delphi içinde komutlar, windows genelindekilere benzeri birer local mesaj şeklinde yayınlanıp işleme alınıyor. Yani FREE et dediğimiz için anında işleneme konmayıp mousemove, paint, timer vs. gibi diğer application mesajlardan sonraki sırasını beklemek durumunda.
- Burada Active control, PopUp seçim yapılan menüye geçmiş durumdayken mesaj yayınını (free komutu) yapılıyor. Application seviyesindeki mesaj icra ettiğinden, parenti TPanel için de olsa PopUp menüitemi mesajı yayınlayarak görevni tamamlamış halde kendisinin de yok olmasını beklemekten başka çaresi kalmıyor...
