12.07.2015 Views

TMS Pack for FireMonkey Developers Guide - TMS Software

TMS Pack for FireMonkey Developers Guide - TMS Software

TMS Pack for FireMonkey Developers Guide - TMS Software

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>TMS</strong> SOFTWARE<strong>TMS</strong> <strong>Pack</strong> <strong>for</strong> <strong>FireMonkey</strong>DEVELOPERS GUIDE- OnItemAfterDraw: Event called after the item is drawed. This event can be used <strong>for</strong> customdrawing on top of the item.- OnItemAfterReturnDetail: Event called when the animation is completed that animates themain list view back to the original state after clicking on the backbutton.- OnItemBe<strong>for</strong>eDetail: Event called be<strong>for</strong>e the animation is started when clicking on an itemto animate the DetailView.- OnItemBe<strong>for</strong>eDraw: Event called be<strong>for</strong>e the item is drawn. This event can be used to hidethe background and per<strong>for</strong>m custom drawing.- OnItemBe<strong>for</strong>eReturnDetail: Event called be<strong>for</strong>e the animation is started when animatingthe main list back to the original state after clicking on the backbutton.- OnItemCaptionAnchorClick: Event called when clicking on an anchor when using HTML inthe Item Caption.- OnItemClick: Event called when clicking on an item.- OnItemCompare: Event called when sorting the items. Custom sorting can be applied to theitems collection.- OnItemCustomize: This event is called after creating a clone of the default item that isavailable in the default TableView style. Modifications on item appearance, interaction andfunctionality can be made through this event.- OnItemData: Event called when modyfing one of the Data* properties of an item.- OnItemDescriptionAnchorClick: Event called when clicking on an anchor when using HTMLin the Item Description.- OnItemDelete: Event called when deleting an item.- OnItemSelected: Event called when selecting an item.- OnManualLoadNextBuffer: When AutoLoadBuffer is false, this event is called when the listtries to load the next buffer.- OnManualLoadPreviousBuffer: When AutoLoadBuffer is false, this event is called when thelist tries to load the previous buffer.- OnManualLookup: When AutoLookup is false, this is event is called when the lookupbar isused to lookup a category.- OnMarkClick: Event called when clicking on the mark button which is displayed when theTableView is set in EditMode.- OnMoveClick: Event called when clicking on the move button which is displayed when theTableView is set in EditMode.- OnScroll: Event called when scrolling in the list.- OnScrollFinished: Event called when the scrolling is finished.Item storage and bufferingThe TableView implements a specific way of loading / displaying items. The design choices aredriven by making the TableView per<strong>for</strong>mant and resource friendly. Items are stored in aTCollection. When the component is first made visible on a <strong>for</strong>m, from this collection a displaylist ofitem shapes that are cloned from the default item shape are automatically created. Only a smallnumber of items are created initially. The other remaining items remain in the collection waiting tobe shown in the control by means of the generation of display items (shapes). This loading process isnecessary to make sure the TableView offers a good per<strong>for</strong>mance on various operating systems. Inother words, there is no speed impact when adding 10 items or 10000 items to the Items collection.Displayed items are only on demand and incrementally created. This loading / displaying process iscontrolled by a single property: BufferSize.The BufferSize property is set, by default, to 50. This means that only <strong>for</strong> the first 50 items displayitems are created. While scrolling in the list, the list automatically creates display items <strong>for</strong> thenext 50 items. This buffering method increases per<strong>for</strong>mance if balanced correctly. Setting theBufferSize to 0 will create display items at once <strong>for</strong> all items. Loading 10000 items with BufferSizeset to 0 will have an initial large per<strong>for</strong>mance hit as the creation of display items is a resourceintensive process (<strong>FireMonkey</strong> framework limitation) Setting BufferSize to 50 is good balance.30

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!