Вверх ↑
Пакеты 
HiAsm4
Windows 
Компоненты 
Интерфейс 2 
Строковая таблица MT - MTStrTbl

MTStrTbl
Краткое описание
Основной модуль построения таблицы. MTStrTbl является менеджером для всех остальных клиентских модулей, кроме MST_DrawManager-a, для которого он сам является клиентом
Параметры
  • Left - Отступ элемента слева
  • Top - Отступ элемента от верха
  • Width - Ширина элемента
  • Height - Высота элемента
  • Align - Выравнивание элемента
  • Color - Цвет элемента
  • Font - Шрифт элемента
  • ParentFont - Использовать шрифт родительского компонента
  • Visible - Видимость элемента на экране
  • Enabled - Элемент разрешен/заблокирован
  • Cursor - Курсор
  • TabOrder - Определяет очередь передачи фокуса при нажатии Tab
  • Ctl3D - При установленном False 3-х мерная рамка вокруг элемента рисоваться не будет
  • Name - Имя элемента
  • HintIcon - Иконка слева от заголовка всплывающей подсказки
  • HintTitle - Заголовок всплывающей подсказки
  • Hint - Всплывающая подсказка
  • HintManager - Менеджер подсказок
  • Layout - Слой
  • WidthScale - Доля ширины элемента в слое
  • HeightScale - Доля высоты элемента в слое
  • ModeSp - Определяет внешний вид cплиттера (или его отсутствие)
  • SizeSp - Размер Splitter-а
  • ColorSp - Цвет Splitter-а
  • MinOwn - Минимальный размер, получающийся при уменьшении
  • MinRest - Минимальный размер, остающийся в родительском окне при увеличении
  • Columns - Параметры столбцов таблицы (формат строки параметров: NameCol(ColDelimiter)WidthCol(ColDelimiter)IndexIcon(ColDelimiter)AlignTxtCol (0 - taLeft; 1 - taRight; 2 - taCenter)). Примечание: экранирующие символы "(" и ")" в конечной строке применяться не должны, например: Col1=100==2 при ColDelimiter = "="
  • NIdxIcon - Позиция данных с индексом иконки (столбцы с этим номером, при групповом добавлении, в таблицу не добавляются). -1 - по-умолчанию, после данных строки
  • NColorRow - Позиция данных со значением цвета строки (столбцы с этим номером, при групповом добавлении, в таблицу не добавляются). -1 - по-умолчанию, после данных строки
  • Row - Индекс строки по-умолчанию
  • Col - Индекс столбца по-умолчанию
  • Scroll - True - разрешить прокрутку в окне, False - запретить прокрутку в окне. Несовместимо со стилями lvsList, lvsDetail, lvsDetailNoHeader
  • FlatScroll - True - разрешить плоский Scrollbar, False - не разрешать
  • ColDelimiter - Разделитель параметров столбцов по-умолчанию
  • ColumnWidth - Ширина колонок по-умолчанию
  • ColumnClick - Text - возвращать имя нажатого столбца, Index - возвращать его индекс
  • ColorItems - True - включить поддержку цвета ячеек, False - не включать
  • ImgColumn - True - показывать иконки столбцов, False - не показывать. В списке SmallIcons не должно быть пустых иконок
  • VirtualTab - True - перевести таблицу в виртуальный режим, False - не переводить
  • Redaction - True - разрешать редактирование ячеек, False - запретить редактирование
  • RowSelect - Выделение всей строки при её выборе
  • HeaderDragDrop - True - разрешить менять местами столбцы, False - не разрешать
  • TextAlign - Выpaвнивaние тeкcтa в столбце: пo лeвoмy кpaю (пo-yмoлчaнию), пo пpaвoмy кpaю и пo цeнтpy. Действительно для стилей lvsDetail и lvsDetailNoHeader
  • CheckBoxes - True - показать флажки состояния, False - скрыть флажки состояния
  • Style - Стиль таблицы
  • Grid - True - показать сетку, False - скрыть сетку
  • InfoTip - True - разрешить отображать Hint с полным текстом пункта таблицы, если текст не помещается в границы столбца, False - не разрешать
  • TrackSelect - True - разрешить слежение за курсором, False - не разрешать
  • MultiSelect - True - разрешить множественный выбор, False - запретить множественный выбор
  • EnableOnClick - True - включить событие onClick, False - выключить событие onClick
  • SmallIconsManager - Менеджер маленьких иконок
  • LargIconsManager - Менеджер больших иконок
  • StateIconsManager - Менеджер иконок состояния
  • DrawManager - Менеджер пользовательской отрисовки
  • Методы
  • doClientRect - Получает параметры клиентского прямоугольника заданной ячейки
  • doSetFocus - Устанавливает фокус на элементе
  • doSendToBack - Помещает элемент под всеми другими элементами формы
  • doBringToFront - Помещает элемент над всеми другими элементами формы
  • События
  • onClick - Событие происходит всякий раз при нажатии кнопки мыши на строке таблицы и выдает индекс строки в поток Out: [IndexRow]
  • onSelect=Событие происходит всякий раз после выбора новой строки таблицы и выдает индекс строки в поток. Повторный выбор одной и той же строки события не вызывает Out: [IndexRow]
  • onColumnClick - Событие происходит всякий раз при нажатии на заголовке столбца. Out: TextCol (IndexCol)
  • onCheck - Событие происходит всякий раз при изменении состояния флажка. Out: [IndexRow][Mode (0 - UnSelect, 1 - Select)]
  • onClientRect - Событие происходит всякий раз после получения параметров клиентского прямоугольника заданной ячейки и выдает их в поток. Out: [Left][Top][Width][Height]
  • onKeyUp - Событие происходит всякий раз при отпускании клавиши. Возвращает целое число - код клавиши
  • onKeyDown - Событие происходит всякий раз при нажатии на клавишу. Возвращает целое число - код клавиши
  • onChar - Событие происходит после onKeyDown в случае текстового соответствия клавиши. Возвращает целое число - код символа
  • onShow - Событие происходит всякий раз при показе/скрытии элемента на экране
  • onResize - Событие происходит всякий раз при изменении размера элемента
  • onMouseDown - Событие происходит всякий раз при клике в области компонента (перед событием onClick) и возвращает в поток код нажатой кнопки
  • onMouseMove - Событие происходит всякий раз при перемещении мышки над компонентом и возвращает в поток код нажатой кнопки
  • onMouseUp - Событие происходит всякий раз при отпускании кнопки мыши и возвращает в поток код нажатой кнопки
  • onMouseWheel - Событие происходит всякий раз после прокрутки колеса мыши над элементом
  • onMove - Событие происходит всякий раз при перемещении элемента по экрану
  • onPaint - Событие происходит всякий раз при необходимости отрисовать элемент. И в потоке содержит Context рисования, что позволяет рисовать в режиме DblBuffered
  • onDblClick - Событие происходит всякий раз при двойном клике на элементе
  • onSetFocus - Событие происходит всякий раз при установке фокуса на элементе
  • onKillFocus - Событие происходит всякий раз при потере фокуса элементом
  • onSplitUp - Событие происходит по окончании (MouseUp) изменения размера элемента сплиттером
  • onBeforeLineChange - Событие происходит всякий раз перед редактированием строки в списке и выдает эту строку кортежем в поток
  • onLineChange - Событие происходит всякий раз после редактирования строки в списке и выдает эту строку кортежем в поток
  • Свойства
  • Select - Содержит выбранную строку, где строка - это набор MT-элементов со значениями каждой колонки и кортежем данных. Var: [SubRow0][SubRow1] ... [SubRowN][Data1] ... [DataN]
  • Index - Содержит индекс выделенной строки
  • Count - Содержит количество строк
  • CountCol - Содержит количество столбцов
  • EndIdx - Содержит индекс последней строки в таблице
  • EndIdxCol - Содержит индекс последнего столбца в таблице
  • Handle - Содержит идентификатор элемента
  • PHandle - Содержит указатель на элемент
  • Width - Ширина элемента
  • Height - Высота элемента
  • Left - Содержит отступ элемента слева от родительского компонента
  • Top - Содержит отступ элемента от верха родительского компонента
  • MouseX - Хранит X координату мыши после событий OnMouseXXXX
  • MouseY - Хранит Y координату мыши после событий OnMouseXXXX
  • ItemAtPos - Содержит индекс элемента в окне, находящегося по координатам MouseX, MouseY
  • TopItem - Содержит индекс элемента, отображаемого в первой строке списка
  • PerPage - Содержит количество целых элементов, вмещающихся в одну страницу
  • MTStrTbl - Содержит указатель на компонент
  • Данные
  • CodePageSet - На эту точку выдается подстрока при добавлении в таблицу для декодирования в нужную кодовую страницу. После декодирования, подстрока должна вернуться на эту же точку
  • CodePageGet - На эту точку выдается подстрока при получении из таблицы для декодирования в нужную кодовую страницу. После декодирования, подстрока должна вернуться на эту же точку
  • Row - Индекс строки
  • Col - Индекс столбца
  • WidthControls - Предварительный анализ изменений. Передается в потоке "на верх" желаемое изменение ширины контролла. Возвращаемое значение принимается за правильное изменение ширины контролла. Если точка отключена - ничего не меняется
  • HeightControls - Предварительный анализ изменений. Передается в потоке "на верх" желаемое изменение высоты контролла. Возвращаемое значение принимается за правильное изменение высоты контролла. Если точка отключена - ничего не меняется
  • Примеры
    Пример добавления и очистки строк и столбцов

    
    Add(MainForm,3910667,182,105)
    {
    Height=319
    Caption="Example"
    }
    Add(MTStrTbl,2452207,294,105)
    {
    Left=5
    Top=5
    Width=380
    Height=220
    Name="tab"
    FlatScroll=1
    }
    Add(MST_ColAction,11112215,329,378)
    {
    MSTControl="tab"
    }
    Add(InfoTip,6675968,252,63)
    {
    Info=#7:Таблица|
    Font=[MS Sans Serif,8,1,0,1]
    Width=127
    Height=88
    }
    Add(Button,14866546,182,378)
    {
    Left=10
    Top=235
    Width=70
    Caption="AddCols1"
    link(onClick,3010226:doAdd,[])
    }
    Add(StrList,6602338,238,182)
    {
    Strings=#11:Col1=100==2|11:Col2=100==2|11:Col3=100==2|
    }
    Add(ArrayEnum,2290980,252,252)
    {
    link(onItem,4863294:doColAction,[])
    link(onEndEnum,6821595:doEvent1,[(308,265)(308,244)])
    link(Array,6602338:Array,[])
    }
    Add(MT_AddData,3010226,252,378)
    {
    Count=3
    link(onAdd,2510104:doEvent1,[])
    link(Data1,3654035:Value,[(258,366)(223,366)])
    link(Data2,16103644:Value,[])
    link(Data3,6379968:Value,[(272,366)(307,366)])
    }
    Add(Memory,3654035,217,322)
    {
    Default=String(Col1=100==2)
    }
    Add(Memory,16103644,259,322)
    {
    Default=String(Col2=100==2)
    }
    Add(Memory,6379968,301,322)
    {
    Default=String(Col3=100==2)
    }
    Add(Button,11080410,175,252)
    {
    Left=85
    Top=235
    Width=70
    Caption="AddCols2"
    link(onClick,2290980:doEnum,[])
    }
    Add(MST_ColAction,4863294,329,252)
    {
    MSTControl="tab"
    }
    Add(InfoTip,1258902,168,161)
    {
    Info=#29:1-й метод добавления столбцов|
    Font=[MS Sans Serif,8,1,0,1]
    Width=211
    Height=130
    }
    Add(Button,3236190,434,238)
    {
    Left=160
    Top=235
    Width=70
    Enabled=1
    Caption="AddRows1"
    Point(doEnabled)
    link(onClick,10041622:doEnum,[])
    }
    Add(MST_RowAction,12985991,595,224)
    {
    MSTControl="tab"
    }
    Add(InfoTip,15538785,420,161)
    {
    Info=#26:1-й метод добавления строк|
    Font=[MS Sans Serif,8,1,0,1]
    Width=218
    Height=130
    }
    Add(StrList,15034837,476,182)
    {
    Strings=#14:sdfsdf;aaaaa;0|14:fzsdfzs;bbbb;3|13:sdfszz;cccc;2|14:sdfszz;ddddd;0|14:sdfszz;eeeee;1|14:sdfszz;fffff;3|14:fzsdfzs;gggg;2|13:sdfszz;hhhh;0|15:fzsdfzs;iiiii;3|15:sdfszz;jjjjjj;1|
    }
    Add(MT_String,922736,546,224)
    {
    Point(doMTString)
    link(onResult,12985991:doRowAction,[])
    }
    Add(ArrayEnum,10041622,490,238)
    {
    link(onItem,922736:doMTString,[])
    link(Array,15034837:Array,[])
    }
    Add(Hub,2510104,294,378)
    {
    link(onEvent1,11112215:doColAction,[])
    link(onEvent2,6821595:doEvent2,[(322,391)(322,418)(369,418)(369,251)])
    }
    Add(StrList,602236,476,322)
    {
    Strings=#14:sdfsdf;aaaaa;0|14:fzsdfzs;bbbb;3|13:sdfszz;cccc;2|14:sdfszz;ddddd;0|14:sdfszz;eeeee;1|14:sdfszz;fffff;3|14:fzsdfzs;gggg;2|13:sdfszz;hhhh;0|15:fzsdfzs;iiiii;3|15:sdfszz;jjjjjj;1|
    }
    Add(Hub,6821595,392,238)
    {
    InCount=2
    link(onEvent1,3236190:doEnabled,[])
    link(onEvent2,7008490:doEnabled,[(416,251)(416,384)])
    }
    Add(Button,7008490,441,378)
    {
    Left=235
    Top=235
    Width=70
    Enabled=1
    Caption="AddRows2"
    Point(doEnabled)
    link(onClick,1302391:doEnum,[])
    }
    Add(MultiStrPart,8180548,546,378)
    {
    Count=3
    link(onSplit,7591723:doAdd,[(587,384)(587,366)(534,366)(534,433)])
    }
    Add(MT_AddData,7591723,546,427)
    {
    Count=3
    link(onAdd,3841903:doRowAction,[])
    link(Data1,8180548:Part1,[])
    link(Data2,8180548:Part2,[])
    link(Data3,8180548:Part3,[])
    }
    Add(MST_RowAction,3841903,595,427)
    {
    MSTControl="tab"
    }
    Add(ArrayEnum,1302391,490,378)
    {
    link(onItem,8180548:doSplit,[])
    link(Array,602236:Array,[])
    }
    Add(InfoTip,13113295,420,301)
    {
    Info=#26:2-й метод добавления строк|
    Font=[MS Sans Serif,8,1,0,1]
    Width=218
    Height=165
    }
    Add(Button,13129537,182,469)
    {
    Left=310
    Top=260
    Width=70
    Caption="ClearAll"
    Point(doEnabled)
    link(onClick,12587058:doClear,[])
    }
    Add(InfoTip,690850,168,301)
    {
    Info=#29:2-й метод добавления столбцов|
    Font=[MS Sans Serif,8,1,0,1]
    Width=211
    Height=130
    }
    Add(MST_Clear,12587058,252,469)
    {
    ClearAll=0
    MSTControl="tab"
    }
    Add(InfoTip,14426837,168,441)
    {
    Info=#22:Полная очистка таблицы|
    Font=[MS Sans Serif,8,1,0,1]
    Width=211
    Height=74
    }
    Add(Button,14893031,182,546)
    {
    Left=310
    Top=235
    Width=70
    Caption="Clear"
    Point(doEnabled)
    link(onClick,8265910:doClear,[])
    }
    Add(MST_Clear,8265910,252,546)
    {
    MSTControl="tab"
    }
    Add(InfoTip,7397894,168,525)
    {
    Info=#21:Очистка строк таблицы|
    Font=[MS Sans Serif,8,1,0,1]
    Width=211
    Height=74
    }

    Замечания
    Форматные свойства столбцов допускают следующие типы сокращения (примеры приведены для ColDelimiter = "=")

    1. Col1==1=2, будет означать, что ширина столбца возьмется по-умолчанию, из свойства ColumnWidth
    2. Col1=100==2, будет означать, что иконки у столбца не будет (иконки столбцов зависят от свойства ImgColumn. Те, даже, если присвоить какое-то значение в этом поле, но не будет установлено свойство ImgColumn, автоматически назначится отсутствие иконки)
    3. Col1=100=1, будет означать, что выравниваение текста в столбце возьмется по-умолчанию, из свойства TextAlign
    4. Col1=100, будет означать, что создасться столбец с именем Col1 и шириной 100, все остальные параметры возьмутся по-умолчанию
    5. Col1, будет означать, что создасться столбец с именем Col1, все остальные параметры возьмутся по-умолчанию
    6. =100=1=2, отсутствие первого параметра, вне зависимости от установленных остальных параметров, будет означать, что создастся столбец со всеми параметрами по-умолчанию и с пустым именем

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