Inventory Form

This page is about Inventory Layouts dedicated TLazForm utilities.

This is meant to be used with TScriptForm with TScriptForm.CreateInventoryTab and will setup a a TLazTabSheet on it with several controls to configure the Inventory Layouts:

../../images/inventoryform.png

TInventoryFormHelper

The TInventoryFormHelper type is, as it’s name implies a helper type for the Inventory Form.

It has a lot of methods and callbacks that are hidden by default and won’t be mentioned on this page because they are internal methods you shouldn’t touch.

Do feel free to read the source code though if you so desire.


TInventoryFormHelper.SlotImage

function TInventoryFormHelper.SlotImage(item: String; amount: Integer): TImage;

Returns the sprite a slot holding amount of item is drawn with, stack text included.

The result is kept, keyed by both the item and the amount, because a redraw asks for the same sprites over and over and rendering the stack text is the most expensive part of drawing a slot.


TInventoryFormHelper.UpdateDrag

procedure TInventoryFormHelper.UpdateDrag();

Draws the item being dragged at the cursor over the slot composite TInventoryFormHelper.UpdateBackground built, and pushes the result to the imagebox.

This is the path the cursor takes, so it reuses that composite rather than rebuilding it: nothing behind the cursor changes while the cursor moves.


TInventoryFormHelper.UpdateBackground

procedure TInventoryFormHelper.UpdateBackground();

Redraws the slot composite into TInventoryFormHelper.SlotsImg: the gametab background, every slot’s item and the slot outlines.

All of that only changes when the layout, the selection or the drag source does, so the composite is kept for TInventoryFormHelper.UpdateDrag to reuse, and this is only called from the callbacks that change one of them.


InventoryForm.CreateGearCombobox

function TInventoryFormHelper.CreateGearCombobox(owner: Pointer; caption: TLazLabel = nil): TLazComboBox;

This is the only method from Gear Form you might need to use. This will create a combobox for you whose contents auto-update with changes made on the Gear Form.


InventoryForm variable

Global TInventoryFormHelper variable.


ScriptForm.CreateInventoryTab

function TScriptForm.CreateInventoryTab(): TLazTabSheet;

Sets up a TLazTabSheet on your TScriptForm to configure your Inventory Layouts.

Example:

{$I WaspLib/main.simba}
var
  form: TScriptForm;
begin
  form.Setup();
  form.CreateInventoryTab();
  form.Run();
end.
../../images/inventoryform.gif

For a more complete example check out the file Simba/Includes/WaspLib/examples/inventory_form.simba.