Class HISTORY

Name

HISTORY  --  Класс предназначен для управления списком "истории"

Synopsis

 HistoryObj(nLrow, nLcol, nRrow, nRcol, sColor) --> QUEUE object

Description

Класс предназначен для управления списком "истории"

Attributes

<ClassName> HISTORY
<Lrow> Numeric, координаты области просмотра HISTORY
<Lcol> Numeric, координаты области просмотра HISTORY
<Rrow> Numeric, координаты области просмотра HISTORY
<Rcol> Numeric, координаты области просмотра HISTORY
<History> Array, массив элементов "истории"
<Header> String, заголовок окна
<Size> Numeric, максимальный размер массива "истории"
<ColorSpec> String, цветовая спецификация.
  
  "clr1, clr2, clr3, clr4"
  clr1 - основной цвет и цвет обрамления
  clr2 - цвет текущего элемента, если объект в фокусе
  clr3 - цвет текущего элемента, если объект не в фокусе
  clr4 - цвет заголовков
  

Methods

ADD Добавить элемент.
DELETE Удалить элемент.
FIRST Получить первый элемент.
HISTORYOBJ Конструктор объекта HISTORY.
INSERTTOFIRST Вставить элемент на первую позицию.
RUN Выполнить "историю"
SET Инициализировать "историю".
SETSIZE Изменить размер массива "истории"

Method HISTORY:ADD()

 Add(<sData>) --> NIL

Add() добавляет новый элемент <sData> в конец массива <::History>

Если <sData> уже существует в массиве <::History>, он удаляется со старого места и добавляется в конец <::History>.

Method HISTORY:DELETE()

 Delete(<sData>) --> TRUE || FALSE

Delete() удаляет элемент <sData> из массива <::History>. Размер <::History> не изменяется.

Если элемент <sData> существует в массиве <::History>, он удаляется со старого места, все нижние элементы сдвигаются вверх и Delete() возвращает TRUE.

Method HISTORY:FIRST()

 First() --> <sData>

First() возвращает первый элемент массива <::History> не удаляя его из массива.

Method HISTORY:HISTORYOBJ()

 HistoryObj(nLrow, nLcol, nRrow, nRcol, sColor) --> QUEUE object

HistoryObj() создает и возвращает новый объект класса HISTORY. Этот объект может использоваться для управления списком "истории" (например, списком "истории" загруженных файлов)

Method HISTORY:INSERTTOFIRST()

 InsertToFirst(<sData>) --> NIL

InsertToFirst() вставляет новый элемент "истории" <sData> на первую позицию в массив <::History>

Если <sData> уже существует в массиве <::History>, он просто перемещается на первую позицию.

Method HISTORY:RUN()

 Run([<nPos>][, <lItem>]) --> <vData>

Run() прорисовывает объект HISTORY, обрабатывает нажатие клавиш и возвращает по <ENTER> значение или индекс выбранного элемента.

Method HISTORY:SET()

 Set(<aArr>[, <nSize>]) --> NIL

Set() усекает длину массива <::History> до 0 и добавляет в него элементы из массива <aArr>.

Новый размер "истории" - <nSize>. Если параметр <nSize> не определен, то размер буфера истории определяется размером массива <aArr>.

Method HISTORY:SETSIZE()

 SetSize(<nSize>) -->

SetSize() устанавливает новый размер массива <::History> равный <nSize>

Example:

  History := HistoryObj(5, 5, 10, 30)
 do while .t.
 fname := fileDialog()
 if !empty(fname)
 History:InsertToFirst(fname)
 else
 exit
 endif
 enddo
 
 do while .t.
 fname := History:Run()
 str := memoread(fname)
 memoedit(str, 0, 0, maxrow(), maxcol())
 enddo
 

Platforms

Не зависит от платформы.