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.

PropertyDetails
LibrarySlideTransitionEffectLib
Prefixslidetrans_
WrapsTSlideTransitionEffect
Functions16
TypeTransition effect
CategoryCountDescription
Creation / Destruction2Create and free effect
Progress2Get/set transition progress
Slide Amount4Get/set X and Y slide distances
Effect Control4Enabled and trigger get/set
Error Handling4Error 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

PlatformSupport
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.

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

slidetrans_free(effect#)

Destroys the effect and releases associated resources.

Error Handling

FunctionSignatureDescription
slidetrans_error()slidetrans_error@Returns last error code (0 = none)
slidetrans_errormsg$()slidetrans_errormsg$@Returns last error message
slidetrans_strerror$(code)slidetrans_strerror$@nConverts error code to text
slidetrans_clearerror()slidetrans_clearerror@Clears the error state

Progress

FunctionSignatureDescription
slidetrans_progress#(effect#, value)slidetrans_progress#@#nSet 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.

FunctionSignatureDescription
slidetrans_amountx#(effect#, value)slidetrans_amountx#@#nSet horizontal slide (pixels)
slidetrans_amountx(effect#)slidetrans_amountx@#Get X amount
slidetrans_amounty#(effect#, value)slidetrans_amounty#@#nSet vertical slide (pixels)
slidetrans_amounty(effect#)slidetrans_amounty@#Get Y amount
DirectionAmountXAmountY
Slide right+imgW0
Slide left-imgW0
Slide down0+imgH
Slide up0-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

FunctionSignatureDescription
slidetrans_enabled#(effect#, value)slidetrans_enabled#@#nEnable (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

╯ animated-slide.bas
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

╯ slide-directions.bas
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

PracticeWhy
Use image width/height as slide amountSlides the image exactly off-screen
No target image neededThis effect slides the source only — simpler than dual-image transitions
Combine X and Y for diagonal slidesSet both AmountX and AmountY for diagonal movement
Use negative values for reverse direction0 - imgW slides left instead of right

Quick Reference

FunctionSignatureDescription
CREATION & DESTRUCTION
slidetrans#(parent#)slidetrans#@#Create effect
slidetrans_free(effect#)slidetrans_free@#Destroy effect
PROGRESS
slidetrans_progress#(effect#, value)slidetrans_progress#@#nSet progress (0–1)
slidetrans_progress(effect#)slidetrans_progress@#Get progress
SLIDE AMOUNT
slidetrans_amountx#(effect#, value)slidetrans_amountx#@#nSet X slide (pixels)
slidetrans_amountx(effect#)slidetrans_amountx@#Get X amount
slidetrans_amounty#(effect#, value)slidetrans_amounty#@#nSet Y slide (pixels)
slidetrans_amounty(effect#)slidetrans_amounty@#Get Y amount
EFFECT CONTROL
slidetrans_enabled#(effect#, value)slidetrans_enabled#@#nEnable/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$@nCode to text
slidetrans_clearerror()slidetrans_clearerror@Clear error state

See Also

LibraryDescription
SwipeTransitionEffectLibPage swipe transition
BlindTransitionEffectLibBlind/stripe transition
FadeTransitionEffectLibCross-fade transition