Форум: "Прочее";
Текущий архив: 2009.10.04;
Скачать: [xml.tar.bz2];
Вниз
Вызов Free (Destroy) внутри метода объекта Найти похожие ветки
← →
oxffff © (2009-08-04 08:36) [40]
> brother © (04.08.09 08:35) [39]
ГЫ ГЫ.
← →
Palladin © (2009-08-04 08:59) [41]
> [30] pasha_golub © (03.08.09 20:07)
Речь идет об использовании инстанцированных экземпляров поддерживающих интерфейсы. То есть либо ты уж с ними как с объектами работай, либо как с инетрфейсам, а иначе как написал jack128_ - катаклизм наступить может.
← →
Palladin © (2009-08-04 09:20) [42]вот кстати простейший примерчик катаклизма
Procedure lw(Const s:String);
Begin
Form1.Memo1.Lines.Add(s);
End;
Type
IMyIfc=Interface
Procedure p1;
End;
TMyIfc=Class(TInterfacedObject,IMyIfc)
Public
Constructor Create;
Destructor Destroy; Override;
Procedure p1;
End;
Constructor TMyIfc.Create;
Begin
lw("TMyIfc.Create");
End;
Destructor TMyIfc.Destroy;
Begin
lw("TMyIfc.Destroy");
End;
Procedure TMyIfc.p1;
Begin
lw("TMyIfc.p1");
End;
Procedure pp(i:IMyIfc);
Begin
i.p1;
End;
procedure TForm1.Button1Click(Sender: TObject);
Var
o:TMyIfc;
begin
o:=TMyIfc.Create;
lw("call pp");
pp(o);
lw("direct");
o.p1;
o.Free;
end;
← →
Юрий Зотов © (2009-08-04 09:35) [43]> Palladin © (04.08.09 08:59) [41]
А самое чудное, что вину за этот катаклизм почему-то вешают на VCL, хотя как раз в данном случае кривизна рук более чем очевидна.
← →
Ega23 © (2009-08-04 09:45) [44]
> > jack128_ (03.08.09 19:54) [27]
> > ну сами разрабы дельфи написали такой ужос, как TXMLDocument.
>
> > ..
>
> Жень, поподробней могешь для аутсайдеров?
Месяца 3 назад у меня было. Убил пол-дня. Чуть не выломал себе мозг. Ну неправильно себя ведёт - и точка.
Как раз Женя и нашёл баг свежим взглядом - я вместоvar
объявил
doc : IXMLDocumentvar
doc : TXMLDocument
← →
brother © (2009-08-04 09:47) [45]> var
> doc : IXMLDocument
> объявил
> var
> doc : TXMLDocument
жестко(
← →
Ega23 © (2009-08-04 09:50) [46]
> жестко(
Фигли жёстко? Читаю хелп, там сказано, что в случае передачи в конструктор валидного Owner-а эта хрень ведёт себя как обычный VCL-компонент (а-ля TOpenDialog или TDataSource).
В случае передачи туда nil - как TInterfacedObject с подсчётом ссылок.
← →
brother © (2009-08-04 10:38) [47]> Фигли жёстко?
я про опечатку, трудно обнаружить... человеческий фактор епт...
← →
Тимохов_ (2009-08-04 10:41) [48]
> oxffff © (04.08.09 08:30) [38]
> Теперь жду от тебя не меньшей аргументации.
Сергей, то была шутка: пародия на твою манеру лаконичного общения ))
Ну я думаю ты понял. А вот то, что ты дал наконец аргументированный ответ о том, как ты сделал бы weakref - это очень хорошо. :)
← →
pasha_golub © (2009-08-04 10:53) [49]
> Ega23 © (04.08.09 09:45) [44]
> Месяца 3 назад у меня было. Убил пол-дня.
У меня тоже. Но как раз я накосячил. Однако ж замыленному глазу найти что-то очень трудно.
← →
Anatoly Podgoretsky © (2009-08-04 11:27) [50]> pasha_golub (04.08.2009 10:53:49) [49]
I и T очень похожb в Courier New
← →
brother © (2009-08-04 11:28) [51]> I и T очень похожb в Courier New
подтверждаю
← →
brother © (2009-08-04 11:37) [52]те. подтверждаю )
← →
StriderMan (2009-08-04 12:10) [53]а че-то про TThread.FreeOnTerminate забыли? Тоже дурным тоном считается в широких кругах.
← →
pasha_golub © (2009-08-04 18:31) [54]
> StriderMan (04.08.09 12:10) [53]
>
> а че-то про TThread.FreeOnTerminate забыли? Тоже дурным
> тоном считается в широких кругах.
Если человек себе сама злобная деревяшка, то он где угодно граблю найдет. Я, например, на копи-пасте нарывался несколько раз. :)) Ну, что поделать, если у этого ДевЭкса такие длинные проперти и методы, млин.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2009.10.04;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.009 c