Перейти к содержанию

Использование компонента listview


MasterGH

Рекомендуемые сообщения

Для тех кто хочет использовать этот компонент, а также другие на этом примере с setProperty не из дизайнера создания форм.

В данном примере создаётся ListView с 3 столбцами и 3 строками.

f=createForm() 
lv=createListView(f)
setProperty(lv, 'ViewStyle', 'vsReport') --non lua exported property but you can access it with this
setProperty(lv, 'RowSelect', 'True')
setProperty(lv, 'ReadOnly', 'True')
lvc=listview_getColumns(lv)
column1=listcolumns_add(lvc)
column2=listcolumns_add(lvc)
column3=listcolumns_add(lvc)

listcolumn_setCaption(column1, 'a')
listcolumn_setCaption(column2, 'b')
listcolumn_setCaption(column3, 'c')

lvi=listview_getItems(lv);
row1=listitems_add(lvi)
listitem_setCaption(row1, 'Row 1'); --rw 1 column a
row1_subitems=listitem_getSubItems(row1) --returns a Strings object
strings_add(row1_subitems, 'r1_cb') --row 1 column b
strings_add(row1_subitems, 'r1_cc') --row 1 column c


row2=listitems_add(lvi)
listitem_setCaption(row2, 'Row 2');
row2_subitems=listitem_getSubItems(row2)
strings_add(row2_subitems, 'r2_cb')
strings_add(row2_subitems, 'r2_cc')


row3=listitems_add(lvi)
listitem_setCaption(row3, 'Row 3');
row3_subitems=listitem_getSubItems(row3)
strings_add(row3_subitems, 'r3_cb')
strings_add(row3_subitems, 'r3_cc')

Источник форум CE.

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Продолжение о setProperty

Если Вы хотите узнать открытые свойства некоторого объекта некоторого класса для использования их в функции setProperty, то это можно сделать, например, так.


trainerForm = createForm()
print(strings_getText(getPropertyList(trainerForm)))

В данном примере вы получите publish свойства. Их вы можете увидеть также в дизайнере форм.


Name
Tag
AnchorSideLeft
AnchorSideTop
AnchorSideRight
AnchorSideBottom
Cursor
Left
Height
Hint
Top
Width
HelpType
HelpKeyword
HelpContext
HorzScrollBar
VertScrollBar
Align
AlphaBlend
AlphaBlendValue
Anchors
AutoScroll
AutoSize
BiDiMode
BorderIcons
BorderStyle
BorderWidth
Caption
ChildSizing
ClientHeight
ClientWidth
Color
Constraints
DefaultMonitor
DockSite
DragKind
DragMode
Font
FormStyle
Icon
KeyPreview
ParentBiDiMode
ParentFont
PixelsPerInch
Position
ShowInTaskBar
WindowState
DoNotSaveInTable

Эти свойства классов вы не найдёте в описании Lua-поддержки.

В дизайнере форм вы можете увидеть свойства, которых в подобном списке нет. Это значит, что вы не можете обратиться к ним.

Как можно использовать эти свойства? Вот ответ:

undefined property functions. Not all properties of all classes have been explicitly exposed to lua, but if you know the name of a property of a specific class you can still access them (assuming they are declared as published in the pascal class declaration)

getPropertyList(class) : Returns a stringlist object containing all the published properties of the specified class (free the list when done) (Note, not all classed with properties have 'published' properties. E.g: stringlist)

setProperty(class, propertyname, propertyvalue) : Sets the value of a published property of a class (Won't work for method properties)

getProperty(class, propertyname) : Gets the value of a published property of a class (Won't work for method properties)

Например, я захотел сделать Лейбл названия игры, чтобы он выравнивался по центру, а также чтобы колонка Листбокса выравнивалась по центру.

post-3-1312708926,84_thumb.png


....
gameNameLabel = createLabel(trainerForm)
control_setCaption(gameNameLabel, "The game")
setProperty(gameNameLabel, 'Alignment', 'taCenter')
setProperty(gameNameLabel, "AutoSize", "false")

....
lv = createListView(trainerForm)
control_setPosition(lv, 4, 99 + 20)
control_setSize(lv, 590, 250-20) -- control_setSize(lv, 350, 250)
setProperty(lv, "Checkboxes", "true")
setProperty(lv, 'RowSelect', 'True')
setProperty(lv, 'ReadOnly', 'True')
lvc=listview_getColumns(lv)
column2=listcolumns_add(lvc)
listcolumn_setCaption(column2, 'Hot-Keys')
setProperty(column2, 'Alignment', 'taCenter')
....

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.