#include <GUIConstants.au3> #include <Color.au3> Opt("GUIOnEventMode", 1) $Width = 550 $Height = 500 $Form = GUICreate("Text Effect", $Width, $Height, -1, -1) GUISetBkColor(0x666666) GUISetState() GUISetOnEvent($GUI_EVENT_CLOSE, "Quit") TextEffect("Text Effect !", 15, 300, 50, 40, 10, 20, 0x000000, 0x00FF00, 25, 25, 1, 1) TextEffect("Text Effect !", 35, 200, 50, 40, 10, 20, 0x000000, 0xFF0000, 25, 25, 1, 1) TextEffect("Text Effect !", 55, 100, 50, 40, 10, 20, 0x000000, 0x0000FF, 25, 25, 1, 1) While 1 Sleep(100) WEnd Func TextEffect($Text, $Left, $Top, $Fontsize, $Fontspace, $Step, $Delay, $Color, $Color2, $Colorstep, $Colorstep2, $Shadow, $Gradient) $Color = Colors($Color, $Color2, $Colorstep, $Colorstep2) $Letters = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9" $Let = StringSplit($Letters, ",", 1) $Len = StringLen($Text) Local $Control[$Len + 1], $Fontspace2 = 0 For $i = 1 To $Len $pLeft = (($Left + ($i * $Fontspace)) - $Fontspace2) - $Fontspace $Control[$i] = GUICtrlCreateLabel("", $pLeft, 0, $Fontspace, $Fontspace * 2) GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) GUICtrlSetFont(-1, $Fontsize) $sLeft = StringLeft($Text, $i) If $i <> 1 Then $sLeft = StringTrimLeft($sLeft, $i - 1) If $sLeft <> " " Then For $z = 1 To $Step GUICtrlSetPos(-1, $pLeft, $z * ($Top / $Step)) $Text2 = $Let[Random(1, UBound($Let) - 1, 1)] GUICtrlSetData(-1, $Text2) GUICtrlSetColor(-1, $Color[$z * ($Colorstep / $Step)]) Sleep($Delay) Next EndIf GUICtrlSetData(-1, $sLeft) If $Gradient = 1 Then If $i < $Len / 2 Then GUICtrlSetColor(-1, $Color[$Colorstep - ($i * (($Colorstep / 2) / ($Len / 2)))]) Else GUICtrlSetColor(-1, $Color[($Colorstep / 2) + (($i - ($Len / 2)) * (($Colorstep / 2) / ($Len / 2)))]) EndIf EndIf If $Shadow = 1 Then GUICtrlCreateLabel($sLeft, $pLeft - 3, $Top + 3, $Fontspace, $Fontspace * 2) GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) GUICtrlSetColor(-1, $Color[$Step / 1.2]) GUICtrlSetFont(-1, $Fontsize) GUICtrlSetPos($Control[$i], $pLeft, $Top) EndIf If $sLeft = "i" Or $sLeft = "ı" Then $Fontspace2 += $Fontspace / 2 If $sLeft = "f" Or $sLeft = "l" Then $Fontspace2 += $Fontspace / 2.5 Next EndFunc ;==>TextEffect Func Colors($nStartColor = 0x00FF00, $nEndColor = 0x000000, $Step = 50, $Step2 = 50) Local $color1R = _ColorGetRed($nStartColor) Local $color1G = _ColorGetGreen($nStartColor) Local $color1B = _ColorGetBlue($nStartColor) Local $nStepR = (_ColorGetRed($nEndColor) - $color1R) / $Step2 Local $nStepG = (_ColorGetGreen($nEndColor) - $color1G) / $Step2 Local $nStepB = (_ColorGetBlue($nEndColor) - $color1B) / $Step2 For $i = 1 To $Step $sColor = "0x" & StringFormat("%02X%02X%02X", $color1R + $nStepR * $i, $color1G + $nStepG * $i, $color1B + $nStepB * $i) If $i = 1 Then $Colors = $sColor Else $Colors &= "," & $sColor EndIf Next $Colors = StringSplit($Colors, ",", 1) Return $Colors EndFunc ;==>Colors Func Quit() DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $Form, "int", 500, "long", 0x00090000) Exit EndFunc ;==>Quit
Edit : Added Gradient & Shadow.
Edited by Jex, 06 December 2007 - 10:26 AM.








