Overview

BloodTransitionEffectLib reveals the target image through a dripping pattern, wrapping the FireMonkey TBloodTransitionEffect component. Creates a dramatic, horror-style visual transition with irregular drip edges flowing downward.

PropertyDetails
LibraryBloodTransitionEffectLib
Prefixbloodtrans_
WrapsTBloodTransitionEffect
Functions15
TypeTransition effect
CategoryCountDescription
Creation / Destruction2Create and free effect
Target Image3Set/get/load target bitmap
Progress2Get/set transition progress
Random Seed2Get/set drip pattern randomization
Effect Control2Enabled get/set
Error Handling4Error codes and messages
🎃 Horror Style: The drip pattern flows downward with irregular edges. Use a slower animation speed (50ms+ timer interval) for a creepier effect. Change RandomSeed to get different drip patterns.

Cross-Platform Support

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

Creation & Destruction

bloodtrans#(parent#)

Creates a new blood transition effect attached to the specified visual control.

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

bloodtrans_free(effect#)

Destroys the effect and releases associated resources.

Error Handling

FunctionSignatureDescription
bloodtrans_error()bloodtrans_error@Returns last error code (0 = none)
bloodtrans_errormsg$()bloodtrans_errormsg$@Returns last error message
bloodtrans_strerror$(code)bloodtrans_strerror$@nConverts error code to text
bloodtrans_clearerror()bloodtrans_clearerror@Clears the error state

Target Image

FunctionSignatureDescription
bloodtrans_target#(effect#, bitmap#)bloodtrans_target#@##Sets target from bitmap pointer
bloodtrans_target#(effect#)bloodtrans_target#@#Gets target bitmap pointer
bloodtrans_loadtarget#(effect#, url$)bloodtrans_loadtarget#@#$Loads target from URL or file

Progress

FunctionSignatureDescription
bloodtrans_progress#(effect#, value)bloodtrans_progress#@#nSet progress (0.0–1.0)
bloodtrans_progress(effect#)bloodtrans_progress@#Get current progress

Random Seed

Controls the randomization of the drip pattern. Different seed values produce different drip shapes.

FunctionSignatureDescription
bloodtrans_randomseed#(effect#, value)bloodtrans_randomseed#@#nSet random seed (0.0–1.0)
bloodtrans_randomseed(effect#)bloodtrans_randomseed@#Get random seed

Effect Control

FunctionSignatureDescription
bloodtrans_enabled#(effect#, value)bloodtrans_enabled#@#nEnable (1) or disable (0)
bloodtrans_enabled(effect#)bloodtrans_enabled@#Gets enabled state

Complete Examples

Example 1: Animated Drip Transition

╯ blood-drip.bas
let frm# = Pointer#(0)
let img# = Pointer#(0)
let trans# = Pointer#(0)
let tmr# = Pointer#(0)
let btn# = Pointer#(0)
let progress = 0

frm# = form#("Horror Transition", 400, 350)

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

trans# = bloodtrans#(img#)
bloodtrans_loadtarget#(trans#, "https://picsum.photos/200/150?random=2")
bloodtrans_randomseed#(trans#, 0.3)

tmr# = timer#()
timer_interval#(tmr#, 50)
timer_enabled#(tmr#, 0)
timer_ontimer#(tmr#, "Animate")

btn# = button#(frm#, "Start Drip")
button_bounds#(btn#, 140, 210, 120, 30)
button_onclick#(btn#, "StartAnim")

form_show(frm#)

function StartAnim(sender#)
  progress = 0
  timer_enabled#(tmr#, 1)
  button_enabled#(btn#, 0)
endfunction

function Animate(sender#)
  progress = progress + 0.015
  bloodtrans_progress#(trans#, progress)
  
  if progress >= 1 then
    timer_enabled#(tmr#, 0)
    button_enabled#(btn#, 1)
  endif
endfunction

Quick Reference

FunctionSignatureDescription
CREATION & DESTRUCTION
bloodtrans#(parent#)bloodtrans#@#Create effect
bloodtrans_free(effect#)bloodtrans_free@#Destroy effect
TARGET IMAGE
bloodtrans_target#(effect#, bitmap#)bloodtrans_target#@##Set target bitmap
bloodtrans_target#(effect#)bloodtrans_target#@#Get target bitmap
bloodtrans_loadtarget#(effect#, url$)bloodtrans_loadtarget#@#$Load target
PROGRESS
bloodtrans_progress#(effect#, value)bloodtrans_progress#@#nSet progress (0–1)
bloodtrans_progress(effect#)bloodtrans_progress@#Get progress
RANDOM SEED
bloodtrans_randomseed#(effect#, value)bloodtrans_randomseed#@#nSet drip seed (0–1)
bloodtrans_randomseed(effect#)bloodtrans_randomseed@#Get seed
EFFECT CONTROL
bloodtrans_enabled#(effect#, value)bloodtrans_enabled#@#nEnable/disable
bloodtrans_enabled(effect#)bloodtrans_enabled@#Get enabled state
ERROR HANDLING
bloodtrans_error()bloodtrans_error@Last error code
bloodtrans_errormsg$()bloodtrans_errormsg$@Last error message
bloodtrans_strerror$(code)bloodtrans_strerror$@nCode to text
bloodtrans_clearerror()bloodtrans_clearerror@Clear error state

See Also

LibraryDescription
DissolveTransitionEffectLibDissolve transition
FadeTransitionEffectLibFade transition
WaterTransitionEffectLibWater ripple transition