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.
| Property | Details |
|---|---|
| Library | TilerEffectLib |
| Prefix | tiler_ |
| Wraps | TTilerEffect |
| Functions | 14 |
| Type | Visual effect (pattern) |
| Category | Count | Description |
|---|---|---|
| Creation / Destruction | 2 | Create and free effect |
| Tile Count | 4 | Get/set horizontal and vertical tiles |
| Effect Control | 4 | Enabled and trigger get/set |
| Error Handling | 4 | Error 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
| Platform | Support |
|---|---|
| Windows | ✅ Full support |
| Linux | ✅ Full support |
| Android | ✅ Full support |
Creation & Destruction
tiler#(parent#)
Creates a new tiler effect attached to the specified visual control.
| Parameter | Type | Description |
|---|---|---|
parent# | Pointer | Target visual control |
| Returns | Pointer | Effect handle, or 0 on failure |
tiler_free(effect#)
Destroys the effect and releases associated resources.
Error Handling
| Function | Signature | Description |
|---|---|---|
tiler_error() | tiler_error@ | Returns last error code (0 = none) |
tiler_errormsg$() | tiler_errormsg$@ | Returns last error message |
tiler_strerror$(code) | tiler_strerror$@n | Converts 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.
| Function | Signature | Description |
|---|---|---|
tiler_htiles#(effect#, value) | tiler_htiles#@#n | Set horizontal tile count |
tiler_htiles(effect#) | tiler_htiles@# | Get horizontal tiles |
tiler_vtiles#(effect#, value) | tiler_vtiles#@#n | Set vertical tile count |
tiler_vtiles(effect#) | tiler_vtiles@# | Get vertical tiles |
| Pattern | H Tiles | V Tiles | Total |
|---|---|---|---|
| Original | 1 | 1 | 1 copy |
| 2×2 grid | 2 | 2 | 4 copies |
| 3×3 grid | 3 | 3 | 9 copies |
| Horizontal strip | 4 | 1 | 4 copies |
| Vertical strip | 1 | 4 | 4 copies |
Effect Control
| Function | Signature | Description |
|---|---|---|
tiler_enabled#(effect#, value) | tiler_enabled#@#n | Enable (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
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
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
| Function | Signature | Description |
|---|---|---|
| CREATION & DESTRUCTION | ||
tiler#(parent#) | tiler#@# | Create effect |
tiler_free(effect#) | tiler_free@# | Destroy effect |
| TILE COUNT | ||
tiler_htiles#(effect#, value) | tiler_htiles#@#n | Set horizontal tiles |
tiler_htiles(effect#) | tiler_htiles@# | Get horizontal tiles |
tiler_vtiles#(effect#, value) | tiler_vtiles#@#n | Set vertical tiles |
tiler_vtiles(effect#) | tiler_vtiles@# | Get vertical tiles |
| EFFECT CONTROL | ||
tiler_enabled#(effect#, value) | tiler_enabled#@#n | Enable/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$@n | Code to text |
tiler_clearerror() | tiler_clearerror@ | Clear error state |
See Also
| Library | Description |
|---|---|
PixelateEffectLib | Pixelation effect |
ReflectionEffectLib | Reflection effect |
WrapEffectLib | Wrap/repeat distortion |
