Вверх ↑
Пакеты 
HiAsm4
Windows 
Компоненты 
Фaйлы 
Структуированное хранилище - SStorage_DS

SStorage_DS
Краткое описание
  Основной модуль построения структуированного хранилища. SStorage_DS является менеджером для всех остальных клиентских модулей
Параметры
  • Name - Имя элемента
  • StgFilePath - Путь к файлу хранилища по-умолчанию
  • Методы
  • doOpenStorage - Открывает файл хранилища ARG(StgFilePath)
  • doCloseStorage - Закрывает текущее хранилище
  • События
  • onOpenStorage - Событие происходит всякий раз при успешном открытии хранилища ARG(StgFilePath)
  • onError - Событие происходит всякий раз при возникновении ошибки ARG(ErrorCode)
  • Данные
  • StgFilePath - Путь к файлу хранилища
  • Примечания
    Коды ошибок:

    0 - Нормальное завершение операций
    1 - Неверное имя файла
    2 - Файл не является хранилищем
    3 - Невозможно открыть хранилище
    4 - Хранилище недоступно
    5 - Такая папка уже существует
    6 - Невозможно создать папку
    7 - Недоступен входной файловый поток
    8 - Невозможно удалить элемент
    9 - Невозможно переименовать элемент в самого себя
    10 - Невозможно переименовать элемент
    11 - Невозможно скопиовать элемент в самого себя
    12 - Невозможно скопировать элемент
    13 - Невозможно переслать элемент в самого себя
    14 - Невозможно переслать элемент
    15 - Невозможно упаковать открытое хранилище
    16 - Невозможно упаковать хранилище
    17 - Недоступна корневая папка
    18 - Невозможно перечислить элементы
    19 - Невозможно добавить файл
    20 - Невозможно объединитьcя с открытым хранилищем
    21 - Невозможно объединить хранилища
    Примеры
    Пример использования клиент/менеджер модулей SStorage в качестве простого хранилища (файловый "мешок")
    
    Add(MainForm,2953706,63,49)
    {
    Width=352
    Height=296
    Caption="Пример SStorage"
    Point(onClose)
    }
    Add(SStorage_DS,6585589,252,119)
    {
    Name="ssg"
    Point(onError)
    link(onOpenStorage,7707941:doWork2,[])
    }
    Add(SDialog,3436997,119,119)
    {
    Title="Open Dialog"
    link(onExecute,16461986:doWork2,[])
    }
    Add(Button,8402287,63,119)
    {
    Left=45
    Top=220
    Caption="Create"
    link(onClick,3436997:doExecute,[])
    }
    Add(Button,14115478,63,175)
    {
    Left=240
    Top=220
    Caption="Open"
    link(onClick,5134970:doExecute,[])
    }
    Add(ODialog,5134970,119,175)
    {
    link(onExecute,16461986:doWork3,[(221,181)])
    }
    Add(HubEx,16461986,217,119)
    {
    link(onEvent,6585589:doOpenStorage,[])
    }
    Add(STG_AddFileTo,2032133,315,238)
    {
    SStorage_DS="ssg"
    link(onAddFileTo,7707941:doWork3,[(361,244)])
    link(InPath,10740221:Part,[(321,231)(306,231)(306,287)(195,287)])
    link(SrcStream,9313797:Stream,[(328,226)(300,226)(300,280)(258,280)])
    }
    Add(ODialog,13208921,119,238)
    {
    link(onExecute,10740221:doPart,[])
    }
    Add(Button,8084336,63,238)
    {
    Left=145
    Top=220
    Caption="Add"
    link(onClick,13208921:doExecute,[])
    }
    Add(HubEx,7707941,357,119)
    {
    link(onEvent,9595835:doEvent1,[])
    }
    Add(FileStream,9313797,252,238)
    {
    link(onLoad,2032133:doAddFileTo,[])
    }
    Add(STG_ExtractFileFrom,3616426,560,245)
    {
    SStorage_DS="ssg"
    link(onExtractFileFrom,1999512:doEvent1,[])
    link(InPath,12633576:Var1,[(566,211)])
    }
    Add(FilePartElm,10740221,189,238)
    {
    Point(Part)
    link(onPart,9313797:doOpen,[])
    }
    Add(FileStream,11358944,672,231)
    {
    Mode=1
    AutoCopy=0
    Point(doCopyFromStream)
    link(FileName,12633576:Var2,[])
    }
    Add(TreeViewTrain,11892122,560,119)
    {
    Left=8
    Top=10
    Width=325
    Height=135
    Name="tree"
    CaptionIndex=3
    IDIndex=1
    IconIndex=2
    Numeric=0
    Point(doExpandNode)
    Point(doExpand)
    link(onClick,6735866:doValue,[])
    }
    Add(STG_Enumerator,4568045,434,126)
    {
    SStorage_DS="ssg"
    link(onEnumAllElements,390211:doEvent1,[])
    }
    Add(TVT_AddNode,16055576,560,168)
    {
    TreeView="tree"
    }
    Add(Hub,390211,504,126)
    {
    link(onEvent1,16055576:doAddNode,[(539,132)(539,174)])
    link(onEvent2,11892122:doExpand,[])
    }
    Add(Hub,9595835,392,119)
    {
    InCount=2
    link(onEvent1,11892122:doClear,[])
    link(onEvent2,4568045:doEnumAllElements,[])
    }
    Add(Message,1330003,672,287)
    {
    Message="ОК"
    }
    Add(Button,13290962,434,245)
    {
    Left=145
    Top=175
    Caption="Extract"
    link(onClick,3616426:doExtractFileFrom,[])
    }
    Add(Hub,1999512,623,245)
    {
    link(onEvent1,11358944:doCopyFromStream,[])
    link(onEvent2,1330003:doMessage,[(655,258)(655,293)])
    }
    Add(GetDataEx,12633576,672,206)
    {
    link(Data,6735866:Value4,[])
    }
    Add(MT_MultiMem,6735866,651,119)
    {
    Count=4
    }


    Пример использования клиент/менеджер модулей SStorage для чтения структуры WinWord файлов *.doc

    
    Add(MainForm,2953706,182,217)
    {
    Width=681
    Height=423
    }
    Add(TreeViewTrain,4303500,364,161)
    {
    Width=311
    Height=389
    Align=1
    Font=[Arial,8,1,0,204]
    WinStyle=2
    Name="stgtree"
    Layout="grid"
    HeightScale=100
    ModeSp=3
    SizeSp=2
    Tooltips=0
    IconsManager="icons"
    DragDrop=0
    CaptionIndex=3
    IDIndex=1
    IconIndex=2
    Numeric=0
    Point(NextID)
    Point(doExpand)
    Point(onDrop)
    Point(DropAccept)
    Point(onMouseDown)
    Point(onDblClick)
    Point(doCollapse)
    Point(Handle)
    Point(doExpandNode)
    Point(doSort)
    Point(onKeyDown)
    Point(doExpandToggle)
    link(onClick,6728012:doSeparateMT,[])
    }
    Add(SStorage_DS,6540375,224,161)
    {
    Name="sstg"
    Point(onError)
    link(onOpenStorage,634141:doEvent1,[])
    }
    Add(STG_Enumerator,6644416,364,217)
    {
    SStorage_DS="sstg"
    Point(onEndEnumAll)
    link(onEnumAllElements,10415196:doAddNode,[])
    }
    Add(TVT_AddNode,10415196,406,217)
    {
    TreeView="stgtree"
    }
    Add(Hub,634141,273,161)
    {
    OutCount=3
    link(onEvent1,4303500:doClear,[])
    link(onEvent2,6644416:doEnumAllElements,[(301,174)(301,223)])
    link(onEvent3,14789619:doData,[(297,181)(297,188)])
    }
    Add(Button,13267466,140,161)
    {
    Left=435
    Top=365
    Width=120
    TabOrder=-1
    Layout="grid"
    Caption="Load"
    link(onClick,16479320:doExecute,[])
    }
    Add(ODialog,16479320,182,161)
    {
    Filter="Файлы WinWord (*.doc)|*.doc"
    Title="Диалог выбора"
    FileName=""
    link(onExecute,6540375:doOpenStorage,[])
    }
    Add(MT_MultiData,6728012,406,161)
    {
    From=1
    Count=1
    link(onData1,2102961:doItemPath,[])
    }
    Add(TVT_ItemPath,2102961,448,161)
    {
    TreeView="stgtree"
    link(onItemPath,346256:doExtractFileFrom,[])
    }
    Add(STG_ExtractFileFrom,346256,490,161)
    {
    SStorage_DS="sstg"
    link(onExtractFileFrom,5132769:doConvert,[])
    }
    Add(Memo,740361,574,140)
    {
    Left=315
    Width=355
    Height=360
    Layout="grid"
    WidthScale=100
    ScrollBars=3
    }
    Add(DoData,14789619,308,182)
    {
    Data=Integer(1)
    link(onEventData,4303500:doExpandNode,[])
    }
    Add(Stream2Hex,5132769,532,161)
    {
    Mode=4
    link(onResult,740361:doText,[])
    }
    Замечания
    Обновление элемента: [svn]SStorage_DS.pas[/svn]
    BB-code статьи для вставки
    Всего комментариев: 0
    (комментарии к статье еще не добавлены)
    Комментарий
    ...