| **Navigation:**  [[abc library reference.htm|ABC Library Reference]] > EditFileClass >====== EditFileClass Conceptual Example {{c6h0009.jpg|C6H0009.jpg}} ====== | [[editfileclass source files.htm|{{btn_prev_n.gif|Previous page}}]][[abc library reference.htm|{{btn_home_n.gif|Return to chapter overview}}]][[editfileclass properties.htm|{{btn_next_n.gif|Next page}}]] | | || The following example shows a sequence of statements to declare, instantiate, initialize, use, and terminate an EditFileClass 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 "IconFile" items with an EditFileClass object. Note that the BrowseClass object calls the "registered" EditFileClass 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)  !edit this LIST field with the file dialog** **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** **!declare Edit:PR:IconFile-EIP file dialog** **Edit:PR:IconFile  CLASS(EditFileClass)** **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)** **  BRW1.AddField(PR:Color,BRW1.Q.PR:Color)** **  BRW1.AddField(PR:ControlType,BRW1.Q.PR:ControlType)** **  BRW1.AddField(PR:Hidden,BRW1.Q.PR:Hidden)** **  BRW1.AddField(PR:IconFile,BRW1.Q.PR:IconFile)** **  !Use Edit:PR:IconFile to edit BRW1 col 5** **  BRW1.AddEditControl(Edit:PR:IconFile,5)    ** **  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:IconFile.Init PROCEDURE(UNSIGNED FieldNumber,UNSIGNED ListBox,*? UseVar)** **  CODE** **  PARENT.Init(FieldNumber,ListBox,UseVar)** **  SELF.Title='Select icon file'               !set EIP file dialog title** **  SELF.FilePattern='Icon files *.ico|*.ico'   !set EIP file dialog file masks** **  SELF.FileMask=FILE:KeepDir+FILE:LongName    !set EIP file dialog behavior flag** **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**