{
From: jmillard@nmsu.edu (James B. Millard)
I'll post this again.  This is my TPW/OWL version of the 64k edit control.
I had to override the Create procedure (I also had to bring the
AttachProperties procedure out of odialogs...).  I have put slightly more
than 64k in this edit control.
}

Function TEditEx.Create: Boolean;
Var HParent            : HWnd;
    EditDS, AInstance  : THandle;
    EditDSPtr          : Pointer;
Begin
   DisableAutoCreate;
   If (Parent=NIL) Then HParent:=0 Else HParent:=Parent^.HWindow;
   EditDS:=GlobalAlloc(GMEM_DDEShare OR GMEM_Moveable OR GMEM_ZeroInit, 4096);
   If (EditDS=0) Then AInstance:=HInstance
   Else Begin
      EditDSPtr:=GlobalLock(EditDS);
      LocalInit(HiWord(LongInt(EditDSPtr)), 16, Word(GlobalSize(EditDS)-16));
      UnlockSegment(HiWord(LongInt(EditDSPtr)));
      AInstance:=HiWord(LongInt(EditDSPtr));
   End;
   If Register Then With Attr Do CreateWindowEx(ExStyle, GetClassName, Title,
    Style, X, Y, W, H, HParent, Id, AInstance, Param);
   HWindow:=GetDlgItem(HParent, Attr.ID);
   If (HWindow=0) Then Status:=em_InvalidWindow
   Else If (GetObjectPtr(HWindow)=NIL) Then Begin
      AttachProperties(HWindow, @Self);
      DefaultProc:=TFarProc(SetWindowLong(HWindow, gwl_WndProc,
LongInt(Instance)));
      SetupWindow;
   End;
   Create:=(Status=0);
   SendMessage(HWindow, em_LimitText, 0, 0);
End;


