Overview

TilerEffectLib repeats the image in a grid pattern, wrapping the FireMonkey TTilerEffect component. Useful for creating wallpaper-like patterns, thumbnail grids, mosaic effects, or kaleidoscope-style visuals.

PropertyDetails
LibraryTilerEffectLib
Prefixtiler_
WrapsTTilerEffect
Functions14
TypeVisual effect (pattern)
CategoryCountDescription
Creation / Destruction2Create and free effect
Tile Count4Get/set horizontal and vertical tiles
Effect Control4Enabled and trigger get/set
Error Handling4Error codes and messages
▦ Grid Repeat: A tile count of 1×1 shows the original image unchanged. A 2×2 grid fits four copies of the image into the same space. Higher counts create smaller tiles — great for wallpaper patterns or contact-sheet style layouts.

Cross-Platform Support

PlatformSupport
Windows✅ Full support
Linux✅ Full support
Android✅ Full support

Creation & Destruction

tiler#(parent#)

Creates a new tiler effect attached to the specified visual control.

ParameterTypeDescription
parent#PointerTarget visual control
ReturnsPointerEffect handle, or 0 on failure

tiler_free(effect#)

Destroys the effect and releases associated resources.

Error Handling

FunctionSignatureDescription
tiler_error()tiler_error@Returns last error code (0 = none)
tiler_errormsg$()tiler_errormsg$@Returns last error message
tiler_strerror$(code)tiler_strerror$@nConverts error code to text
tiler_clearerror()tiler_clearerror@Clears the error state

Tile Count

Controls how many times the image is repeated horizontally and vertically. Each axis is independent — you can create asymmetric grids like 2×3 or 4×1.

FunctionSignatureDescription
tiler_htiles#(effect#, value)tiler_htiles#@#nSet horizontal tile count
tiler_htiles(effect#)tiler_htiles@#Get horizontal tiles
tiler_vtiles#(effect#, value)tiler_vtiles#@#nSet vertical tile count
tiler_vtiles(effect#)tiler_vtiles@#Get vertical tiles
PatternH TilesV TilesTotal
Original111 copy
2×2 grid224 copies
3×3 grid339 copies
Horizontal strip414 copies
Vertical strip144 copies

Effect Control

FunctionSignatureDescription
tiler_enabled#(effect#, value)tiler_enabled#@#nEnable (1) or disable (0)
tiler_enabled(effect#)tiler_enabled@#Gets enabled state
tiler_trigger#(effect#, trigger$)tiler_trigger#@#$Sets trigger string
tiler_trigger$(effect#)tiler_trigger$@#Gets trigger string

Complete Examples

Example 1: Adjustable Tile Count

╯ tiler-control.bas
let frm# = Pointer#(0)
let img# = Pointer#(0)
let tiler# = Pointer#(0)
let trkH# = Pointer#(0)
let trkV# = Pointer#(0)
let lblH# = Pointer#(0)
let lblV# = Pointer#(0)

frm# = form#("Tiler Control", 500, 450)

img# = image#(frm#)
image_bounds#(img#, 150, 20, 200, 150)
image_load#(img#, "https://picsum.photos/200/150")

tiler# = tiler#(img#)
tiler_htiles#(tiler#, 2)
tiler_vtiles#(tiler#, 2)

lblH# = label#(frm#, "Horizontal: 2", 30, 190)
trkH# = trackbar#(frm#)
trackbar_bounds#(trkH#, 30, 215, 440, 25)
trackbar_max#(trkH#, 8)
trackbar_value#(trkH#, 2)
trackbar_onchange#(trkH#, "OnHorizontal")

lblV# = label#(frm#, "Vertical: 2", 30, 260)
trkV# = trackbar#(frm#)
trackbar_bounds#(trkV#, 30, 285, 440, 25)
trackbar_max#(trkV#, 8)
trackbar_value#(trkV#, 2)
trackbar_onchange#(trkV#, "OnVertical")

form_show(frm#)

function OnHorizontal(sender#) local h
  let h = trackbar_value(trkH#)
  if h < 1 then h = 1
  tiler_htiles#(tiler#, h)
  label_text#(lblH#, "Horizontal: " + str$(h))
endfunction

function OnVertical(sender#) local v
  let v = trackbar_value(trkV#)
  if v < 1 then v = 1
  tiler_vtiles#(tiler#, v)
  label_text#(lblV#, "Vertical: " + str$(v))
endfunction

Example 2: Preset Patterns

╯ tile-presets.bas
let frm# = Pointer#(0)
let img# = Pointer#(0)
let tiler# = Pointer#(0)
let lblInfo# = Pointer#(0)

frm# = form#("Tile Patterns", 450, 400)

img# = image#(frm#)
image_bounds#(img#, 125, 30, 200, 150)
image_load#(img#, "https://picsum.photos/200/150")

tiler# = tiler#(img#)
lblInfo# = label#(frm#, "Pattern: 1x1 (Original)", 140, 195)

let btn1# = button#(frm#, "1x1")
button_bounds#(btn1#, 30, 230, 70, 30)
button_onclick#(btn1#, "Pattern1x1")

let btn2# = button#(frm#, "2x2")
button_bounds#(btn2#, 110, 230, 70, 30)
button_onclick#(btn2#, "Pattern2x2")

let btn3# = button#(frm#, "3x3")
button_bounds#(btn3#, 190, 230, 70, 30)
button_onclick#(btn3#, "Pattern3x3")

let btn4# = button#(frm#, "4x4")
button_bounds#(btn4#, 270, 230, 70, 30)
button_onclick#(btn4#, "Pattern4x4")

let btn5# = button#(frm#, "2x3")
button_bounds#(btn5#, 350, 230, 70, 30)
button_onclick#(btn5#, "Pattern2x3")

form_show(frm#)

function Pattern1x1(sender#)
  tiler_htiles#(tiler#, 1)
  tiler_vtiles#(tiler#, 1)
  label_text#(lblInfo#, "Pattern: 1x1 (Original)")
endfunction

function Pattern2x2(sender#)
  tiler_htiles#(tiler#, 2)
  tiler_vtiles#(tiler#, 2)
  label_text#(lblInfo#, "Pattern: 2x2")
endfunction

function Pattern3x3(sender#)
  tiler_htiles#(tiler#, 3)
  tiler_vtiles#(tiler#, 3)
  label_text#(lblInfo#, "Pattern: 3x3")
endfunction

function Pattern4x4(sender#)
  tiler_htiles#(tiler#, 4)
  tiler_vtiles#(tiler#, 4)
  label_text#(lblInfo#, "Pattern: 4x4")
endfunction

function Pattern2x3(sender#)
  tiler_htiles#(tiler#, 2)
  tiler_vtiles#(tiler#, 3)
  label_text#(lblInfo#, "Pattern: 2x3")
endfunction

Quick Reference

FunctionSignatureDescription
CREATION & DESTRUCTION
tiler#(parent#)tiler#@#Create effect
tiler_free(effect#)tiler_free@#Destroy effect
TILE COUNT
tiler_htiles#(effect#, value)tiler_htiles#@#nSet horizontal tiles
tiler_htiles(effect#)tiler_htiles@#Get horizontal tiles
tiler_vtiles#(effect#, value)tiler_vtiles#@#nSet vertical tiles
tiler_vtiles(effect#)tiler_vtiles@#Get vertical tiles
EFFECT CONTROL
tiler_enabled#(effect#, value)tiler_enabled#@#nEnable/disable
tiler_enabled(effect#)tiler_enabled@#Get enabled state
tiler_trigger#(effect#, trigger$)tiler_trigger#@#$Set trigger
tiler_trigger$(effect#)tiler_trigger$@#Get trigger
ERROR HANDLING
tiler_error()tiler_error@Last error code
tiler_errormsg$()tiler_errormsg$@Last error message
tiler_strerror$(code)tiler_strerror$@nCode to text
tiler_clearerror()tiler_clearerror@Clear error state

See Also

LibraryDescription
PixelateEffectLibPixelation effect
ReflectionEffectLibReflection effect
WrapEffectLibWrap/repeat distortion