Вверх ↑
Пакеты 
HiAsm4
Windows 
Компоненты 
Инcтpумeнты 
Общие - Stack

Stack
Краткое описание
   Компонент предназначен для организации стека в программе.
Параметры
  • Default - Хранит данные по умолчанию
  • IgnorEmpty - Игнорировать попытку взятия значения из пустого стека при True, и выдать в поток данные по-умолчанию при False
  • Методы
  • doPush - Сохраняет текущее значение компонента и приравнивает его данным из потока
  • doPop - Извлекает значение из верхушки стека и делает его текущим
  • doClear - Очищает стек
  • События
  • onPush - Событие происходит всякий раз при сохранении данных в стеке
  • onPop - Событие происходит всякий раз при извлечении данных из стека
  • onEmpty - Событие происходит в случае попытки получить данные из пустого стека при св-ве IgnorEmpty=True
  • Свойства
  • Value - Содержит текущее значение компонента
  • Данные
  • Data - Данные для добавления в стек
  • Примеры
       Пример работы со стеком

    Add(MainForm,2953706,70,63)
    {
    Width=355
    Height=159
    }
    Add(Stack,2228421,273,63)
    {
    IgnorEmpty=1
    link(onPop,12607523:doText,[(317,76)(317,69)])
    link(Data,4419200:Text,[])
    }
    Add(Button,922246,161,63)
    {
    Left=105
    Top=20
    Caption="push"
    link(onClick,2228421:doPush,[])
    }
    Add(Edit,4419200,273,14)
    {
    Left=180
    Top=20
    Width=80
    Text=""
    }
    Add(Button,1107444,161,112)
    {
    Left=105
    Top=75
    Caption="pop"
    link(onClick,2228421:doPop,[(233,118)(233,76)])
    }
    Add(Label,12607523,329,63)
    {
    Left=180
    Top=75
    }
    Замечания
       Алгоритм работы любого стека можно сравнить с обработкой документов, поступающих на стол секретаря. Предположим секретарь в данный момент работает с документом Doc1. Начальник приносит документ Doc2, который требуется обработать в срочном порядке. Тогда секретарь кладет текущий документ Doc1 в стопку документов и приступает к работе с Doc2. Тут приходит налоговая испекция с проверкой и просит показвать документы Doc3. Что делает секретарь? Он опять кладет свой текущий документ Doc2 в стопку поверх Doc1 и достает из ящика стола Doc3, чтобы показать его инспекторам. Когда инспекторы уходят секретарь убирает документ Doc3 обратно в ящик стола и берет обратно верхний документ из стопки, т.е. Doc2. Когда работа с Doc2 будет законченна он опять возмет верхний документ из стопки - на этот раз Doc1 - и повторит эту операцию, пока стопка не опустеет.
       Тоже самое происходит и с данными стека: при выполнении операции push данные кладуться "поверх" общей кучи, а при выполнении операции pop извлекаются с верхушки этой кучи обратно в поток.

    Обновление элемента: [svn]Stack.pas[/svn]
    BB-code статьи для вставки
    Всего комментариев: 0
    (комментарии к статье еще не добавлены)
    Комментарий
    ...