Иногда после длительного творческого забвения с трудом вспоминаешь некоторые детали, и начинаются всякого рода косяки.
Так что предлагаю тут делать небольшие примеры дабы быстрее изучить или вспомнить :)
Наследование и конструкторы

Код:
Add(MainForm,2953706,49,35)
{
 Width=285
 Height=115
}
Add(InlineCode,6323385,196,35)
{
 WorkPoints=#6:doTest|
 Code=#20:// Exsamle HiAsm OOP|15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|24: PCruptLst = ^TCruptLst;|15: {$ifndef F_P} |29: TCruptLst = object(TStrList)|8: {$else}|28: TCruptLst = class(TStrList)|9: {$endif}|10:   private|3:   |9:   public|24:     procedure CruptTxt;|6: end; |2:  |28: THiAsmClass = class(TDebug)|10:   private|16:	 cl: PCruptLst;|9:   public|45:	 procedure doTest(var dt: TData; idx: word);|5: end;|1: |63: function NewCruptLst{(Prop1: Type1; Prop2: Type2)}: PCruptLst;|0:|14:implementation|0:|62:function NewCruptLst{(Prop1: Type1; Prop2: Type2)}: PCruptLst;|5:begin|14:{$ifndef F_P} |22:   New(Result,Create);|52:   //Result.{Parent or Self Propmame := Prop1} и т.д|7:{$else}|31:   Result^ := TCruptLst.Create;|52:   //Result.{Parent or Self Propmame := Prop1} и т.д|8:{$endif}|5:end; |0:|55:procedure THiAsmClass.doTest(var dt: TData; idx: word);|5:begin|20:  cl := NewCruptLst;|14:  cl.CruptTxt;|18:  _debug(cl.Text);|4:end;|0:|29:procedure TCruptLst.CruptTxt;|5:begin|44:  {parent TStrList}Text := 'Omed'; //'Demo';|4:end;|0:|4:end.|
}
Add(Button,7930142,126,35)
{
 Left=90
 Top=25
 link(onClick,6323385:doTest,[])
}