| **Navigation:**  [[abc library reference.htm|ABC Library Reference]] > EditEntryClass >====== EditEntryClass Conceptual Example {{c6h0009.jpg|C6H0009.jpg}} ====== | [[editentryclass source files.htm|{{btn_prev_n.gif|Previous page}}]][[abc library reference.htm|{{btn_home_n.gif|Return to chapter overview}}]][[editentryclass properties.htm|{{btn_next_n.gif|Next page}}]] | | || The following example shows a sequence of statements to declare, instantiate, initialize, use, and terminate an EditEntryClass object and a related BrowseClass object. The example page-loads a LIST of fieldnames and associated control attributes (such as color, icon, etc.), then edits the items with an EditEntryClass object. Note that the BrowseClass object calls the EditEntryClass object's methods as needed. **   PROGRAM** **_ABCDllMode_  EQUATE(0)** **_ABCLinkMode_ EQUATE(1)** **   INCLUDE('ABWINDOW.INC')    !declare WindowManager** **   INCLUDE('ABBROWSE.INC')    !declare BrowseClass** **   INCLUDE('ABEIP.INC')       !declare Edit-in-place classes** **   MAP** **   END** **Property   FILE,DRIVER('TOPSPEED'),PRE(PR),CREATE,BINDABLE,THREAD** **NameKey    KEY(PR:FieldName),NOCASE,OPT** **Record      RECORD,PRE()** **FieldName    STRING(30)** **Color        STRING(20)** **Hidden       STRING(1)** **IconFile     STRING(30)** **ControlType  STRING(12)** **            END** **           END** **PropView VIEW(Property)** **         END** **PropQ        QUEUE** **PR:FieldName   LIKE(PR:FieldName)** **PR:Color       LIKE(PR:Color)** **PR:ControlType LIKE(PR:ControlType)** **PR:Hidden      LIKE(PR:Hidden)** **PR:IconFile    LIKE(PR:IconFile)** **ViewPosition   STRING(1024)              ** **             END** **PropWindow WINDOW('Browse Field Properties'),AT(,,318,137),IMM,SYSTEM,GRAY** **       LIST,AT(8,4,303,113),USE(?PropList),IMM,HVSCROLL,FROM(PropQ),|** **       FORMAT( '50L(2)|_M~Field Name~@s30@[70L(2)|_M~Color~@s20@' &|** **           '60L(2)|_M~Control Type~@s12@' &|** **           '20L(2)|_M~Hide~L(0)@s1@/130L(2)|_M~Icon File~@s30@]|M')** **       BUTTON('&Insert'),AT(169,121),USE(?Insert)** **       BUTTON('&Change'),AT(218,121),USE(?Change),DEFAULT** **       BUTTON('&Delete'),AT(267,121),USE(?Delete)** **      END** **Edit:PR:Name CLASS(EditEntryClass)  !declare Edit:PR:Name-EIP ENTRY control** **Init         PROCEDURE(UNSIGNED FieldNumber,UNSIGNED ListBox,*? UseVar),VIRTUAL** **             END** **ThisWindow CLASS(WindowManager)** **Init        PROCEDURE(),BYTE,PROC,VIRTUAL** **Kill        PROCEDURE(),BYTE,PROC,VIRTUAL** **           END** **BRW1      CLASS(BrowseClass) !declare BRW1, the BrowseClass object** **Q          &PropQ            ! that drives the EditClass objects--** **          END                ! i.e. calls Init, TakeEvent, Kill** **GlobalErrors   ErrorClass** **Access:Property CLASS(FileManager)** **Init             PROCEDURE** **                END** **Relate:Property CLASS(RelationManager)** **Init             PROCEDURE** **Kill             PROCEDURE,VIRTUAL** **                END** **GlobalRequest    BYTE(0),THREAD** **GlobalResponse   BYTE(0),THREAD** **VCRRequest       LONG(0),THREAD** ** CODE** ** GlobalErrors.Init** ** Relate:Property.Init** ** GlobalResponse = ThisWindow.Run()** ** Relate:Property.Kill** ** GlobalErrors.Kill** **ThisWindow.Init  PROCEDURE()** **ReturnValue    BYTE,AUTO** ** CODE** ** SELF.Request = GlobalRequest** ** ReturnValue = PARENT.Init()** ** SELF.FirstField = ?PropList** ** SELF.VCRRequest &= VCRRequest** ** SELF.Errors &= GlobalErrors** ** Relate:Property.Open** ** BRW1.Init(?PropList,PropQ.ViewPosition,PropView,PropQ,Relate:Property,SELF)** ** OPEN(PropWindow)** ** SELF.Opened=True** **  BRW1.Q &= PropQ** **  BRW1.AddSortOrder(,PR:NameKey)** **  BRW1.AddField(PR:FieldName,BRW1.Q.PR:FieldName)   !edit with Edit:PR:Name** **  BRW1.AddField(PR:Color,BRW1.Q.PR:Color)   !edit with default EditEntryClass** **  !edit with default EditEntryClass** **  BRW1.AddField(PR:ControlType,BRW1.Q.PR:ControlType) ** **  BRW1.AddField(PR:Hidden,BRW1.Q.PR:Hidden) !edit with default EditEntryClass** **  !edit with default EditEntryClass** **  BRW1.AddField(PR:IconFile,BRW1.Q.PR:IconFile)** **  BRW1.AddEditControl(Edit:PR:Name,1)         !Use Edit:PR:Name for BRW1 col 1** **  BRW1.ArrowAction = EIPAction:Default+EIPAction:Remain+EIPAction:RetainColumn** **  BRW1.InsertControl=?Insert** **  BRW1.ChangeControl=?Change** **  BRW1.DeleteControl=?Delete** **  SELF.SetAlerts()** **  RETURN ReturnValue** **ThisWindow.Kill  PROCEDURE()** **ReturnValue    BYTE,AUTO** **  CODE** **  ReturnValue = PARENT.Kill()** **  Relate:Property.Close** **  RETURN ReturnValue** **Edit:PR:Name.Init PROCEDURE(UNSIGNED FieldNumber,UNSIGNED ListBox,*? UseVar)** ** CODE** ** PARENT.Init(FieldNumber,ListBox,UseVar)** ** SELF.Feq{PROP:CAP}=True            !force EIP mixed case input** **Access:Property.Init PROCEDURE      !initialize FileManager** ** CODE** ** PARENT.Init(Property,GlobalErrors)** ** SELF.FileNameValue = 'Property'** ** SELF.Buffer &= PR:Record** ** SELF.Create = 1** ** SELF.AddKey(PR:NameKey,'PR:NameKey',0)** **Relate:Property.Init PROCEDURE          !initialize RelationManager** ** CODE** ** Access:Property.Init** ** PARENT.Init(Access:Property,1)** **Relate:Property.Kill PROCEDURE          !shut down RelationManager** ** CODE** ** Access:Property.Kill** ** PARENT.Kill**