Overview
SwipeTransitionEffectLib creates a page-fold/swipe transition where the page corner is "pulled" to a position, revealing the target image underneath — like turning a page in a book. Wraps the FireMonkey TSwipeTransitionEffect component.
| Property | Details |
|---|---|
| Library | SwipeTransitionEffectLib |
| Prefix | swipetrans_ |
| Wraps | TSwipeTransitionEffect |
| Functions | 20 |
| Type | Transition effect |
| Category | Count | Description |
|---|---|---|
| Creation / Destruction | 2 | Create and free effect |
| Target Image | 4 | Set/get/load target bitmap |
| Mouse Point | 4 | Get/set X and Y fold positions |
| Fold Depth | 2 | Get/set fold intensity |
| Effect Control | 4 | Enabled and trigger get/set |
| Error Handling | 4 | Error codes and messages |
⚠ Pixel Coordinates: MousePoint uses pixel values, not normalized 0–1 ranges. For a 200×150 image, MouseX ranges from 0 to 200+ and MouseY from 0 to 150+.
📖 Page Turn: The page folds from the top-left corner (default). Moving the MousePoint diagonally away from that corner creates the fold. The target image is revealed under the lifted page — like turning a real page.
Cross-Platform Support
| Platform | Support |
|---|---|
| Windows | ✅ Full support |
| Linux | ✅ Full support |
| Android | ✅ Full support |
Creation & Destruction
swipetrans#(parent#)
Creates a new swipe transition effect attached to the specified visual control.
| Parameter | Type | Description |
|---|---|---|
parent# | Pointer | Target visual control |
| Returns | Pointer | Effect handle, or 0 on failure |
swipetrans_free(effect#)
Destroys the effect and releases associated resources.
Error Handling
| Function | Signature | Description |
|---|---|---|
swipetrans_error() | swipetrans_error@ | Returns last error code (0 = none) |
swipetrans_errormsg$() | swipetrans_errormsg$@ | Returns last error message |
swipetrans_strerror$(code) | swipetrans_strerror$@n | Converts error code to text |
swipetrans_clearerror() | swipetrans_clearerror@ | Clears the error state |
Target Image
The target image is revealed underneath the folded page.
| Function | Signature | Description |
|---|---|---|
swipetrans_target#(effect#, bitmap#) | swipetrans_target#@## | Sets target from bitmap pointer |
swipetrans_target#(effect#) | swipetrans_target#@# | Gets target bitmap pointer |
swipetrans_loadtarget#(effect#, url$) | swipetrans_loadtarget#@#$ | Loads target from URL or file |
swipetrans_targetfromimage#(effect#, img#) | swipetrans_targetfromimage#@## | Sets target from image control |
Mouse Point
Controls where the page corner is "pulled" to, in pixel coordinates. The page folds from the top-left corner by default, so moving the point diagonally toward the bottom-right creates the fold.
| Function | Signature | Description |
|---|---|---|
swipetrans_mousex#(effect#, value) | swipetrans_mousex#@#n | Set X position (pixels) |
swipetrans_mousex(effect#) | swipetrans_mousex@# | Get X position |
swipetrans_mousey#(effect#, value) | swipetrans_mousey#@#n | Set Y position (pixels) |
swipetrans_mousey(effect#) | swipetrans_mousey@# | Get Y position |
| MouseX, MouseY | Effect |
|---|---|
0, 0 | No fold (corner at origin) |
imgW/2, imgH/2 | Fold to center (halfway turned) |
imgW, imgH | Full page turn (corner at opposite end) |
Fold Depth
Controls how curved or folded the page appears. Higher values create a more dramatic curl.
| Function | Signature | Description |
|---|---|---|
swipetrans_deep#(effect#, value) | swipetrans_deep#@#n | Set fold depth (0–100) |
swipetrans_deep(effect#) | swipetrans_deep@# | Get depth |
| Value | Effect |
|---|---|
0–10 | Nearly flat fold |
20–40 | Natural page curl (recommended) |
50–100 | Very dramatic fold/curl |
Effect Control
| Function | Signature | Description |
|---|---|---|
swipetrans_enabled#(effect#, value) | swipetrans_enabled#@#n | Enable (1) or disable (0) |
swipetrans_enabled(effect#) | swipetrans_enabled@# | Gets enabled state |
swipetrans_trigger#(effect#, trigger$) | swipetrans_trigger#@#$ | Sets trigger string |
swipetrans_trigger$(effect#) | swipetrans_trigger$@# | Gets trigger string |
Complete Examples
Example 1: Interactive Page Fold
let frm# = Pointer#(0) let img# = Pointer#(0) let swipe# = Pointer#(0) let trkX# = Pointer#(0) let trkY# = Pointer#(0) let trkDeep# = Pointer#(0) let lblX# = Pointer#(0) let lblY# = Pointer#(0) let lblDeep# = Pointer#(0) let imgW = 200 let imgH = 150 frm# = form#("Swipe Control", 500, 500) img# = image#(frm#) image_bounds#(img#, 150, 20, imgW, imgH) image_load#(img#, "https://picsum.photos/200/150?random=1") swipe# = swipetrans#(img#) swipetrans_loadtarget#(swipe#, "https://picsum.photos/200/150?random=2") swipetrans_mousex#(swipe#, 100) swipetrans_mousey#(swipe#, 75) swipetrans_deep#(swipe#, 30) lblX# = label#(frm#, "Mouse X: 100", 30, 190) trkX# = trackbar#(frm#) trackbar_bounds#(trkX#, 30, 215, 440, 25) trackbar_max#(trkX#, imgW) trackbar_value#(trkX#, 100) trackbar_onchange#(trkX#, "OnX") lblY# = label#(frm#, "Mouse Y: 75", 30, 260) trkY# = trackbar#(frm#) trackbar_bounds#(trkY#, 30, 285, 440, 25) trackbar_max#(trkY#, imgH) trackbar_value#(trkY#, 75) trackbar_onchange#(trkY#, "OnY") lblDeep# = label#(frm#, "Deep: 30", 30, 330) trkDeep# = trackbar#(frm#) trackbar_bounds#(trkDeep#, 30, 355, 440, 25) trackbar_max#(trkDeep#, 100) trackbar_value#(trkDeep#, 30) trackbar_onchange#(trkDeep#, "OnDeep") form_show(frm#) function OnX(sender#) local v let v = trackbar_value(trkX#) swipetrans_mousex#(swipe#, v) label_text#(lblX#, "Mouse X: " + str$(v)) endfunction function OnY(sender#) local v let v = trackbar_value(trkY#) swipetrans_mousey#(swipe#, v) label_text#(lblY#, "Mouse Y: " + str$(v)) endfunction function OnDeep(sender#) local v let v = trackbar_value(trkDeep#) swipetrans_deep#(swipe#, v) label_text#(lblDeep#, "Deep: " + str$(v)) endfunction
Example 2: Animated Page Turn
let frm# = Pointer#(0) let img# = Pointer#(0) let swipe# = Pointer#(0) let tmr# = Pointer#(0) let btn# = Pointer#(0) let progress = 0 let imgW = 200 let imgH = 150 frm# = form#("Page Turn", 400, 350) img# = image#(frm#) image_bounds#(img#, 100, 30, imgW, imgH) image_load#(img#, "https://picsum.photos/200/150?random=1") swipe# = swipetrans#(img#) swipetrans_loadtarget#(swipe#, "https://picsum.photos/200/150?random=2") swipetrans_mousex#(swipe#, 0) swipetrans_mousey#(swipe#, 0) swipetrans_deep#(swipe#, 30) tmr# = timer#() timer_interval#(tmr#, 30) timer_enabled#(tmr#, 0) timer_ontimer#(tmr#, "Animate") btn# = button#(frm#, "Turn Page") button_bounds#(btn#, 140, 210, 120, 30) button_onclick#(btn#, "StartTurn") form_show(frm#) function StartTurn(sender#) progress = 0 timer_enabled#(tmr#, 1) button_enabled#(btn#, 0) endfunction function Animate(sender#) local x, y progress = progress + 0.03 let x = progress * imgW let y = progress * imgH swipetrans_mousex#(swipe#, x) swipetrans_mousey#(swipe#, y) if progress >= 1 then timer_enabled#(tmr#, 0) button_enabled#(btn#, 1) endif endfunction
Quick Reference
| Function | Signature | Description |
|---|---|---|
| CREATION & DESTRUCTION | ||
swipetrans#(parent#) | swipetrans#@# | Create effect |
swipetrans_free(effect#) | swipetrans_free@# | Destroy effect |
| TARGET IMAGE | ||
swipetrans_target#(effect#, bitmap#) | swipetrans_target#@## | Set target bitmap |
swipetrans_target#(effect#) | swipetrans_target#@# | Get target bitmap |
swipetrans_loadtarget#(effect#, url$) | swipetrans_loadtarget#@#$ | Load target |
swipetrans_targetfromimage#(effect#, img#) | swipetrans_targetfromimage#@## | Target from image |
| MOUSE POINT | ||
swipetrans_mousex#(effect#, value) | swipetrans_mousex#@#n | Set X (pixels) |
swipetrans_mousex(effect#) | swipetrans_mousex@# | Get X |
swipetrans_mousey#(effect#, value) | swipetrans_mousey#@#n | Set Y (pixels) |
swipetrans_mousey(effect#) | swipetrans_mousey@# | Get Y |
| FOLD DEPTH | ||
swipetrans_deep#(effect#, value) | swipetrans_deep#@#n | Set fold depth (0–100) |
swipetrans_deep(effect#) | swipetrans_deep@# | Get depth |
| EFFECT CONTROL | ||
swipetrans_enabled#(effect#, value) | swipetrans_enabled#@#n | Enable/disable |
swipetrans_enabled(effect#) | swipetrans_enabled@# | Get enabled state |
swipetrans_trigger#(effect#, trigger$) | swipetrans_trigger#@#$ | Set trigger |
swipetrans_trigger$(effect#) | swipetrans_trigger$@# | Get trigger |
| ERROR HANDLING | ||
swipetrans_error() | swipetrans_error@ | Last error code |
swipetrans_errormsg$() | swipetrans_errormsg$@ | Last error message |
swipetrans_strerror$(code) | swipetrans_strerror$@n | Code to text |
swipetrans_clearerror() | swipetrans_clearerror@ | Clear error state |
See Also
| Library | Description |
|---|---|
SlideTransitionEffectLib | Slide transition |
FadeTransitionEffectLib | Cross-fade transition |
DropTransitionEffectLib | Drop transition |
