Overview
SlideTransitionEffectLib slides the source image in a specified direction, wrapping the FireMonkey TSlideTransitionEffect component. This creates a classic sliding/pushing animation commonly used in presentations and UI transitions.
| Property | Details |
|---|---|
| Library | SlideTransitionEffectLib |
| Prefix | slidetrans_ |
| Wraps | TSlideTransitionEffect |
| Functions | 16 |
| Type | Transition effect |
| Category | Count | Description |
|---|---|---|
| Creation / Destruction | 2 | Create and free effect |
| Progress | 2 | Get/set transition progress |
| Slide Amount | 4 | Get/set X and Y slide distances |
| Effect Control | 4 | Enabled and trigger get/set |
| Error Handling | 4 | Error codes and messages |
⚠ Pixel Coordinates: Unlike most effects, SlideAmount uses pixel values, not normalized 0–1 ranges. To slide an image completely off-screen, set the amount to the image's width or height.
Cross-Platform Support
| Platform | Support |
|---|---|
| Windows | ✅ Full support |
| Linux | ✅ Full support |
| Android | ✅ Full support |
Creation & Destruction
slidetrans#(parent#)
Creates a new slide transition effect attached to the specified visual control.
| Parameter | Type | Description |
|---|---|---|
parent# | Pointer | Target visual control |
| Returns | Pointer | Effect handle, or 0 on failure |
slidetrans_free(effect#)
Destroys the effect and releases associated resources.
Error Handling
| Function | Signature | Description |
|---|---|---|
slidetrans_error() | slidetrans_error@ | Returns last error code (0 = none) |
slidetrans_errormsg$() | slidetrans_errormsg$@ | Returns last error message |
slidetrans_strerror$(code) | slidetrans_strerror$@n | Converts error code to text |
slidetrans_clearerror() | slidetrans_clearerror@ | Clears the error state |
Progress
| Function | Signature | Description |
|---|---|---|
slidetrans_progress#(effect#, value) | slidetrans_progress#@#n | Set progress (0.0–1.0) |
slidetrans_progress(effect#) | slidetrans_progress@# | Get current progress |
At progress 0, the image is at its original position. At progress 1, the image has slid the full amount specified by SlideAmountX/Y.
Slide Amount
Controls the slide direction and distance in pixels. Positive X slides right, negative slides left. Positive Y slides down, negative slides up.
| Function | Signature | Description |
|---|---|---|
slidetrans_amountx#(effect#, value) | slidetrans_amountx#@#n | Set horizontal slide (pixels) |
slidetrans_amountx(effect#) | slidetrans_amountx@# | Get X amount |
slidetrans_amounty#(effect#, value) | slidetrans_amounty#@#n | Set vertical slide (pixels) |
slidetrans_amounty(effect#) | slidetrans_amounty@# | Get Y amount |
| Direction | AmountX | AmountY |
|---|---|---|
| Slide right | +imgW | 0 |
| Slide left | -imgW | 0 |
| Slide down | 0 | +imgH |
| Slide up | 0 | -imgH |
| Diagonal | +imgW | +imgH |
💡 Tip: To slide the image completely off-screen, set the amount to the image's width (for horizontal) or height (for vertical). This effect works on the source image only — no target image is required.
Effect Control
| Function | Signature | Description |
|---|---|---|
slidetrans_enabled#(effect#, value) | slidetrans_enabled#@#n | Enable (1) or disable (0) |
slidetrans_enabled(effect#) | slidetrans_enabled@# | Gets enabled state |
slidetrans_trigger#(effect#, trigger$) | slidetrans_trigger#@#$ | Sets trigger string |
slidetrans_trigger$(effect#) | slidetrans_trigger$@# | Gets trigger string |
Complete Examples
Example 1: Animated Slide Right
let frm# = Pointer#(0) let img# = Pointer#(0) let trans# = Pointer#(0) let tmr# = Pointer#(0) let btn# = Pointer#(0) let progress = 0 let imgW = 200 frm# = form#("Animated Slide", 400, 350) img# = image#(frm#) image_bounds#(img#, 100, 30, imgW, 150) image_load#(img#, "https://picsum.photos/200/150") ' Slide right by image width trans# = slidetrans#(img#) slidetrans_amountx#(trans#, imgW) slidetrans_amounty#(trans#, 0) tmr# = timer#() timer_interval#(tmr#, 30) timer_enabled#(tmr#, 0) timer_ontimer#(tmr#, "Animate") btn# = button#(frm#, "Slide Right!") button_bounds#(btn#, 140, 210, 120, 30) button_onclick#(btn#, "StartSlide") form_show(frm#) function StartSlide(sender#) progress = 0 slidetrans_progress#(trans#, 0) timer_enabled#(tmr#, 1) button_enabled#(btn#, 0) endfunction function Animate(sender#) progress = progress + 0.03 slidetrans_progress#(trans#, progress) if progress >= 1 then timer_enabled#(tmr#, 0) button_enabled#(btn#, 1) endif endfunction
Example 2: Direction Buttons
let frm# = Pointer#(0) let img# = Pointer#(0) let trans# = Pointer#(0) let imgW = 200 let imgH = 150 frm# = form#("Slide Directions", 450, 400) img# = image#(frm#) image_bounds#(img#, 125, 30, imgW, imgH) image_load#(img#, "https://picsum.photos/200/150") trans# = slidetrans#(img#) slidetrans_amountx#(trans#, imgW) slidetrans_progress#(trans#, 0.5) let btnL# = button#(frm#, "Left") button_bounds#(btnL#, 50, 210, 80, 30) button_onclick#(btnL#, "SlideLeft") let btnR# = button#(frm#, "Right") button_bounds#(btnR#, 140, 210, 80, 30) button_onclick#(btnR#, "SlideRight") let btnU# = button#(frm#, "Up") button_bounds#(btnU#, 230, 210, 80, 30) button_onclick#(btnU#, "SlideUp") let btnD# = button#(frm#, "Down") button_bounds#(btnD#, 320, 210, 80, 30) button_onclick#(btnD#, "SlideDown") form_show(frm#) function SlideLeft(sender#) slidetrans_amountx#(trans#, 0 - imgW) slidetrans_amounty#(trans#, 0) endfunction function SlideRight(sender#) slidetrans_amountx#(trans#, imgW) slidetrans_amounty#(trans#, 0) endfunction function SlideUp(sender#) slidetrans_amountx#(trans#, 0) slidetrans_amounty#(trans#, 0 - imgH) endfunction function SlideDown(sender#) slidetrans_amountx#(trans#, 0) slidetrans_amounty#(trans#, imgH) endfunction
Best Practices
| Practice | Why |
|---|---|
| Use image width/height as slide amount | Slides the image exactly off-screen |
| No target image needed | This effect slides the source only — simpler than dual-image transitions |
| Combine X and Y for diagonal slides | Set both AmountX and AmountY for diagonal movement |
| Use negative values for reverse direction | 0 - imgW slides left instead of right |
Quick Reference
| Function | Signature | Description |
|---|---|---|
| CREATION & DESTRUCTION | ||
slidetrans#(parent#) | slidetrans#@# | Create effect |
slidetrans_free(effect#) | slidetrans_free@# | Destroy effect |
| PROGRESS | ||
slidetrans_progress#(effect#, value) | slidetrans_progress#@#n | Set progress (0–1) |
slidetrans_progress(effect#) | slidetrans_progress@# | Get progress |
| SLIDE AMOUNT | ||
slidetrans_amountx#(effect#, value) | slidetrans_amountx#@#n | Set X slide (pixels) |
slidetrans_amountx(effect#) | slidetrans_amountx@# | Get X amount |
slidetrans_amounty#(effect#, value) | slidetrans_amounty#@#n | Set Y slide (pixels) |
slidetrans_amounty(effect#) | slidetrans_amounty@# | Get Y amount |
| EFFECT CONTROL | ||
slidetrans_enabled#(effect#, value) | slidetrans_enabled#@#n | Enable/disable |
slidetrans_enabled(effect#) | slidetrans_enabled@# | Get enabled state |
slidetrans_trigger#(effect#, trigger$) | slidetrans_trigger#@#$ | Set trigger |
slidetrans_trigger$(effect#) | slidetrans_trigger$@# | Get trigger |
| ERROR HANDLING | ||
slidetrans_error() | slidetrans_error@ | Last error code |
slidetrans_errormsg$() | slidetrans_errormsg$@ | Last error message |
slidetrans_strerror$(code) | slidetrans_strerror$@n | Code to text |
slidetrans_clearerror() | slidetrans_clearerror@ | Clear error state |
See Also
| Library | Description |
|---|---|
SwipeTransitionEffectLib | Page swipe transition |
BlindTransitionEffectLib | Blind/stripe transition |
FadeTransitionEffectLib | Cross-fade transition |
