{"id":2902,"date":"2011-10-12T19:40:48","date_gmt":"2011-10-12T17:40:48","guid":{"rendered":"http:\/\/blogs.wittwer.fr\/whiler\/?p=2902"},"modified":"2012-03-03T05:10:15","modified_gmt":"2012-03-03T04:10:15","slug":"effets-firemonkey","status":"publish","type":"post","link":"https:\/\/blogs.wittwer.fr\/whiler\/2011\/10\/12\/effets-firemonkey\/","title":{"rendered":"Effets FireMonkey"},"content":{"rendered":"<p>Avec Delphi XE2 et FireMonkey, il est possible de tr\u00e8s facilement manipuler des images&#8230;<\/p>\n<p>Dans cet article, je vais vous montrer le code que j&rsquo;ai utilis\u00e9 pour effectuer cette d\u00e9monstration&nbsp;:<\/p>\n<p><center>\n<div class=\"youtube-embed\" itemprop=\"video\" itemscope itemtype=\"https:\/\/schema.org\/VideoObject\">\n\t<meta itemprop=\"url\" content=\"https:\/\/www.youtube.com\/v\/azNg6c30PiA\" \/>\n\t<meta itemprop=\"name\" content=\"Effets FireMonkey\" \/>\n\t<meta itemprop=\"description\" content=\"Effets FireMonkey\" \/>\n\t<meta itemprop=\"uploadDate\" content=\"2011-10-12T19:40:48+02:00\" \/>\n\t<meta itemprop=\"thumbnailUrl\" content=\"https:\/\/i.ytimg.com\/vi\/azNg6c30PiA\/default.jpg\" \/>\n\t<meta itemprop=\"embedUrl\" content=\"https:\/\/www.youtube.com\/embed\/azNg6c30PiA\" \/>\n\t<meta itemprop=\"height\" content=\"340\" \/>\n\t<meta itemprop=\"width\" content=\"560\" \/>\n\t<iframe loading=\"lazy\" style=\"border: 0;\" class=\"youtube-player\" width=\"560\" height=\"340\" src=\"https:\/\/www.youtube.com\/embed\/azNg6c30PiA\" allowfullscreen><\/iframe>\n<\/div>\n<\/center><\/p>\n<p>Pour r\u00e9aliser cette application, j&rsquo;ai d\u00e9pos\u00e9 un <code class=\"codecolorer delphi dawn\"><span class=\"delphi\">TImage<\/span><\/code> et un <code class=\"codecolorer delphi dawn\"><span class=\"delphi\">TText<\/span><\/code> sur ma fiche principale.<br \/>\n<!--more--><br \/>\nEn s\u00e9lectionnant l&rsquo;image, je lui ai ajout\u00e9e diff\u00e9rents effets&nbsp;:<\/p>\n<ul>\n<li><code class=\"codecolorer delphi dawn\"><span class=\"delphi\">TRippleEffect<\/span><\/code><\/li>\n<li><code class=\"codecolorer delphi dawn\"><span class=\"delphi\">TSmoothMagnifyEffect<\/span><\/code><\/li>\n<li><code class=\"codecolorer delphi dawn\"><span class=\"delphi\">TPinchEffect<\/span><\/code><\/li>\n<li><code class=\"codecolorer delphi dawn\"><span class=\"delphi\">TWaveEffect<\/span><\/code><\/li>\n<li><code class=\"codecolorer delphi dawn\"><span class=\"delphi\">THueAdjustEffect<\/span><\/code><\/li>\n<li><code class=\"codecolorer delphi dawn\"><span class=\"delphi\">TRippleTransitionEffect<\/span><\/code><\/li>\n<\/ul>\n<p>Vous pouvez voir le DFM complet en seconde page&#8230;<\/p>\n<p>J&rsquo;ai ensuite cr\u00e9\u00e9 deux m\u00e9thodes&nbsp;: une pour d\u00e9sactiver tous les effets, une autre pour g\u00e9rer les diff\u00e9rents effets&#8230;<\/p>\n<div class=\"codecolorer-container delphi dawn\" style=\"overflow:auto;white-space:nowrap;width:480px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/><\/div><\/td><td><div class=\"delphi codecolorer\"><span class=\"kw1\">procedure<\/span> TfrmMain<span class=\"sy1\">.<\/span><span class=\"me1\">DisableEffects<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">var<\/span><br \/>\n&nbsp; iLoop<span class=\"sy1\">,<\/span> iMax<span class=\"sy1\">:<\/span> <span class=\"kw4\">Integer<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">begin<\/span><br \/>\n&nbsp; <span class=\"co1\">\/\/ Boucle sur tous les sous-\u00e9l\u00e9ments du TImage pour d\u00e9sactiver ses effets<\/span><br \/>\n&nbsp; iMax <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw3\">Pred<\/span><span class=\"br0\">&#40;<\/span>imgBelly<span class=\"sy1\">.<\/span><span class=\"me1\">ChildrenCount<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">for<\/span> iLoop <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"nu0\">0<\/span> <span class=\"kw1\">to<\/span> iMax <span class=\"kw1\">do<\/span><br \/>\n&nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span>imgBelly<span class=\"sy1\">.<\/span><span class=\"me1\">Children<\/span><span class=\"br0\">&#91;<\/span>iLoop<span class=\"br0\">&#93;<\/span> <span class=\"kw1\">is<\/span> TImageFXEffect<span class=\"br0\">&#41;<\/span> <span class=\"kw1\">then<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"br0\">&#40;<\/span>imgBelly<span class=\"sy1\">.<\/span><span class=\"me1\">Children<\/span><span class=\"br0\">&#91;<\/span>iLoop<span class=\"br0\">&#93;<\/span> <span class=\"kw1\">as<\/span> TImageFXEffect<span class=\"br0\">&#41;<\/span><span class=\"sy1\">.<\/span><span class=\"me1\">Enabled<\/span> <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw2\">False<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Pour les effets, en fonction du rendu que je souhaitais obtenir, j&rsquo;ai utilis\u00e9 diff\u00e9rentes fonctions pour animer tout cela&#8230;<\/p>\n<div class=\"codecolorer-container delphi dawn\" style=\"overflow:auto;white-space:nowrap;width:480px;height:300px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/><\/div><\/td><td><div class=\"delphi codecolorer\"><span class=\"kw1\">procedure<\/span> TfrmMain<span class=\"sy1\">.<\/span><span class=\"me1\">DoEffect<\/span><span class=\"br0\">&#40;<\/span>X<span class=\"sy1\">,<\/span> Y<span class=\"sy1\">:<\/span> <span class=\"kw4\">Single<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">var<\/span><br \/>\n&nbsp; bmp<span class=\"sy1\">:<\/span> TBitmap<span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">begin<\/span><br \/>\n&nbsp; <span class=\"kw1\">case<\/span> Tag <span class=\"kw1\">of<\/span><br \/>\n&nbsp; &nbsp; <span class=\"nu0\">0<\/span><span class=\"sy1\">:<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effRipple<span class=\"sy1\">.<\/span><span class=\"me1\">Center<\/span> &nbsp; &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> PointF<span class=\"br0\">&#40;<\/span>X<span class=\"sy1\">,<\/span> Y<span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effRipple<span class=\"sy1\">.<\/span><span class=\"me1\">Phase<\/span> &nbsp; &nbsp; <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"nu0\">20<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effRipple<span class=\"sy1\">.<\/span><span class=\"me1\">Amplitude<\/span> <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effRipple<span class=\"sy1\">.<\/span><span class=\"me1\">Enabled<\/span> &nbsp; <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw2\">True<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effRipple<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloat<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Phase'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1.5<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effRipple<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloat<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Amplitude'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0.3<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0.5<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effRipple<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloatDelay<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Amplitude'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0.5<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"nu0\">1<\/span><span class=\"sy1\">:<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effSmoothMagnify<span class=\"sy1\">.<\/span><span class=\"me1\">Center<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> PointF<span class=\"br0\">&#40;<\/span>X<span class=\"sy1\">,<\/span> Y<span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effSmoothMagnify<span class=\"sy1\">.<\/span><span class=\"me1\">Magnification<\/span> <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effSmoothMagnify<span class=\"sy1\">.<\/span><span class=\"me1\">Enabled<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw2\">True<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effSmoothMagnify<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloat<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Magnification'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">3<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> TAnimationType<span class=\"sy1\">.<\/span><span class=\"me1\">atInOut<\/span><span class=\"sy1\">,<\/span> TInterpolationType<span class=\"sy1\">.<\/span><span class=\"me1\">itBounce<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effSmoothMagnify<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloatDelay<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Magnification'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"nu0\">2<\/span><span class=\"sy1\">:<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effPinch<span class=\"sy1\">.<\/span><span class=\"me1\">Center<\/span> &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> PointF<span class=\"br0\">&#40;<\/span>X<span class=\"sy1\">,<\/span> Y<span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effPinch<span class=\"sy1\">.<\/span><span class=\"me1\">Radius<\/span> &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effPinch<span class=\"sy1\">.<\/span><span class=\"me1\">Enabled<\/span> <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw2\">True<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effPinch<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloat<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Radius'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0.5<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> TAnimationType<span class=\"sy1\">.<\/span><span class=\"me1\">atInOut<\/span><span class=\"sy1\">,<\/span> TInterpolationType<span class=\"sy1\">.<\/span><span class=\"me1\">itElastic<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effPinch<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloatDelay<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Radius'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"nu0\">3<\/span><span class=\"sy1\">:<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effWave<span class=\"sy1\">.<\/span><span class=\"me1\">WaveSize<\/span> <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"nu0\">256<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effWave<span class=\"sy1\">.<\/span><span class=\"me1\">Enabled<\/span> &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw2\">True<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effWave<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloatWait<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'WaveSize'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">32<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">2<\/span><span class=\"sy1\">,<\/span> TAnimationType<span class=\"sy1\">.<\/span><span class=\"me1\">atInOut<\/span><span class=\"sy1\">,<\/span> TInterpolationType<span class=\"sy1\">.<\/span><span class=\"me1\">itSinusoidal<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effWave<span class=\"sy1\">.<\/span><span class=\"me1\">Enabled<\/span> &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw2\">False<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"nu0\">4<\/span><span class=\"sy1\">:<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effHueAdjust<span class=\"sy1\">.<\/span><span class=\"me1\">Hue<\/span> &nbsp; &nbsp; <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effHueAdjust<span class=\"sy1\">.<\/span><span class=\"me1\">Enabled<\/span> <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw2\">True<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effHueAdjust<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloat<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Hue'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effHueAdjust<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloatDelay<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Hue'<\/span><span class=\"sy1\">,<\/span> <span class=\"sy3\">-<\/span><span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">2<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effHueAdjust<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloatDelay<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Hue'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">3<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"nu0\">5<\/span><span class=\"sy1\">:<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effTransitionRipple<span class=\"sy1\">.<\/span><span class=\"me1\">Progress<\/span> <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effTransitionRipple<span class=\"sy1\">.<\/span><span class=\"me1\">Enabled<\/span> &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw2\">True<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effTransitionRipple<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloatWait<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Progress'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">100<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">3<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; bmp <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> TBitmap<span class=\"sy1\">.<\/span><span class=\"me1\">Create<\/span><span class=\"br0\">&#40;<\/span>imgBelly<span class=\"sy1\">.<\/span><span class=\"me1\">Bitmap<\/span><span class=\"sy1\">.<\/span><span class=\"me1\">Width<\/span><span class=\"sy1\">,<\/span> imgBelly<span class=\"sy1\">.<\/span><span class=\"me1\">Bitmap<\/span><span class=\"sy1\">.<\/span><span class=\"me1\">Height<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"kw1\">try<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; bmp<span class=\"sy1\">.<\/span><span class=\"me1\">Assign<\/span><span class=\"br0\">&#40;<\/span>imgBelly<span class=\"sy1\">.<\/span><span class=\"me1\">Bitmap<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; imgBelly<span class=\"sy1\">.<\/span><span class=\"me1\">Bitmap<\/span><span class=\"sy1\">.<\/span><span class=\"me1\">Assign<\/span><span class=\"br0\">&#40;<\/span>effTransitionRipple<span class=\"sy1\">.<\/span><span class=\"me1\">Target<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; effTransitionRipple<span class=\"sy1\">.<\/span><span class=\"me1\">Target<\/span><span class=\"sy1\">.<\/span><span class=\"me1\">Assign<\/span><span class=\"br0\">&#40;<\/span>bmp<span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"kw1\">finally<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; bmp<span class=\"sy1\">.<\/span><span class=\"me1\">Free<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effTransitionRipple<span class=\"sy1\">.<\/span><span class=\"me1\">Enabled<\/span> &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw2\">False<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Puis j&rsquo;ai cr\u00e9\u00e9 l&rsquo;\u00e9v\u00e9nement OnMouseDown de l&rsquo;image&nbsp;:<\/p>\n<div class=\"codecolorer-container delphi dawn\" style=\"overflow:auto;white-space:nowrap;width:480px;height:300px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/><\/div><\/td><td><div class=\"delphi codecolorer\"><span class=\"kw1\">procedure<\/span> TfrmMain<span class=\"sy1\">.<\/span><span class=\"me1\">imgBellyMouseDown<\/span><span class=\"br0\">&#40;<\/span>Sender<span class=\"sy1\">:<\/span> <span class=\"kw4\">TObject<\/span><span class=\"sy1\">;<\/span> Button<span class=\"sy1\">:<\/span> TMouseButton<span class=\"sy1\">;<\/span> Shift<span class=\"sy1\">:<\/span> TShiftState<span class=\"sy1\">;<\/span> X<span class=\"sy1\">,<\/span> Y<span class=\"sy1\">:<\/span> <span class=\"kw4\">Single<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">begin<\/span><br \/>\n&nbsp; <span class=\"kw1\">case<\/span> Button <span class=\"kw1\">of<\/span><br \/>\n&nbsp; &nbsp; TMouseButton<span class=\"sy1\">.<\/span><span class=\"me1\">mbLeft<\/span><span class=\"sy1\">:<\/span> DoEffect<span class=\"br0\">&#40;<\/span>X<span class=\"sy1\">,<\/span> Y<span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; TMouseButton<span class=\"sy1\">.<\/span><span class=\"me1\">mbRight<\/span><span class=\"sy1\">:<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; &nbsp; Tag <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> Tag <span class=\"sy3\">+<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"kw1\">case<\/span> Tag <span class=\"kw1\">of<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1<\/span><span class=\"sy1\">:<\/span> Caption <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"st0\">'SmoothMagnify'<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">2<\/span><span class=\"sy1\">:<\/span> Caption <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"st0\">'Pinch'<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">3<\/span><span class=\"sy1\">:<\/span> Caption <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"st0\">'Wave'<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">4<\/span><span class=\"sy1\">:<\/span> Caption <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"st0\">'Hue'<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">5<\/span><span class=\"sy1\">:<\/span> Caption <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"st0\">'RippleTransition'<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">else<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Caption <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"st0\">'Ripple'<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Tag &nbsp; &nbsp; <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DisableEffects<span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; txtEffect<span class=\"sy1\">.<\/span><span class=\"me1\">Text<\/span> <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> Caption<span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; txtEffect<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloat<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Opacity'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; txtEffect<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloatDelay<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Opacity'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Si vous avez des questions, n&rsquo;h\u00e9sitez pas \u00e0 laisser un commentaire <img src=\"https:\/\/blogs.wittwer.fr\/whiler\/wp-includes\/images\/smilies\/skype\/\/wink.gif\" alt=\";)\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/> <\/p>\n<p>Sur la <a href=\"\/whiler\/2011\/10\/12\/effets-firemonkey\/2\/\" title=\"DFM de la fiche\">page suivante<\/a>, vous pourrez trouver le DFM de la fiche&#8230;<\/p>\n<p>Sur la <a href=\"\/whiler\/2011\/10\/12\/effets-firemonkey\/3\/\" title=\"Code source\">derni\u00e8re page<\/a>, le code source de cette fiche. <img src=\"https:\/\/blogs.wittwer.fr\/whiler\/wp-includes\/images\/smilies\/skype\/\/yes.gif\" alt=\"(y)\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/><br \/>\n<!--nextpage--><br \/>\nSur cette page, le DFM de la fiche (j&rsquo;ai chang\u00e9 les images pour gagner de la place&#8230;)&nbsp;:<\/p>\n<div class=\"codecolorer-container delphi dawn\" style=\"overflow:auto;white-space:nowrap;width:480px;height:300px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/>78<br \/>79<br \/>80<br \/>81<br \/>82<br \/>83<br \/>84<br \/>85<br \/>86<br \/>87<br \/>88<br \/>89<br \/>90<br \/>91<br \/>92<br \/>93<br \/>94<br \/>95<br \/>96<br \/>97<br \/>98<br \/>99<br \/>100<br \/>101<br \/>102<br \/>103<br \/>104<br \/>105<br \/>106<br \/>107<br \/>108<br \/>109<br \/>110<br \/>111<br \/>112<br \/>113<br \/>114<br \/>115<br \/>116<br \/>117<br \/>118<br \/>119<br \/>120<br \/>121<br \/>122<br \/>123<br \/>124<br \/>125<br \/>126<br \/>127<br \/>128<br \/>129<br \/>130<br \/>131<br \/>132<br \/>133<br \/>134<br \/>135<br \/>136<br \/>137<br \/>138<br \/>139<br \/>140<br \/>141<br \/>142<br \/>143<br \/>144<br \/>145<br \/>146<br \/>147<br \/>148<br \/>149<br \/>150<br \/>151<br \/>152<br \/>153<br \/>154<br \/>155<br \/>156<br \/>157<br \/>158<br \/>159<br \/>160<br \/>161<br \/>162<br \/>163<br \/>164<br \/>165<br \/>166<br \/>167<br \/>168<br \/>169<br \/>170<br \/><\/div><\/td><td><div class=\"delphi codecolorer\"><span class=\"kw1\">object<\/span> frmMain<span class=\"sy1\">:<\/span> TfrmMain<br \/>\n&nbsp; Left <span class=\"sy3\">=<\/span> <span class=\"nu0\">0<\/span><br \/>\n&nbsp; Top <span class=\"sy3\">=<\/span> <span class=\"nu0\">0<\/span><br \/>\n&nbsp; BiDiMode <span class=\"sy3\">=<\/span> bdLeftToRight<br \/>\n&nbsp; Caption <span class=\"sy3\">=<\/span> <span class=\"st0\">'Ripple'<\/span><br \/>\n&nbsp; BorderStyle <span class=\"sy3\">=<\/span> bsNone<br \/>\n&nbsp; ClientHeight <span class=\"sy3\">=<\/span> <span class=\"nu0\">480<\/span><br \/>\n&nbsp; ClientWidth <span class=\"sy3\">=<\/span> <span class=\"nu0\">640<\/span><br \/>\n&nbsp; Position <span class=\"sy3\">=<\/span> poScreenCenter<br \/>\n&nbsp; Transparency <span class=\"sy3\">=<\/span> <span class=\"kw2\">True<\/span><br \/>\n&nbsp; TopMost <span class=\"sy3\">=<\/span> <span class=\"kw2\">True<\/span><br \/>\n&nbsp; Visible <span class=\"sy3\">=<\/span> <span class=\"kw2\">False<\/span><br \/>\n&nbsp; WindowState <span class=\"sy3\">=<\/span> wsMaximized<br \/>\n&nbsp; OnCreate <span class=\"sy3\">=<\/span> FormCreate<br \/>\n&nbsp; StyleLookup <span class=\"sy3\">=<\/span> <span class=\"st0\">'backgroundstyle'<\/span><br \/>\n&nbsp; <span class=\"kw1\">object<\/span> imgBelly<span class=\"sy1\">:<\/span> TImage<br \/>\n&nbsp; &nbsp; Align <span class=\"sy3\">=<\/span> alClient<br \/>\n&nbsp; &nbsp; Width <span class=\"sy3\">=<\/span> <span class=\"nu0\">640.000000000000000000<\/span><br \/>\n&nbsp; &nbsp; Height <span class=\"sy3\">=<\/span> <span class=\"nu0\">480.000000000000000000<\/span><br \/>\n&nbsp; &nbsp; OnDblClick <span class=\"sy3\">=<\/span> imgBellyDblClick<br \/>\n&nbsp; &nbsp; OnMouseDown <span class=\"sy3\">=<\/span> imgBellyMouseDown<br \/>\n&nbsp; &nbsp; Bitmap<span class=\"sy1\">.<\/span><span class=\"me1\">PNG<\/span> <span class=\"sy3\">=<\/span> <span class=\"coMULTI\">{<br \/>\n&nbsp; &nbsp; &nbsp; FFD8FFE000104A46494600010101006000600000FFDB00430001010101010101<br \/>\n&nbsp; &nbsp; &nbsp; 0101010101010101010101010101010101010101010101010101010101010101<br \/>\n&nbsp; &nbsp; &nbsp; 01010101010101010101010101010101010101010101010101FFDB0043010101<br \/>\n&nbsp; &nbsp; &nbsp; 0101010101010101010101010101010101010101010101010101010101010101<br \/>\n&nbsp; &nbsp; &nbsp; 010101010101010101010101010101010101010101010101010101010101FFC0<br \/>\n&nbsp; &nbsp; &nbsp; 0011080020002003012200021101031101FFC4001F0000010501010101010100<br \/>\n&nbsp; &nbsp; &nbsp; 000000000000000102030405060708090A0BFFC400B510000201030302040305<br \/>\n&nbsp; &nbsp; &nbsp; 0504040000017D01020300041105122131410613516107227114328191A10823<br \/>\n&nbsp; &nbsp; &nbsp; 42B1C11552D1F02433627282090A161718191A25262728292A3435363738393A<br \/>\n&nbsp; &nbsp; &nbsp; 434445464748494A535455565758595A636465666768696A737475767778797A<br \/>\n&nbsp; &nbsp; &nbsp; 838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7<br \/>\n&nbsp; &nbsp; &nbsp; B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1<br \/>\n&nbsp; &nbsp; &nbsp; F2F3F4F5F6F7F8F9FAFFC4001F01000301010101010101010100000000000001<br \/>\n&nbsp; &nbsp; &nbsp; 02030405060708090A0BFFC400B5110002010204040304070504040001027700<br \/>\n&nbsp; &nbsp; &nbsp; 0102031104052131061241510761711322328108144291A1B1C109233352F015<br \/>\n&nbsp; &nbsp; &nbsp; 6272D10A162434E125F11718191A262728292A35363738393A43444546474849<br \/>\n&nbsp; &nbsp; &nbsp; 4A535455565758595A636465666768696A737475767778797A82838485868788<br \/>\n&nbsp; &nbsp; &nbsp; 898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4<br \/>\n&nbsp; &nbsp; &nbsp; C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9<br \/>\n&nbsp; &nbsp; &nbsp; FAFFDA000C03010002110311003F00FE9D3F6ABF8DBE25FD9F7E0F37C41F0678<br \/>\n&nbsp; &nbsp; &nbsp; 1743F891E30D4FE2A7ECF5F087C29E0FF13F8E6FFE1AF86B50F12FED0FFB41FC<br \/>\n&nbsp; &nbsp; &nbsp; 2FFD9FF42BEF10F8E34AF027C4ED53C3FA1F87F54F89D6BE23D5AE74DF00F8A2<br \/>\n&nbsp; &nbsp; &nbsp; FE7B0D26E2CACF4C6B8BA8E58BF2BFC31FF056CFDA1FC6DE1AF0F78CFC19FB19<br \/>\n&nbsp; &nbsp; &nbsp; 687E2EF07F8BB43D27C4FE14F15F86346FF82C7EBFE1AF13F86B5FB0B7D5742F<br \/>\n&nbsp; &nbsp; &nbsp; 10F87B5DD2BFE084177A5EB5A1EB5A5DDDAEA5A4EADA6DD5CD86A361736F7967<br \/>\n&nbsp; &nbsp; &nbsp; 7135BCD1C8DF7E7FC141FF00E4837807FECF83FE0991FF00AF25FD93E8FF0082<br \/>\n&nbsp; &nbsp; &nbsp; 647FCA36BFE09F1FF663FF00B27FFEA86F00D007C3FF00F0F45FDAAFFE8C47FF<br \/>\n&nbsp; &nbsp; &nbsp; 002D0FF82CF7FF004862BEE0FD84BF6BDD5BF6C7F87FF103C6BAB7823C0FE0EF<br \/>\n&nbsp; &nbsp; &nbsp; F843BC71E05D0743BCF86FF127C69F143C17E3BF05FC50FD993F67AFDA97C01E<br \/>\n&nbsp; &nbsp; &nbsp; 3DD1B5AF88BF03FF00678F1C691FDAFE07FDA1FC3DA7EA3E16F13FC30D1F55D1<br \/>\n&nbsp; &nbsp; &nbsp; 755D1EF92E269FCF58EDFEE0AFC3FF00F820C7FC9AA78BFF00EEC47FF5CC3FF0<br \/>\n&nbsp; &nbsp; &nbsp; 4BAA00FA33FE0A7FE21F1D6B9F07B48F81DF01ADF43D4BF69BD5B5CF047ED61F<br \/>\n&nbsp; &nbsp; &nbsp; 0C6C3C65E18F887E2AF879A57847F609FDA0FF0067BFDA0BC7DE2BF881A1FC27<br \/>\n&nbsp; &nbsp; &nbsp; D275FF008AFE2ED0E6D7EDBE197C29D1BE1B7C13F0CF8DFE3778F7C75F17BC21<br \/>\n&nbsp; &nbsp; &nbsp; 63E10F060F0A587C42F1FF00C3CFE5EFC05AC7ED71A0E9537C33F037ED45FF00<br \/>\n&nbsp; &nbsp; &nbsp; 04E7F0059FC28FEC1F84DE18F8463F6F3FF8393FE18EAB278AF43F05F85B53B7<br \/>\n&nbsp; &nbsp; &nbsp; FD9B3E05FC28D5BE3BF86F5CF899F1C3E19E87E24F02F837C69FB2CFC12F0D78<br \/>\n&nbsp; &nbsp; &nbsp; B7E33FC1BF1A789BC17F07FC77F0D3C21F113C43E1EF075EFF00579F1B7F654F<br \/>\n&nbsp; &nbsp; &nbsp; 8DDE36F8DDF157E297C2DF8B7FB39E8FE0FF008E9FB39FC29FD9CFE2D7C25FDA<br \/>\n&nbsp; &nbsp; &nbsp; 33F64DF177ED1FE1AF13F86BE16F8B7F68FF00112BA37877F6A8F807A5BE87E3<br \/>\n&nbsp; &nbsp; &nbsp; 1D2FF692F12786BC5DE11F12F86FC5761A8D868D6645E25BDFDFD83795E83FB1<br \/>\n&nbsp; &nbsp; &nbsp; 37ED27E16D2BC7BA0F863C59FF0004AFF0E687F153C0FE16F863F13F46D07FE0<br \/>\n&nbsp; &nbsp; &nbsp; 93FE3DD234AF891F0DBC0FE0B9BE1BF82BE1EF8F74ED3FFE0A316F67E30F03F8<br \/>\n&nbsp; &nbsp; &nbsp; 3FE1DDC5C780BC2DE13F10C3A8E83E1FF05CF3785B49B0B4D0E57B1600FE73FF<br \/>\n&nbsp; &nbsp; &nbsp; 00B63FE0A0327FA5D97ED45FB0FEB1E17BFF00F43F047C4BF0EFEDE7FF000736<br \/>\n&nbsp; &nbsp; &nbsp; F897E0C7C68F15BFEEAD3E177ECDFF001C340F8EFA97C1FF00DA73E386ABA845<br \/>\n&nbsp; &nbsp; &nbsp; A9E81A17C05FD9EBC6FF00133E33EBFE2BF0D78CBC21A2F812FF00C51E08F17E<br \/>\n&nbsp; &nbsp; &nbsp; 91A27EE07FC11FBFE12BF81F73F167F652F8F7FF000A3FC1FF001F3C53E07FD9<br \/>\n&nbsp; &nbsp; &nbsp; DBF6BCF87FF0CFE087FC2E8F0FF82F4AFD93AE3E017C2DFD8A3E14E89A47833F<br \/>\n&nbsp; &nbsp; &nbsp; 6AAFEC9FDA8EC7C71F0CA2FD8EACAD7E3969BF12BC3B7179E0CD57E247C3583C<br \/>\n&nbsp; &nbsp; &nbsp; 41E256F1678C352F0A7863D5349FF827FF00C6ED02FF00C4FAAE8577FF000493<br \/>\n&nbsp; &nbsp; &nbsp; D1754F1B7C2BB7F815E33D4B49FF008244F8BB4EBFF177C11B4F0D787BC196BF<br \/>\n&nbsp; &nbsp; &nbsp; 073C4F7967FF00051086E35FF8576DE0FF0008F853C296FF000F75592EFC250F<br \/>\n&nbsp; &nbsp; &nbsp; 86BC31E1ED0A3D2174BD174DB5B6F70F825FB2A7C6EF04FC6EF855F14BE297C5<br \/>\n&nbsp; &nbsp; &nbsp; BFD9CF58F07FC0BFD9CFE2B7ECE7F097E12FECE7FB26F8BBF670F0D7863C35F1<br \/>\n&nbsp; &nbsp; &nbsp; 4BC5BFB3878899DDBC45FB547C7CD2D343F07697FB36F86FC35E11F08F86BC37<br \/>\n&nbsp; &nbsp; &nbsp; E14B0D3AC359BC26F1EDEC2C2C1403FFD9}<\/span><br \/>\n&nbsp; &nbsp; WrapMode <span class=\"sy3\">=<\/span> iwStretch<br \/>\n&nbsp; &nbsp; <span class=\"kw1\">object<\/span> effRipple<span class=\"sy1\">:<\/span> TRippleEffect<br \/>\n&nbsp; &nbsp; &nbsp; Amplitude <span class=\"sy3\">=<\/span> <span class=\"nu0\">0.100000001490116100<\/span><br \/>\n&nbsp; &nbsp; &nbsp; Frequency <span class=\"sy3\">=<\/span> <span class=\"nu0\">70.000000000000000000<\/span><br \/>\n&nbsp; &nbsp; &nbsp; Phase <span class=\"sy3\">=<\/span> <span class=\"nu0\">10.000000000000000000<\/span><br \/>\n&nbsp; &nbsp; &nbsp; AspectRatio <span class=\"sy3\">=<\/span> <span class=\"nu0\">1.500000000000000000<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">object<\/span> effSmoothMagnify<span class=\"sy1\">:<\/span> TSmoothMagnifyEffect<br \/>\n&nbsp; &nbsp; &nbsp; InnerRadius <span class=\"sy3\">=<\/span> <span class=\"nu0\">0.200000002980232200<\/span><br \/>\n&nbsp; &nbsp; &nbsp; OuterRadius <span class=\"sy3\">=<\/span> <span class=\"nu0\">0.400000005960464500<\/span><br \/>\n&nbsp; &nbsp; &nbsp; Magnification <span class=\"sy3\">=<\/span> <span class=\"nu0\">1.000000000000000000<\/span><br \/>\n&nbsp; &nbsp; &nbsp; AspectRatio <span class=\"sy3\">=<\/span> <span class=\"nu0\">1.500000000000000000<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">object<\/span> effPinch<span class=\"sy1\">:<\/span> TPinchEffect<br \/>\n&nbsp; &nbsp; &nbsp; Enabled <span class=\"sy3\">=<\/span> <span class=\"kw2\">False<\/span><br \/>\n&nbsp; &nbsp; &nbsp; Radius <span class=\"sy3\">=<\/span> <span class=\"nu0\">0.500000000000000000<\/span><br \/>\n&nbsp; &nbsp; &nbsp; Strength <span class=\"sy3\">=<\/span> <span class=\"nu0\">5.000000000000000000<\/span><br \/>\n&nbsp; &nbsp; &nbsp; AspectRatio <span class=\"sy3\">=<\/span> <span class=\"nu0\">1.500000000000000000<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">object<\/span> effWave<span class=\"sy1\">:<\/span> TWaveEffect<br \/>\n&nbsp; &nbsp; &nbsp; Enabled <span class=\"sy3\">=<\/span> <span class=\"kw2\">False<\/span><br \/>\n&nbsp; &nbsp; &nbsp; WaveSize <span class=\"sy3\">=<\/span> <span class=\"nu0\">32.000000000000000000<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">object<\/span> effHueAdjust<span class=\"sy1\">:<\/span> THueAdjustEffect<br \/>\n&nbsp; &nbsp; &nbsp; Enabled <span class=\"sy3\">=<\/span> <span class=\"kw2\">False<\/span><br \/>\n&nbsp; &nbsp; &nbsp; Hue <span class=\"sy3\">=<\/span> <span class=\"nu0\">1.000000000000000000<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">object<\/span> effTransitionRipple<span class=\"sy1\">:<\/span> TRippleTransitionEffect<br \/>\n&nbsp; &nbsp; &nbsp; Enabled <span class=\"sy3\">=<\/span> <span class=\"kw2\">False<\/span><br \/>\n&nbsp; &nbsp; &nbsp; Progress <span class=\"sy3\">=<\/span> <span class=\"nu0\">30.000000000000000000<\/span><br \/>\n&nbsp; &nbsp; &nbsp; Target<span class=\"sy1\">.<\/span><span class=\"me1\">PNG<\/span> <span class=\"sy3\">=<\/span> <span class=\"coMULTI\">{<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; FFD8FFE000104A46494600010101006000600000FFDB00430001010101010101<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 0101010101010101010101010101010101010101010101010101010101010101<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 01010101010101010101010101010101010101010101010101FFDB0043010101<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 0101010101010101010101010101010101010101010101010101010101010101<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 010101010101010101010101010101010101010101010101010101010101FFC0<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 0011080020002003012200021101031101FFC4001F0000010501010101010100<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 000000000000000102030405060708090A0BFFC400B510000201030302040305<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 0504040000017D01020300041105122131410613516107227114328191A10823<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 42B1C11552D1F02433627282090A161718191A25262728292A3435363738393A<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 434445464748494A535455565758595A636465666768696A737475767778797A<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; F2F3F4F5F6F7F8F9FAFFC4001F01000301010101010101010100000000000001<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 02030405060708090A0BFFC400B5110002010204040304070504040001027700<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 0102031104052131061241510761711322328108144291A1B1C109233352F015<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 6272D10A162434E125F11718191A262728292A35363738393A43444546474849<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 4A535455565758595A636465666768696A737475767778797A82838485868788<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; FAFFDA000C03010002110311003F00FEC02BF0FEF3FE0A49E2BF16F8AFE28FF6<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; BFED53FB0FFF00C13EFC2FF0FBE387C7AF815E11D27F6CBF83BF1A3C57FF000B<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; BBFE140FC67F1DFC22D7FE287C38F8DDE37F8F5FB09FC1FF00167DAF50F09C5F<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; F0987C25F81FFF000D11FF000A47EDBE17FF008597F18ADBC51F10AD3C03E12F<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; DC0AFE73FF00E0A71F187F6B1FF8249E83E32FDA2BF661F13FFC241FB33F8DFF<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 00E168F8BF53F867F187E1359FC4CFD9E7E027ED0DE3EF893AB7C60F18DDF89F<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; C4BF0A1FC25FB57E99FF000D89E3FF001CF8AED7E1378DFC45E3AF197C0BF821<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; F1D1DFE1078EF40D1FE1BFED21F08FC65FB22007AA47FF00052CF8A1E0FF0089<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; FF00062D7C3DFB49FEC07FF050AF851F11FE2A7C26F825F12E7FD8F3E1F7C77F<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 05F897E007897E3AFC77F83BF07BE1AF8EBC63F10FC09F14FF006F6F819A6E87<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 7E9E37F1BDE58781BE3E78CFF659BFF88F7FE146D37E1178EFC6DAFE97E20F0B<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 5BFEEE57E11FEC1BE2FF00DB57FE0A053789AFFF006EAD1B43F037C3FF0080BF<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 153E1CA6BDE05F84DF0FDFC11F07BC7FFB557ECDDF163C43E2DB9F05780BC63E<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 2FF1978E3E31F8B743FD957E31F843C1ABF1EBE27E83E2283E0D7C73FDA0FE1F<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; F85BE12FC08D413E0BFECFDFB44F8A3F6EDFDDCA002BF0FF00F689FDA57F61B9<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; BC57E07FDB3FF6FBF8B7E07F85DF053F65BF8E1F1F7C13FB23FC17F196B7E22D<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 7B5EF1D7C7DF80FF0019E4FD9B3E2CFED45AEFC0EF0B9D7EF3E2BF8E3E147C44<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; D0353F0FFECDFA5F823C0BE39B9FD9F3E1B78AFC45FB4478CFC5567E33F8BDA5<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 784BF661FDC0AFE7AFF6ABFF0083797F66AFDA1FE3778D3E38E9FAB687AB6A9F<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 1175CF11F88758F037ED3307ED33F1A7E1E7C37BFF001578B7C45F127C556FFB<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 3C697F03FF006C5FD90B5FF869A1FC43F8AFF107E287C56F891E18F1AF89BE2F<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 786AEBC75E359EFBE18693F0974B1AFE91E2800F54FD9DBF695FD86E1F15F8E3<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; F6CFFD813E2DF81FE28FC14FDA93E387C02F04FED71F05FC1BADF88B41D7BC0B<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; F1F7E3C7C678FF0066CF84DFB51685F03BC50740BCF851E38F8AFF001135FD33<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; C3FF00B48697E37F02F81AE7F683F86DE14F0EFED11E0CF155E78CFE10EABE12<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; FDA7BF702BF08FF636FF008213FC08FD957C7573E35F3FE15D8DBBEB9F0CFC43<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; 73E15F809F0ABE287C3FB0F1C5FF00C25F887A1FC62F87F6FF0012BC69FB4B7E<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; D33FB6AFC63B6D0FC11F18FC0BF0CBE28787FC31FB3DFC4FFD9CBC35E2FF0012<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; F822CB4FFDA1349F8F5E0F83C33E17F097EEE5007FFFD9}<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><br \/>\n&nbsp; <span class=\"kw1\">end<\/span><br \/>\n&nbsp; <span class=\"kw1\">object<\/span> txtEffect<span class=\"sy1\">:<\/span> TText<br \/>\n&nbsp; &nbsp; Align <span class=\"sy3\">=<\/span> alClient<br \/>\n&nbsp; &nbsp; Width <span class=\"sy3\">=<\/span> <span class=\"nu0\">640.000000000000000000<\/span><br \/>\n&nbsp; &nbsp; Height <span class=\"sy3\">=<\/span> <span class=\"nu0\">480.000000000000000000<\/span><br \/>\n&nbsp; &nbsp; HitTest <span class=\"sy3\">=<\/span> <span class=\"kw2\">False<\/span><br \/>\n&nbsp; &nbsp; Fill<span class=\"sy1\">.<\/span><span class=\"me1\">Color<\/span> <span class=\"sy3\">=<\/span> claAqua<br \/>\n&nbsp; &nbsp; Font<span class=\"sy1\">.<\/span><span class=\"me1\">Size<\/span> <span class=\"sy3\">=<\/span> <span class=\"nu0\">72.000000000000000000<\/span><br \/>\n&nbsp; &nbsp; Text <span class=\"sy3\">=<\/span> <span class=\"st0\">'Ripple'<\/span><br \/>\n&nbsp; <span class=\"kw1\">end<\/span><br \/>\n<span class=\"kw1\">end<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Sur la <a href=\"\/whiler\/2011\/10\/12\/effets-firemonkey\/3\/\" title=\"Code source\">page suivante<\/a>, le code source de cette fiche&#8230;<br \/>\n<!--nextpage--><br \/>\nLe code source de cette fiche&nbsp;:<\/p>\n<div class=\"codecolorer-container delphi dawn\" style=\"overflow:auto;white-space:nowrap;width:480px;height:300px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/>44<br \/>45<br \/>46<br \/>47<br \/>48<br \/>49<br \/>50<br \/>51<br \/>52<br \/>53<br \/>54<br \/>55<br \/>56<br \/>57<br \/>58<br \/>59<br \/>60<br \/>61<br \/>62<br \/>63<br \/>64<br \/>65<br \/>66<br \/>67<br \/>68<br \/>69<br \/>70<br \/>71<br \/>72<br \/>73<br \/>74<br \/>75<br \/>76<br \/>77<br \/>78<br \/>79<br \/>80<br \/>81<br \/>82<br \/>83<br \/>84<br \/>85<br \/>86<br \/>87<br \/>88<br \/>89<br \/>90<br \/>91<br \/>92<br \/>93<br \/>94<br \/>95<br \/>96<br \/>97<br \/>98<br \/>99<br \/>100<br \/>101<br \/>102<br \/>103<br \/>104<br \/>105<br \/>106<br \/>107<br \/>108<br \/>109<br \/>110<br \/>111<br \/>112<br \/>113<br \/>114<br \/>115<br \/>116<br \/>117<br \/>118<br \/>119<br \/>120<br \/>121<br \/>122<br \/>123<br \/>124<br \/>125<br \/>126<br \/>127<br \/>128<br \/>129<br \/>130<br \/>131<br \/>132<br \/>133<br \/>134<br \/>135<br \/>136<br \/>137<br \/>138<br \/>139<br \/>140<br \/>141<br \/>142<br \/>143<br \/>144<br \/>145<br \/>146<br \/>147<br \/>148<br \/>149<br \/>150<br \/>151<br \/>152<br \/>153<br \/><\/div><\/td><td><div class=\"delphi codecolorer\"><span class=\"kw1\">unit<\/span> main<span class=\"sy1\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">interface<\/span><br \/>\n<br \/>\n<span class=\"kw1\">uses<\/span><br \/>\n&nbsp; System<span class=\"sy1\">.<\/span><span class=\"me1\">SysUtils<\/span><span class=\"sy1\">,<\/span> System<span class=\"sy1\">.<\/span><span class=\"me1\">Types<\/span><span class=\"sy1\">,<\/span> System<span class=\"sy1\">.<\/span><span class=\"me1\">UITypes<\/span><span class=\"sy1\">,<\/span> System<span class=\"sy1\">.<\/span><span class=\"me1\">Classes<\/span><span class=\"sy1\">,<\/span> System<span class=\"sy1\">.<\/span><span class=\"me1\">Variants<\/span><span class=\"sy1\">,<\/span><br \/>\n&nbsp; FMX<span class=\"sy1\">.<\/span><span class=\"me1\">Types<\/span><span class=\"sy1\">,<\/span> FMX<span class=\"sy1\">.<\/span><span class=\"me1\">Controls<\/span><span class=\"sy1\">,<\/span> FMX<span class=\"sy1\">.<\/span><span class=\"me1\">Forms<\/span><span class=\"sy1\">,<\/span> FMX<span class=\"sy1\">.<\/span><span class=\"me1\">Dialogs<\/span><span class=\"sy1\">,<\/span> FMX<span class=\"sy1\">.<\/span><span class=\"me1\">Objects<\/span><span class=\"sy1\">,<\/span> FMX<span class=\"sy1\">.<\/span><span class=\"me1\">Filter<\/span><span class=\"sy1\">.<\/span><span class=\"me1\">Effects<\/span><span class=\"sy1\">,<\/span> FMX<span class=\"sy1\">.<\/span><span class=\"me1\">Ani<\/span><span class=\"sy1\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">type<\/span><br \/>\n&nbsp; TfrmMain <span class=\"sy3\">=<\/span> <span class=\"kw1\">class<\/span><span class=\"br0\">&#40;<\/span>TForm<span class=\"br0\">&#41;<\/span><br \/>\n&nbsp; &nbsp; imgBelly &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy1\">:<\/span> TImage<span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; txtEffect &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy1\">:<\/span> TText<span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; effRipple &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy1\">:<\/span> TRippleEffect<span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; effSmoothMagnify &nbsp; <span class=\"sy1\">:<\/span> TSmoothMagnifyEffect<span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; effPinch &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy1\">:<\/span> TPinchEffect<span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; effWave &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy1\">:<\/span> TWaveEffect<span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; effHueAdjust &nbsp; &nbsp; &nbsp; <span class=\"sy1\">:<\/span> THueAdjustEffect<span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; effTransitionRipple<span class=\"sy1\">:<\/span> TRippleTransitionEffect<span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">procedure<\/span> FormCreate<span class=\"br0\">&#40;<\/span>Sender<span class=\"sy1\">:<\/span> <span class=\"kw4\">TObject<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">procedure<\/span> imgBellyMouseDown<span class=\"br0\">&#40;<\/span>Sender<span class=\"sy1\">:<\/span> <span class=\"kw4\">TObject<\/span><span class=\"sy1\">;<\/span> Button<span class=\"sy1\">:<\/span> TMouseButton<span class=\"sy1\">;<\/span> Shift<span class=\"sy1\">:<\/span> TShiftState<span class=\"sy1\">;<\/span> X<span class=\"sy1\">,<\/span> Y<span class=\"sy1\">:<\/span> <span class=\"kw4\">Single<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">procedure<\/span> imgBellyDblClick<span class=\"br0\">&#40;<\/span>Sender<span class=\"sy1\">:<\/span> <span class=\"kw4\">TObject<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">private<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">procedure<\/span> DisableEffects<span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">procedure<\/span> DoEffect<span class=\"br0\">&#40;<\/span>X<span class=\"sy1\">,<\/span> Y<span class=\"sy1\">:<\/span> <span class=\"kw4\">Single<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"coMULTI\">{ Private declarations }<\/span><br \/>\n&nbsp; <span class=\"kw1\">public<\/span><br \/>\n&nbsp; &nbsp; <span class=\"coMULTI\">{ Public declarations }<\/span><br \/>\n&nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">var<\/span><br \/>\n&nbsp; frmMain<span class=\"sy1\">:<\/span> TfrmMain<span class=\"sy1\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">implementation<\/span><br \/>\n<br \/>\n<span class=\"co2\">{$R *.fmx}<\/span><br \/>\n<br \/>\n<span class=\"kw1\">procedure<\/span> TfrmMain<span class=\"sy1\">.<\/span><span class=\"me1\">DisableEffects<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">var<\/span><br \/>\n&nbsp; iLoop<span class=\"sy1\">,<\/span> iMax<span class=\"sy1\">:<\/span> <span class=\"kw4\">Integer<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">begin<\/span><br \/>\n&nbsp; iMax <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw3\">Pred<\/span><span class=\"br0\">&#40;<\/span>imgBelly<span class=\"sy1\">.<\/span><span class=\"me1\">ChildrenCount<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">for<\/span> iLoop <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"nu0\">0<\/span> <span class=\"kw1\">to<\/span> iMax <span class=\"kw1\">do<\/span><br \/>\n&nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span>imgBelly<span class=\"sy1\">.<\/span><span class=\"me1\">Children<\/span><span class=\"br0\">&#91;<\/span>iLoop<span class=\"br0\">&#93;<\/span> <span class=\"kw1\">is<\/span> TImageFXEffect<span class=\"br0\">&#41;<\/span> <span class=\"kw1\">then<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"br0\">&#40;<\/span>imgBelly<span class=\"sy1\">.<\/span><span class=\"me1\">Children<\/span><span class=\"br0\">&#91;<\/span>iLoop<span class=\"br0\">&#93;<\/span> <span class=\"kw1\">as<\/span> TImageFXEffect<span class=\"br0\">&#41;<\/span><span class=\"sy1\">.<\/span><span class=\"me1\">Enabled<\/span> <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw2\">False<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">procedure<\/span> TfrmMain<span class=\"sy1\">.<\/span><span class=\"me1\">DoEffect<\/span><span class=\"br0\">&#40;<\/span>X<span class=\"sy1\">,<\/span> Y<span class=\"sy1\">:<\/span> <span class=\"kw4\">Single<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">var<\/span><br \/>\n&nbsp; bmp<span class=\"sy1\">:<\/span> TBitmap<span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">begin<\/span><br \/>\n&nbsp; <span class=\"kw1\">case<\/span> Tag <span class=\"kw1\">of<\/span><br \/>\n&nbsp; &nbsp; <span class=\"nu0\">0<\/span><span class=\"sy1\">:<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effRipple<span class=\"sy1\">.<\/span><span class=\"me1\">Center<\/span> &nbsp; &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> PointF<span class=\"br0\">&#40;<\/span>X<span class=\"sy1\">,<\/span> Y<span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effRipple<span class=\"sy1\">.<\/span><span class=\"me1\">Phase<\/span> &nbsp; &nbsp; <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"nu0\">20<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effRipple<span class=\"sy1\">.<\/span><span class=\"me1\">Amplitude<\/span> <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effRipple<span class=\"sy1\">.<\/span><span class=\"me1\">Enabled<\/span> &nbsp; <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw2\">True<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effRipple<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloat<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Phase'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1.5<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effRipple<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloat<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Amplitude'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0.3<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0.5<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effRipple<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloatDelay<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Amplitude'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0.5<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"nu0\">1<\/span><span class=\"sy1\">:<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effSmoothMagnify<span class=\"sy1\">.<\/span><span class=\"me1\">Center<\/span> &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> PointF<span class=\"br0\">&#40;<\/span>X<span class=\"sy1\">,<\/span> Y<span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effSmoothMagnify<span class=\"sy1\">.<\/span><span class=\"me1\">Magnification<\/span> <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effSmoothMagnify<span class=\"sy1\">.<\/span><span class=\"me1\">Enabled<\/span> &nbsp; &nbsp; &nbsp; <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw2\">True<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effSmoothMagnify<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloat<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Magnification'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">3<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> TAnimationType<span class=\"sy1\">.<\/span><span class=\"me1\">atInOut<\/span><span class=\"sy1\">,<\/span> TInterpolationType<span class=\"sy1\">.<\/span><span class=\"me1\">itBounce<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effSmoothMagnify<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloatDelay<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Magnification'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"nu0\">2<\/span><span class=\"sy1\">:<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effPinch<span class=\"sy1\">.<\/span><span class=\"me1\">Center<\/span> &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> PointF<span class=\"br0\">&#40;<\/span>X<span class=\"sy1\">,<\/span> Y<span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effPinch<span class=\"sy1\">.<\/span><span class=\"me1\">Radius<\/span> &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effPinch<span class=\"sy1\">.<\/span><span class=\"me1\">Enabled<\/span> <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw2\">True<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effPinch<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloat<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Radius'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0.5<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> TAnimationType<span class=\"sy1\">.<\/span><span class=\"me1\">atInOut<\/span><span class=\"sy1\">,<\/span> TInterpolationType<span class=\"sy1\">.<\/span><span class=\"me1\">itElastic<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effPinch<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloatDelay<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Radius'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"nu0\">3<\/span><span class=\"sy1\">:<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effWave<span class=\"sy1\">.<\/span><span class=\"me1\">WaveSize<\/span> <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"nu0\">256<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effWave<span class=\"sy1\">.<\/span><span class=\"me1\">Enabled<\/span> &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw2\">True<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effWave<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloatWait<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'WaveSize'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">32<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">2<\/span><span class=\"sy1\">,<\/span> TAnimationType<span class=\"sy1\">.<\/span><span class=\"me1\">atInOut<\/span><span class=\"sy1\">,<\/span> TInterpolationType<span class=\"sy1\">.<\/span><span class=\"me1\">itSinusoidal<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effWave<span class=\"sy1\">.<\/span><span class=\"me1\">Enabled<\/span> &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw2\">False<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"nu0\">4<\/span><span class=\"sy1\">:<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effHueAdjust<span class=\"sy1\">.<\/span><span class=\"me1\">Hue<\/span> &nbsp; &nbsp; <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effHueAdjust<span class=\"sy1\">.<\/span><span class=\"me1\">Enabled<\/span> <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw2\">True<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effHueAdjust<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloat<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Hue'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effHueAdjust<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloatDelay<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Hue'<\/span><span class=\"sy1\">,<\/span> <span class=\"sy3\">-<\/span><span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">2<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effHueAdjust<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloatDelay<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Hue'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">3<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"nu0\">5<\/span><span class=\"sy1\">:<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effTransitionRipple<span class=\"sy1\">.<\/span><span class=\"me1\">Progress<\/span> <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effTransitionRipple<span class=\"sy1\">.<\/span><span class=\"me1\">Enabled<\/span> &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw2\">True<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effTransitionRipple<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloatWait<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Progress'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">100<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">3<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; bmp <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> TBitmap<span class=\"sy1\">.<\/span><span class=\"me1\">Create<\/span><span class=\"br0\">&#40;<\/span>imgBelly<span class=\"sy1\">.<\/span><span class=\"me1\">Bitmap<\/span><span class=\"sy1\">.<\/span><span class=\"me1\">Width<\/span><span class=\"sy1\">,<\/span> imgBelly<span class=\"sy1\">.<\/span><span class=\"me1\">Bitmap<\/span><span class=\"sy1\">.<\/span><span class=\"me1\">Height<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"kw1\">try<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; bmp<span class=\"sy1\">.<\/span><span class=\"me1\">Assign<\/span><span class=\"br0\">&#40;<\/span>imgBelly<span class=\"sy1\">.<\/span><span class=\"me1\">Bitmap<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; imgBelly<span class=\"sy1\">.<\/span><span class=\"me1\">Bitmap<\/span><span class=\"sy1\">.<\/span><span class=\"me1\">Assign<\/span><span class=\"br0\">&#40;<\/span>effTransitionRipple<span class=\"sy1\">.<\/span><span class=\"me1\">Target<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; effTransitionRipple<span class=\"sy1\">.<\/span><span class=\"me1\">Target<\/span><span class=\"sy1\">.<\/span><span class=\"me1\">Assign<\/span><span class=\"br0\">&#40;<\/span>bmp<span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"kw1\">finally<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; bmp<span class=\"sy1\">.<\/span><span class=\"me1\">Free<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; effTransitionRipple<span class=\"sy1\">.<\/span><span class=\"me1\">Enabled<\/span> &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"kw2\">False<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">procedure<\/span> TfrmMain<span class=\"sy1\">.<\/span><span class=\"me1\">FormCreate<\/span><span class=\"br0\">&#40;<\/span>Sender<span class=\"sy1\">:<\/span> <span class=\"kw4\">TObject<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">begin<\/span><br \/>\n&nbsp; DisableEffects<span class=\"sy1\">;<\/span><br \/>\n&nbsp; txtEffect<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloat<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Opacity'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">procedure<\/span> TfrmMain<span class=\"sy1\">.<\/span><span class=\"me1\">imgBellyDblClick<\/span><span class=\"br0\">&#40;<\/span>Sender<span class=\"sy1\">:<\/span> <span class=\"kw4\">TObject<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">begin<\/span><br \/>\n&nbsp; Close<span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">procedure<\/span> TfrmMain<span class=\"sy1\">.<\/span><span class=\"me1\">imgBellyMouseDown<\/span><span class=\"br0\">&#40;<\/span>Sender<span class=\"sy1\">:<\/span> <span class=\"kw4\">TObject<\/span><span class=\"sy1\">;<\/span> Button<span class=\"sy1\">:<\/span> TMouseButton<span class=\"sy1\">;<\/span> Shift<span class=\"sy1\">:<\/span> TShiftState<span class=\"sy1\">;<\/span> X<span class=\"sy1\">,<\/span> Y<span class=\"sy1\">:<\/span> <span class=\"kw4\">Single<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">begin<\/span><br \/>\n&nbsp; <span class=\"kw1\">case<\/span> Button <span class=\"kw1\">of<\/span><br \/>\n&nbsp; &nbsp; TMouseButton<span class=\"sy1\">.<\/span><span class=\"me1\">mbLeft<\/span><span class=\"sy1\">:<\/span> DoEffect<span class=\"br0\">&#40;<\/span>X<span class=\"sy1\">,<\/span> Y<span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; TMouseButton<span class=\"sy1\">.<\/span><span class=\"me1\">mbRight<\/span><span class=\"sy1\">:<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; &nbsp; Tag <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> Tag <span class=\"sy3\">+<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"kw1\">case<\/span> Tag <span class=\"kw1\">of<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">1<\/span><span class=\"sy1\">:<\/span> Caption <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"st0\">'SmoothMagnify'<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">2<\/span><span class=\"sy1\">:<\/span> Caption <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"st0\">'Pinch'<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">3<\/span><span class=\"sy1\">:<\/span> Caption <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"st0\">'Wave'<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">4<\/span><span class=\"sy1\">:<\/span> Caption <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"st0\">'Hue'<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"nu0\">5<\/span><span class=\"sy1\">:<\/span> Caption <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"st0\">'RippleTransition'<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">else<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">begin<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Caption <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"st0\">'Ripple'<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Tag &nbsp; &nbsp; <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DisableEffects<span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; txtEffect<span class=\"sy1\">.<\/span><span class=\"me1\">Text<\/span> <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> Caption<span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; txtEffect<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloat<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Opacity'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; txtEffect<span class=\"sy1\">.<\/span><span class=\"me1\">AnimateFloatDelay<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">'Opacity'<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">0<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy1\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; <span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><br \/>\n<br \/>\n<span class=\"kw1\">end<\/span><span class=\"sy1\">.<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>Merci \u00e0 <a href=\"https:\/\/blogs.embarcadero.com\/tlaborde\/\" title=\"Le blog de Thierry Laborde\" target=\"_blank\">Thierry<\/a> pour la relecture du code et ses remarques pertinentes  <img src=\"https:\/\/blogs.wittwer.fr\/whiler\/wp-includes\/images\/smilies\/skype\/\/yes.gif\" alt=\"(y)\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/> <\/p>\n<p>&nbsp;<\/p>\n<blockquote><p>D\u00e9velopp\u00e9 avec <a target=\"_blank\" href=\"https:\/\/www.embarcadero.com\/fr\/products\/delphi\">Embarcadero Delphi XE2<\/a>.<\/p><\/blockquote>\n<p><center><a href=\"\/whiler\/category\/computer\/delphi\/\" title=\"Articles concernant Delphi\"><img loading=\"lazy\" decoding=\"async\" src=\"\/whiler\/wp-content\/uploads\/2009\/10\/built_with_delphi.png\" alt=\"D\u00e9velopp\u00e9 en Delphi\" title=\"D\u00e9velopp\u00e9 en Delphi\" width=\"125\" height=\"51\" class=\"size-full wp-image-2721\" \/><\/a><\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Avec Delphi XE2 et FireMonkey, il est possible de tr\u00e8s facilement manipuler des images\u2026<\/p>\n<p>Dans cet article, je vais vous montrer le code que j\u2019ai utilis\u00e9 pour effectuer cette d\u00e9monstration&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[7],"tags":[125,27,154,146],"class_list":["post-2902","post","type-post","status-publish","format-standard","hentry","category-delphi","tag-b3lly","tag-coloration-syntaxique","tag-delphi","tag-firemonkey"],"_links":{"self":[{"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/posts\/2902","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/comments?post=2902"}],"version-history":[{"count":0,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/posts\/2902\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/media?parent=2902"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/categories?post=2902"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/tags?post=2902"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}