मैंने http://www.delphi-central.com/runtime.aspx चलाने और सफल होने वाली वेबसाइट से एक स्क्रिप्ट की कोशिश की।जब मैं अपने ऑनक्लिक हैंडलर में बटन को नष्ट करता हूं तो मेरा प्रोग्राम क्रैश क्यों होता है?
private
{ Private declarations }
procedure CustomButtonClick(Sender: TObject);
procedure TForm1.AddNewButtonClick(Sender: TObject);
var
NewButton : TButton;
begin
NewButton := TButton.create(self);
with NewButton do
begin
Top := 30;
Width := 60;
Left := Width * (self.ControlCount-2);
Parent := self;
OnClick := CustomButtonClick;
Caption := 'Button '+ inttostr (self.ControlCount-2);
end; //With
end;
procedure TForm1.DeleteLastButtonClick(Sender: TObject);
begin
if Self.ControlCount>2 then
TButton (Controls[ControlCount-1]).destroy;
end;
procedure TForm1.CustomButtonClick(Sender: TObject);
begin
ShowMessage(TButton(Sender).caption + ' Pressed');
end;
लेकिन अगर मैं OnClick,
OnClick := CustomButtonClick; ==> OnClick := DeleteLastButtonClick;
बदल यह एक त्रुटि संदेश उत्पन्न होगा। यह कैसे हो सकता है ... ???
यदि आप किसी भवन को नष्ट करना चाहते हैं - तो क्या आप ** ** ** ** ** ** के अंदर ** करेंगे? – Alex
आपका पहला प्रश्न डाउनवॉटेड होना बहुत निराशाजनक हो सकता है। क्या यह सवाल वास्तव में "अस्पष्ट या उपयोगी नहीं है"? – mjn
@josef: मेसन का जवाब सही है; आप TForm (Forms.pas में) देख सकते हैं कि यह समान चीजें कैसे करता है; प्रक्रियाओं के लिए रिलीज और सीएमआरलीज, और निरंतर CM_Release की तलाश करें। –