Форум: "Компоненты";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];
ВнизСтранность в Delphi 2005 Найти похожие ветки
← →
Чапаев © (2005-10-25 10:54) [0]Есть такой код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TMy=class(TWinControl)
private
AEdit:TEdit;
ALabel:TLabel;
public
constructor Create(AOwner:TComponent);override;
destructor Destroy;override;
end;
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
M:TMy;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
M:=TMy.Create(Self);
end;
{ TMy }
constructor TMy.Create(AOwner:TComponent);
begin
inherited;
AEdit:=TEdit.Create(nil);
ALabel:=TLabel.Create(nil);
end;
destructor TMy.Destroy;
begin
AEdit.Free;
ALabel.Free;
inherited;
end;
end.
В Делфи7 всё работает, в Делфи2005 выскакивает AV при выполнении AEdit.Free. Кто-нить может объяснить, в чём проблема?
← →
Igorek © (2005-10-25 11:02) [1]Так 2005 Делфи - это ж под дотнет вроде. Там же автоматическая сборка мусора. Соотв. нету явных вызовов деструкторов - можно просто написать AEdit := nil вместо AEdit.Free.
← →
Чапаев © (2005-10-25 12:07) [2]
> Так 2005 Делфи - это ж под дотнет вроде
Не знаешь -- лучше не подсказывай. 2005 содержит средства разработки и под Вин32, и под .НЕТ. В данном случае программа пишется под Вин32.
← →
Чапаев © (2005-10-25 12:10) [3]Да и если всё же принять версию про автоматическую сборку мусора, почему тогда ALabel.Free срабатывает нормально?
← →
Igorek © (2005-10-25 12:16) [4]
> Не знаешь -- лучше не подсказывай.
Прости, я хотел помочь - написал что знал.. Но теперь думаю - без меня ты лучше разберешься.
← →
Игорь Шевченко © (2005-10-25 15:35) [5]
> в Делфи2005 выскакивает AV при выполнении AEdit.Free
Не выскакивает.
Страницы: 1 вся ветка
Форум: "Компоненты";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c