peethebee Posted August 24, 2005 Author Share Posted August 24, 2005 v 1.9.3 online: new support for a modern vertical about box with scrolling text and fading out effects on top and bottom. test it! peethebee vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvGerman Forums: http://www.autoit.deGerman Help File: http://autoit.de/hilfe vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv Link to comment Share on other sites More sharing options...
GaryFrost Posted September 3, 2005 Share Posted September 3, 2005 As of 3.1.1.73 no longer need to force redraw Added Label to designer Took out all the forced redraw lines. Couldn't the "modern" to work, was probably doing something wrong. Gary SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference. Link to comment Share on other sites More sharing options...
peethebee Posted September 3, 2005 Author Share Posted September 3, 2005 Thank you very much, Gary! You are doing a great job! peethebee vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvGerman Forums: http://www.autoit.deGerman Help File: http://autoit.de/hilfe vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv Link to comment Share on other sites More sharing options...
theguy0000 Posted September 5, 2005 Share Posted September 5, 2005 interesting script! - Matt The cake is a lie.www.theguy0000.com is currentlyUP images.theguy0000.com is currentlyUP all other *.theguy0000.com sites are DOWN Link to comment Share on other sites More sharing options...
peethebee Posted September 5, 2005 Author Share Posted September 5, 2005 Hi! @theguy0000: Thanks for looking at almost all my programs! peethebee vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvGerman Forums: http://www.autoit.deGerman Help File: http://autoit.de/hilfe vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv Link to comment Share on other sites More sharing options...
peethebee Posted October 19, 2005 Author Share Posted October 19, 2005 Hi! Just wanted this UDF to be once more at the rop of the Scripts & Scraps section. Sorry for that, if you do not like it! peethebee vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvGerman Forums: http://www.autoit.deGerman Help File: http://autoit.de/hilfe vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv Link to comment Share on other sites More sharing options...
4Fun Posted July 16, 2006 Share Posted July 16, 2006 This is cool, let's put it back at the top so other newbies like myself will see it. Link to comment Share on other sites More sharing options...
uber125 Posted July 26, 2006 Share Posted July 26, 2006 Removed file, get it directly via my fileman! WTF is Fileman? I am trying to animate some text in a GUI i think this may help. If some one has another link on how to do this please let me know. Ty. Link to comment Share on other sites More sharing options...
GaryFrost Posted July 26, 2006 Share Posted July 26, 2006 Removed file, get it directly via my fileman! WTF is Fileman?I am trying to animate some text in a GUI i think this may help.If some one has another link on how to do this please let me know.Ty.Just look in his signature for the link SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference. Link to comment Share on other sites More sharing options...
Prozac Posted September 25, 2007 Share Posted September 25, 2007 I was looking for text effecs, and now they are gone Link to comment Share on other sites More sharing options...
Draygoes Posted September 29, 2007 Share Posted September 29, 2007 Slight problem opening your fileman... "404: The page/file you requested could not be found." Sorry! We can't find the file or page you asked for. If you came from an external site the links may be out of date. Please try the AutoItScript home page, the AutoIt v3 page or the AutoIt v2 home page to find your file. Spoiler "If a vegetarian eats vegetables,What the heck does a humanitarian eat?" "I hear voices in my head, but I ignore them and continue on killing." "You have forced me to raise the indifference warning to beige, it's a beige alert people. As with all beige alerts please prepare to think about the possibility of caring." An optimist says that giving someone power DOESN'T immediately turn them into a sadist. A pessimist says that giving someone power doesn't IMMEDIATELY turn them into a sadist. Link to comment Share on other sites More sharing options...
GaryFrost Posted September 29, 2007 Share Posted September 29, 2007 Slight problem opening your fileman... "404: The page/file you requested could not be found." Sorry! We can't find the file or page you asked for. If you came from an external site the links may be out of date. Please try the AutoItScript home page, the AutoIt v3 page or the AutoIt v2 home page to find your file. Unless he requests Jon to re-active his fileman area that is what you'll get. I believe the latest 1.93 Here's the last zip I had downloaded Sept 2005 text_effects_1.9.3.zip SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference. Link to comment Share on other sites More sharing options...
Draygoes Posted September 29, 2007 Share Posted September 29, 2007 Thanks man. I cant believe that you accually kept it that long lol. Im glad you did though. Thank you. Spoiler "If a vegetarian eats vegetables,What the heck does a humanitarian eat?" "I hear voices in my head, but I ignore them and continue on killing." "You have forced me to raise the indifference warning to beige, it's a beige alert people. As with all beige alerts please prepare to think about the possibility of caring." An optimist says that giving someone power DOESN'T immediately turn them into a sadist. A pessimist says that giving someone power doesn't IMMEDIATELY turn them into a sadist. Link to comment Share on other sites More sharing options...
GaryFrost Posted September 29, 2007 Share Posted September 29, 2007 (edited) Thanks man. I cant believe that you accually kept it that long lol. Im glad you did though. Thank you.I worked on it with him for a while, was interested in it at the time, I keep an archive of zips I download (have plenty of HD space).Replace calls to _Floor with Floor, the UDF _Floor was removed a long time ago. Edited September 29, 2007 by GaryFrost SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference. Link to comment Share on other sites More sharing options...
Draygoes Posted September 29, 2007 Share Posted September 29, 2007 Ok, thank you. Btw, how much hd space do you have? I wouldnt have enough space for doing stuff like that. I have 160gb which is great but I need to get an ex hd so that I wont have to deal with the stress of keeping all my back ups on this one lol. Spoiler "If a vegetarian eats vegetables,What the heck does a humanitarian eat?" "I hear voices in my head, but I ignore them and continue on killing." "You have forced me to raise the indifference warning to beige, it's a beige alert people. As with all beige alerts please prepare to think about the possibility of caring." An optimist says that giving someone power DOESN'T immediately turn them into a sadist. A pessimist says that giving someone power doesn't IMMEDIATELY turn them into a sadist. Link to comment Share on other sites More sharing options...
GaryFrost Posted September 29, 2007 Share Posted September 29, 2007 Ok, thank you. Btw, how much hd space do you have? I wouldnt have enough space for doing stuff like that. I have 160gb which is great but I need to get an ex hd so that I wont have to deal with the stress of keeping all my back ups on this one lol.couple 250gb ex. drives on this one, couple 120gb intern on this one.spare pc at desk couple 120gbanother pc 3 or 4 75gb drivesanother pc 2 75gb drivesabout 1/2 dozen 75gb drives not being usedabout 20 40gb drives not being usedsome other assorted size drives not being used.shouldn't run out anytime soon. SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference. Link to comment Share on other sites More sharing options...
Draygoes Posted October 2, 2007 Share Posted October 2, 2007 Holy crap!!!. Thats a lot of space lol. Are you sure you wont run out any time soon? lol Jk Spoiler "If a vegetarian eats vegetables,What the heck does a humanitarian eat?" "I hear voices in my head, but I ignore them and continue on killing." "You have forced me to raise the indifference warning to beige, it's a beige alert people. As with all beige alerts please prepare to think about the possibility of caring." An optimist says that giving someone power DOESN'T immediately turn them into a sadist. A pessimist says that giving someone power doesn't IMMEDIATELY turn them into a sadist. Link to comment Share on other sites More sharing options...
laffo16 Posted April 24, 2009 Share Posted April 24, 2009 anyone know the correct url for this UDF,http://www.autoitscript.com/fileman/users/peethebee/seems to be broken. Link to comment Share on other sites More sharing options...
Xenobiologist Posted April 24, 2009 Share Posted April 24, 2009 expandcollapse popup; ================================================ ; V E R S I O N 1 . 9 . 3 ; ================================================ ; ; This is as far as I know the frist AutoIt UDF ; dealing with text animations. I myself believe ; that such an easy but impressing effect can be ; very uesfull. ; I hope you like it. Feel free to post comments ; in the AutoIt forums or email me at ; peter_opali@gmx.de! ; ; peethebee, Germany ; ; ; Special Thanks to: ; - "gafrost" for his solution of the ; WinXPSP2/W2k problem ; ; ; Short summary of all effect functions: ; ; _txt_eff__about_messages ; _txt_eff__airport ; _txt_eff__blink ; _txt_eff__broad ; _txt_eff__color_sequence ; _txt_eff__color_to_color ; _txt_eff__enlarge_from_left ; _txt_eff__enlarge_from_right ; _txt_eff__mix_up_chars ; _txt_eff__move_cap_char_through_text ; _txt_eff__move_in_from_left ; _txt_eff__move_in_from_right ; _txt_eff__move_out_to_left ; _txt_eff__move_out_to_right ; _txt_eff__move_small_char_through_text ; _txt_eff__move_string_through_text ; _txt_eff__raining ; _txt_eff__rainbow ; _txt_eff__scroll_through_options ; _txt_eff__show_text_behind_char ; _txt_eff__small ; _txt_eff__spin ; _txt_eff__spotlight ; _txt_eff__style ; _txt_eff__uncover_from_wall_to_wall ; _txt_eff__wave ; _txt_eff__zoom ; ; ================================================= #include-once #include <String.au3> #include <math.au3> #include <Array.au3> #include <Color.au3> ; --------------------------------- ; --------------------------------- ; ---- 1. pure text animation ---- ; --------------------------------- ; --------------------------------- ;=============================================================================== ; ; Description: Enlarge the given text in the given control from left to right. ; Syntax: _txt_eff__enlarge_from_left($winhandle, $control_id, [$text, [$delay, [$over_old]]]) ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow), $over_old - 0: delete old text before starting / 1: do not delete it ; Requirement(s): v3.1.1.66 (beta) or later ; Return Value(s): 1 - in any case ; ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): None ; ;=============================================================================== Func _txt_eff__enlarge_from_left($winhandle, $control_id, $text = "", $delay = 100, $over_old = 0) If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) If $over_old = 1 Then $orig_text = ControlGetText($winhandle, "", $control_id) If StringLen($orig_text) < StringLen($text) Then For $i = StringLen($orig_text) To StringLen($text) $orig_text = $orig_text & " " Next ElseIf StringLen($orig_text) > StringLen($text) Then For $i = StringLen($text) To StringLen($orig_text) $text = $text & " " Next EndIf EndIf For $i = 1 To StringLen($text) $out_string = StringLeft($text, $i) If $over_old = 1 Then $out_string = $out_string & " " & StringTrimLeft($orig_text, $i + 2) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Sleep($delay) Next Return 1 EndFunc ;==>_txt_eff__enlarge_from_left ;=============================================================================== ; ; Description: Enlarge the given text in the given control from right to left. ; Syntax: _txt_eff__enlarge_from_right($winhandle, $control_id, [$text, [$delay , [$over_old]]]) ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow), , $over_old - 0: delete old text before starting / 1: do not delete it ; Requirement(s): v3.1.1.66 (beta) or later ; Return Value(s): 1 - in any case ; ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): Only looks good when using a monospace font like Courier New ; ;=============================================================================== Func _txt_eff__enlarge_from_right($winhandle, $control_id, $text = "", $delay = 100, $over_old = 0) If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) If $over_old = 1 Then $orig_text = ControlGetText($winhandle, "", $control_id) If StringLen($orig_text) < StringLen($text) Then For $i = StringLen($orig_text) To StringLen($text) $orig_text = $orig_text & " " Next ElseIf StringLen($orig_text) > StringLen($text) Then For $i = StringLen($text) To StringLen($orig_text) $text = $text & " " Next EndIf EndIf For $i = 1 To StringLen($text) $out_string = StringRight($text, $i) If $over_old = 1 Then $out_string = StringTrimRight($orig_text, $i + 2) & " " & $out_string If $i = StringLen($text) - 1 Then ExitLoop Else For $j = $i To StringLen($text) - 1 $out_string = " " & $out_string Next EndIf If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Sleep($delay) Next If $over_old = 1 Then If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, " " & StringRight($text, StringLen($text) - 1)) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Sleep($delay) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) EndIf Return 1 EndFunc ;==>_txt_eff__enlarge_from_right ;=============================================================================== ; ; Description: Move a given text in the given control in from left side. ; Syntax: _txt_eff__move_in_from_left($winhandle, $control_id, [$text, [$delay]]) ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow) ; Requirement(s): v3.1.1.66 (beta) or later ; Return Value(s): 1 - in any case ; ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): None ; ;=============================================================================== Func _txt_eff__move_in_from_left($winhandle, $control_id, $text = "", $delay = 100) If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) For $i = 1 To StringLen($text) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, StringRight($text, $i)) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Sleep($delay) Next EndFunc ;==>_txt_eff__move_in_from_left ;=============================================================================== ; ; Description: Move a given text in the given control out to left side. ; Syntax: _txt_eff__move_out_to_left($winhandle, $control_id, [$text, [$delay]]) ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow) ; Requirement(s): v3.1.1.66 (beta) or later ; Return Value(s): 1 - in any case ; ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): None ; ;=============================================================================== Func _txt_eff__move_out_to_left($winhandle, $control_id, $text = "", $delay = 100) If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) For $i = StringLen($text) To 0 Step - 1 If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, StringRight($text, $i)) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Sleep($delay) Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, "") If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Return 1 EndFunc ;==>_txt_eff__move_out_to_left ;=============================================================================== ; ; Description: Move a given text in the given control in from right side. ; Syntax: _txt_eff__move_in_from_right($winhandle, $control_id, [$text, [$delay , [$text_min_width]]) ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow), $text_min_width - enlarge the text to this min length if it shorter ; Requirement(s): v3.1.1.66 (beta) or later ; Return Value(s): 1 - in any case ; ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): Only looks good when using a monospace font like Courier New ; ;=============================================================================== Func _txt_eff__move_in_from_right($winhandle, $control_id, $text = "", $delay = 100, $text_min_width = 0) If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) If $text_min_width <> 0 Then For $i = StringLen($text) To $text_min_width $text = $text & " " Next EndIf For $i = 1 To StringLen($text) $out_string = StringLeft($text, $i) For $j = $i To StringLen($text) - 1 $out_string = " " & $out_string Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Sleep($delay) Next Return 1 EndFunc ;==>_txt_eff__move_in_from_right ;=============================================================================== ; ; Description: Move a given text in the given control out to right side. ; Syntax: _txt_eff__move_out_to_right($winhandle, $control_id, [$text, [$delay, [$text_min_width]]) ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow), $text_min_width - enlarge the text to this min length if it shorter ; Requirement(s): v3.1.1.66 (beta) or later ; Return Value(s): 1 - in any case ; ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): Only looks good when using a monospace font like Courier New ; ;=============================================================================== Func _txt_eff__move_out_to_right($winhandle, $control_id, $text = "", $delay = 100, $text_min_width = 0) If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) If $text_min_width <> 0 Then For $i = StringLen($text) To $text_min_width $text = $text & " " Next EndIf For $i = StringLen($text) To 0 Step - 1 $out_string = StringLeft($text, $i) For $j = $i To StringLen($text) - 1 $out_string = " " & $out_string Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Sleep($delay) Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, "") If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Return 1 EndFunc ;==>_txt_eff__move_out_to_right ;=============================================================================== ; ; Description: Uncover a given text in the given control behind a given password char. ; Syntax: _txt_eff__show_text_behind_char($winhandle, $control_id, [$text, [$delay, [$char]]) ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow), $char - the foregroud char ; Requirement(s): v3.1.1.66 (beta) or later ; Return Value(s): 1 - in any case ; ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): None ; ;=============================================================================== Func _txt_eff__show_text_behind_char($winhandle, $control_id, $text = "", $delay = 100, $char = "*") If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) For $i = 0 To StringLen($text) $out_string = StringLeft($text, $i) ; Add specified char for every char that's still "covered" For $j = 1 To StringLen($text) - $i $out_string = $out_string & $char Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Sleep($delay) Next Return 1 EndFunc ;==>_txt_eff__show_text_behind_char ;=============================================================================== ; ; Description: Move a string through the given text in the given control. ; Syntax: _txt_eff__move_string_through_text($winhandle, $control_id, [$text, [$delay, [$string, [$show_complete_text]]]]) ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow), $string - string to move through, $show_complete_text - 0: uncover text while animatione / 1: show it from start on ; Requirement(s): v3.1.1.66 (beta) or later ; Return Value(s): 1 - in any case ; ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): None ; ;=============================================================================== Func _txt_eff__move_string_through_text($winhandle, $control_id, $text = "", $delay = 100, $string = "->", $show_complete_text = 0) If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) For $i = 1 To StringLen($text) + 1 $out_string = StringLeft($text, $i - 1) & $string If $show_complete_text = 1 Then $out_string = $out_string & StringRight($text, StringLen($text) - $i - StringLen($string)) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Sleep($delay) Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Return 1 EndFunc ;==>_txt_eff__move_string_through_text ;=============================================================================== ; ; Description: Shows a airport-like effect in the given control. ; Syntax: _txt_eff__airport($winhandle, $control_id, [$text, [$delay, [$start_char, [$skip_chars]]]]) ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow), $start_char - char to start the scrolling with (ASCII-Order), $skip_chars - number of chars to skip in every step ; Requirement(s): v3.1.1.66 (beta) or later ; Return Value(s): 1 - in any case ; ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): None ; ;=============================================================================== Func _txt_eff__airport($winhandle, $control_id, $text = "", $delay = 100, $start_char = "A", $skip_chars = 1) If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) For $i = 1 To StringLen($text) $act_char = StringMid($text, $i, 1) For $j = Asc($start_char) To Asc($act_char) Step $skip_chars $out_string = StringLeft($text, $i - 1) & Chr($j) For $k = 1 To StringLen($text) - $i $out_string = $out_string & Chr($j) Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Sleep($delay) Next Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Return 1 EndFunc ;==>_txt_eff__airport ;=============================================================================== ; ; Description: Spins a given text around in the given control. ; Syntax: _txt_eff__spin($winhandle, $control_id, [$text, [$delay, [$num_spins, [$spin_delay]]]]) ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow), $num_spins - number of spins, $spin_delay - delay between 2 spin-arounds ; Requirement(s): v3.1.1.66 (beta) or later ; Return Value(s): 1 - in any case ; ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): None ; ;=============================================================================== Func _txt_eff__spin($winhandle, $control_id, $text = "", $delay = 100, $num_spins = "1", $spin_delay = 0) If $spin_delay = "" Then $spin_delay = $delay If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) For $i = 1 To $num_spins Sleep($spin_delay) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) For $j = 1 To Round(StringLen($text) / 2) - 1 Sleep($delay) $out_string = StringTrimRight(StringTrimLeft($text, $j), $j) For $k = 1 To $j $out_string = " " & $out_string & " " Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Next For $j = Round(StringLen($text) / 2) - 1 To 1 Step - 1 Sleep($delay) $out_string = StringTrimRight(StringTrimLeft(_StringReverse($text), $j), $j) For $k = 1 To $j $out_string = " " & $out_string & " " Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, _StringReverse($text)) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) For $j = 1 To Round(StringLen($text) / 2) - 1 Sleep($delay) $out_string = StringTrimRight(StringTrimLeft(_StringReverse($text), $j), $j) For $k = 1 To $j $out_string = " " & $out_string & " " Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Next For $j = Round(StringLen($text) / 2) - 1 To 1 Step - 1 Sleep($delay) $out_string = StringTrimRight(StringTrimLeft($text, $j), $j) For $k = 1 To $j $out_string = " " & $out_string & " " Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Next Return 1 EndFunc ;==>_txt_eff__spin ;=============================================================================== ; ; Description: Widens a given text in the given control. ; Syntax: _txt_eff__broad($winhandle, $control_id, [$text, [$delay, [$char, [$go_back, [$delay_before_go_back]]]]]) ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow), $char - char to insert into original text, $go_back - 1: call the ...small effect after widening it / 0: do not call it, $delay_before_go_back - time to wait before going back ; Requirement(s): v3.1.1.66 (beta) or later ; Return Value(s): 1 - in any case ; ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): None ; ;=============================================================================== Func _txt_eff__broad($winhandle, $control_id, $text = "", $delay = 100, $char = " ", $go_back = "0", $delay_before_go_back = 500) If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) $rounds = StringLen($text) - 1 For $i = 1 To $rounds $num_left = $i + ($i - 1) * StringLen($char) $left = StringLeft($text, $i + ($i - 1) * StringLen($char)) $right = StringRight($text, StringLen($text) - $num_left) $text = $left & $char & $right If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Sleep($delay) Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) If $go_back = "1" Then Sleep($delay_before_go_back) _txt_eff__small($winhandle, $control_id, $delay * 0.55, $char) ; _txt_eff__broad is about 45 % faster than _txt_eff__small EndIf Return 1 EndFunc ;==>_txt_eff__broad ;=============================================================================== ; ; Description: Smallens a given text in the given control. ; Syntax: _txt_eff__small($winhandle, $control_id, [$delay, [$char]]) ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $delay - Animation speed (1 = fast, 1000 = slow), $char - char to remove ; Requirement(s): v3.1.1.66 (beta) or later ; Return Value(s): 1 - in any case ; ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): None; fixed in v1.9.1 ; ;=============================================================================== Func _txt_eff__small($winhandle, $control_id, $delay = 100, $char = " ") $del_counter = 0 $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) $out_string = $text For $i = StringLen($text) To 1 Step - 1 Sleep($delay) If (StringMid($out_string, $i, 1) = $char) and ($del_counter < 1) Then $out_string = StringLeft($out_string, $i - 1) & StringTrimLeft($out_string, $i) $del_counter = $del_counter + 1 Else $del_counter = 0 EndIf If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Next Return 1 EndFunc ;==>_txt_eff__small ;=============================================================================== ; ; Description: Shows a rain like effect, all letters are falling doiwn. ; Syntax: _txt_eff__raining($winhandle, $control_id, [$text, [$delay, [$duration, [$over_old]]]]) ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow), $duration = maximum effect time (ms), $over_old - 0: Remove old text before startin effect / 1: Do not remove it ; Requirement(s): v3.1.1.66 (beta) or later ; ; Return Value(s): 1 - in any case ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): None ; ;=============================================================================== Func _txt_eff__raining($winhandle, $control_id, $text = "", $delay = 50, $duration = 3000, $over_old = 0) If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) If $over_old = 1 Then $orig_text = ControlGetText($winhandle, "", $control_id) $out_string = $orig_text If StringLen($orig_text) < StringLen($text) Then For $i = StringLen($orig_text) To StringLen($text) $out_string = $out_string & " " Next ElseIf StringLen($orig_text) > StringLen($text) Then For $i = StringLen($text) To StringLen($orig_text) $text = $text & " " Next EndIf Else $out_string = "" For $i = 1 To StringLen($text) $out_string = $out_string & " " Next EndIf $time = 0 While $time <= $duration - $delay Sleep($delay) $pos = Random(1, StringLen($text), 1) $out_string = StringLeft($out_string, $pos - 1) & StringMid($text, $pos, 1) & StringTrimLeft($out_string, $pos) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) $time = $time + $delay WEnd If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Return 1 EndFunc ;==>_txt_eff__raining ;=============================================================================== ; ; Description: Moves a capital letter trough the text. ; Syntax: ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow), ; Requirement(s): v3.1.1.66 (beta) or later ; ; Return Value(s): 1 - in any case ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): New in v1.6 ; ;=============================================================================== Func _txt_eff__move_cap_char_through_text($winhandle, $control_id, $text = "", $delay = 50, $effect_width_chars = 1, $direction = "to_right", $convert_to_small = 0) If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) If $direction = "to_left" Then $start = StringLen($text) - StringLen($effect_width_chars) $end = 0 $step = -1 Else $start = 0 $end = StringLen($text) - StringLen($effect_width_chars) $step = 1 EndIf $res_text = $text If $convert_to_small = 1 Then $res_text = StringLower($text) For $i = $start To $end Step $step Sleep($delay) $left = StringLeft($res_text, $i) $middle = StringUpper(StringMid($res_text, $i + 1, $effect_width_chars)) $right = StringTrimLeft($res_text, $i + $effect_width_chars) $out_string = $left & $middle & $right If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Next Sleep($delay) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Return 1 EndFunc ;==>_txt_eff__move_cap_char_through_text ;=============================================================================== ; ; Description: Moves a small letter trough the text. ; Syntax: ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow), ; Requirement(s): v3.1.1.66 (beta) or later ; ; Return Value(s): 1 - in any case ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): New in v1.6 ; ;=============================================================================== Func _txt_eff__move_small_char_through_text($winhandle, $control_id, $text = "", $delay = 50, $effect_width_chars = 1, $direction = "to_right", $convert_to_caps = 0) If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) If $direction = "to_left" Then $start = StringLen($text) - StringLen($effect_width_chars) $end = 0 $step = -1 Else $start = 0 $end = StringLen($text) - StringLen($effect_width_chars) $step = 1 EndIf $res_text = $text If $convert_to_caps = 1 Then $res_text = StringUpper($text) For $i = $start To $end Step $step Sleep($delay) $left = StringLeft($res_text, $i) $middle = StringLower(StringMid($res_text, $i + 1, $effect_width_chars)) $right = StringTrimLeft($res_text, $i + $effect_width_chars) $out_string = $left & $middle & $right If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Next Sleep($delay) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Return 1 EndFunc ;==>_txt_eff__move_small_char_through_text ;=============================================================================== ; ; Description: Scrolls through several options until the target text is found. ; Syntax: ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow), ; Requirement(s): v3.1.1.66 (beta) or later ; ; Return Value(s): 1 - in any case ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): New in v1.6 ; ;=============================================================================== Func _txt_eff__scroll_through_options($winhandle, $control_id, $options, $target_text = "", $delay = 50) If $target_text = "" Then $target_text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) For $i = 0 To UBound($options) - 1 Sleep($delay) $out_string = $options[$i] If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) If $out_string = $target_text Then ExitLoop Next Return 1 EndFunc ;==>_txt_eff__scroll_through_options ;=============================================================================== ; ; Description: Uncovers the text going from left to right and ack until everything is uncovered. ; Syntax: ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow), ; Requirement(s): v3.1.1.66 (beta) or later ; ; Return Value(s): 1 - in any case ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): New in v1.6 ; ;=============================================================================== Func _txt_eff__uncover_from_wall_to_wall($winhandle, $control_id, $text = "", $delay = 50, $turn_arounds = 1) If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) $turn_arounds = $turn_arounds + 1 ; better for internal use $out_string = "" For $i = 1 To StringLen($text) $out_string = $out_string & " " Next For $i = 1 To $turn_arounds $start = $i $end = _Floor (StringLen($text) / $turn_arounds) * $turn_arounds If Mod(StringLen($text), $turn_arounds) >= $i Then $end = $end + $i Else $end = $end - $turn_arounds + $i EndIf If Mod($i, 2) = 1 Then ; ungerade $step = $turn_arounds Else _Swap($start, $end) $step = -$turn_arounds EndIf For $j = $start To $end Step $step Sleep($delay) $out_string = _StringInsertAtPos($out_string, $j, StringMid($text, $j, 1)) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Next Next Return 1 EndFunc ;==>_txt_eff__uncover_from_wall_to_wall ;=============================================================================== ; ; Description: Simulates a wave through the text. ; Syntax: ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow), ; Requirement(s): v3.1.1.66 (beta) or later ; ; Return Value(s): 1 - in any case ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): New in v1.6 ; ;=============================================================================== Func _txt_eff__wave($winhandle, $control_id, $text = "", $delay = 50, $effect_width = 3, $uncover_after_effect = 1, $direction = "to_right") If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) $orig_text = $text $empty_string = "" For $i = 1 To StringLen($text) + $effect_width * 2 $empty_string = $empty_string & " " Next For $i = 1 To $effect_width $text = " " & $text & " " Next If $direction = "to_right" Then $start = 1 $end = StringLen($text) + $effect_width * 2 $step = 1 Else $start = StringLen($text) + $effect_width * 2 $end = 1 $step = -1 EndIf For $i = $start To $end Step $step Sleep($delay) $out_string = _StringInsertAtPos($empty_string, $i, StringMid($text, $i, $effect_width)) $out_string = StringTrimLeft(StringTrimRight($out_string, $effect_width), $effect_width) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Next If $uncover_after_effect = 1 Then Sleep($delay) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $orig_text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) EndIf Return 1 EndFunc ;==>_txt_eff__wave ;=============================================================================== ; ; Description: Shows a customizable blink effect. ; Syntax: ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow), ; Requirement(s): v3.1.1.66 (beta) or later ; ; Return Value(s): 1 - in any other case ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): New in v1.6, possible types: "all", "periodic", "parts", advanced: "all": none, "periodic": step, "parts": array containing cutting positions ; ;=============================================================================== Func _txt_eff__blink($winhandle, $control_id, $text = "", $show_delay = 50, $hide_delay = 50, $blink_type = "all", $advanced = "", $repetitions = 1) If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) If $blink_type = "all" Then For $i = 1 To $repetitions Sleep($hide_delay) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Sleep($show_delay) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, "") If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) ElseIf $blink_type = "periodic" Then For $j = 1 To $repetitions For $i = 1 To $advanced $start = $i $end = _Floor (StringLen($text) / $advanced) * $advanced If Mod(StringLen($text), $advanced) >= $i Then $end = $end + $i Else $end = $end - $advanced + $i EndIf If Mod($i, 2) = 1 Then ; ungerade $step = $advanced Else _Swap($start, $end) $step = -$advanced EndIf $out_string = "" For $m = 1 To StringLen($text) $out_string = $out_string & " " Next For $k = $start To $end Step $step $out_string = _StringInsertAtPos($out_string, $k, StringMid($text, $k, 1)) Next Sleep($hide_delay) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Sleep($show_delay) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, "") If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Next Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) ElseIf $blink_type = "parts" Then For $j = 1 To $repetitions If IsArray($advanced) <> 1 Then $advanced = StringSplit($advanced, ".") _ArrayReverse($advanced) _ArrayPop($advanced) _ArrayReverse($advanced) EndIf For $i = -1 To UBound($advanced) - 1 $out_string = "" For $m = 1 To StringLen($text) - 1 $out_string = $out_string & " " Next If $i = -1 Then $out_string = _StringInsertAtPos($out_string, 0, StringMid($text, 1, $advanced[0])) ElseIf $i = UBound($advanced) - 1 Then $out_string = _StringInsertAtPos($out_string, $advanced[$i] + 1, StringMid($text, $advanced[$i] + 1, StringLen($text) - $advanced[$i])) Else $out_string = _StringInsertAtPos($out_string, $advanced[$i] + 1, StringMid($text, $advanced[$i] + 1, $advanced[$i + 1] - $advanced[$i])) EndIf Sleep($hide_delay) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Sleep($show_delay) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, "") If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Next Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) EndIf Return 1 EndFunc ;==>_txt_eff__blink ;=============================================================================== ; ; Description: Mixes up two chars and goes through the text. ; Syntax: ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow), ; Requirement(s): v3.1.1.66 (beta) or later ; ; Return Value(s): 1 - in any case ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): New in v1.6 ; ;=============================================================================== Func _txt_eff__mix_up_chars($winhandle, $control_id, $text = "", $delay = 50, $effect_width = 1, $direction = "to_right") If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) $orig_text = $text For $i = 1 To $effect_width $text = " " & $text & " " Next If $direction = "to_right" Then $start = 1 $end = StringLen($text) + $effect_width ; *2 $step = 1 Else $start = StringLen($text) + $effect_width $end = 1 $step = -1 EndIf For $i = $start To $end Step $step Sleep($delay) $first_char = StringMid($text, $i, 1) $second_char = StringMid($text, $i + $effect_width, 1) If _IsCap($second_char) = 1 Then $first_char_res = StringUpper($first_char) ElseIf _IsCap($second_char) = 2 Then $first_char_res = StringLower($first_char) Else $first_char_res = $first_char EndIf If _IsCap($first_char) = 1 Then $second_char_res = StringUpper($second_char) ElseIf _IsCap($first_char) = 2 Then $second_char_res = StringLower($second_char) Else $second_char_res = $second_char EndIf $out_string = _StringInsertAtPos($text, $i, $second_char_res) $out_string = _StringInsertAtPos($out_string, $i + $effect_width, $first_char_res) $out_string = StringTrimLeft(StringTrimRight($out_string, $effect_width), $effect_width) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Next If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $orig_text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Return 1 EndFunc ;==>_txt_eff__mix_up_chars ;=============================================================================== ; ; Description: Highlights some chars and goes through the text. ; Syntax: ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - The text to animate, $delay - Animation speed (1 = fast, 1000 = slow), ; Requirement(s): v3.1.1.66 (beta) or later ; ; Return Value(s): 1 - in any case ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): New in v1.6, $display_type: 0 - show only effect, 1 - show text with effect, 2 - show whole text ; ;=============================================================================== Func _txt_eff__spotlight($winhandle, $control_id, $text = "", $delay = 50, $effect_width = 1, $highlighting_start_char = "(", $highlighting_end_char = ")", $display_type = 2, $direction = "to_right") If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) $orig_text = $text If $direction = "to_right" Then $start = 1 $end = StringLen($text) $step = 1 Else $start = StringLen($text) $end = 1 $step = -1 EndIf For $i = $start To $end Step $step Sleep($delay) If $display_type = 0 Then $empty_string = "" For $j = 1 To StringLen($text) $empty_string = $empty_string & " " Next $char = StringMid($text, $i, $effect_width) $out_string = _StringInsertAtPos($empty_string, $i + $effect_width, $highlighting_end_char, 0) $out_string = _StringInsertAtPos($out_string, $i, $char) $out_string = _StringInsertAtPos($out_string, $i, $highlighting_start_char, 0) ElseIf $display_type = 1 Then $out_string = StringLeft($text, $i) $out_string = _StringInsertAtPos($out_string, $i + $effect_width, $highlighting_end_char, 0) $out_string = _StringInsertAtPos($out_string, $i, $highlighting_start_char, 0) Else $out_string = _StringInsertAtPos($text, $i + $effect_width, $highlighting_end_char, 0) $out_string = _StringInsertAtPos($out_string, $i, $highlighting_start_char, 0) EndIf If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $out_string) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Next Sleep($delay) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $orig_text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) Return 1 EndFunc ;==>_txt_eff__spotlight ;=============================================================================== ; ; Description: Shows a about box with many different effects. ; Syntax: _txt_eff__about_messages($winhandle, $control_id, $texts, [$delay, [$showtime, [$pause, [$type]]]]) ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $texts - Array containing all messages to show, $delay - Animation speed (1 = fast, 1000 = slow), $showtime - time the single message is shown (also possible: array with values correspondenting to $texts), $pause - time to wait until the next message is displayed, $type - type of the animation: "raining, "right_to_left", "left_to_right", "right_to_right", "left_to_left", "enlarge_from_left", "enlarge_from_right", "zoom_big_to_small", "zoom_small_to_big", "move_cap_char", "move_small_char", "wall_to_wall", "blink", "wave", "mix_up", "spotlight", "fade", "rainbow", "modern" ; Requirement(s): v3.1.1.66 (beta) or later ; Return Value(s): 1 - if $texts is an array ; 0 - if $texts is no array ; 2 - if $type is no valid type ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): None ; ;=============================================================================== Func _txt_eff__about_messages($winhandle, $control_id, $texts, $delay = 50, $showtime = 2000, $pause = 750, $type = "right_to_left") If IsArray($texts) <> 0 Then Local $static = _IsStatic($winhandle, $control_id) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, "") If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) If ($type = "right_to_left") or ($type = "left_to_right") or ($type = "left_to_left") or ($type = "right_to_right") Then $text_min_width = 14 For $i = 0 To UBound($texts) - 1 If StringLen($texts[$i]) > $text_min_width Then $text_min_width = StringLen($texts[$i]) Next $text_min_width = $text_min_width + 5 ElseIf $type = "modern" Then ; ------- parameters ------- Local $_l_height = 20 ; height of a single line (label) Local $_no_color = 0xECE9D8 Local $_black = 0x000000 Local $_messages = 5 Dim $_labels[$_messages] ; enlarge Arrray For $k = 1 To $_messages _ArrayInsert($texts, 0, "") _ArrayInsert($texts, UBound($texts), "") Next $_txt_eff_about_gui = GUICreate("About", 250, $_l_height + 20 + $_l_height * $_messages + 60) ; the about win's title, width and height here $_txt_eff_gui_ok_button = GUICtrlCreateButton("&Ok", 10, $_l_height + 20 + $_l_height * $_messages + 25, 230, 25, $BS_DEFPUSHBUTTON) For $k = 1 To $_messages $_style = $SS_CENTER ; styles are located here! $_labels[$k - 1] = GUICtrlCreateLabel("[Error]", 10, 50 + 25 * $k, 210, $_l_height, $_style) Next GUISetState(@SW_SHOW) For $k = 0 To UBound($texts) - $_messages GUICtrlSetColor($_labels[$_messages - 1], 0xECE9D8) For $p = 0 To $_messages - 1 GUICtrlSetPos($_labels[$p], 19, $_l_height + 20 + $_l_height * $p, 210, $_l_height) GUICtrlSetData($_labels[$p], $texts[$k + $p]) Next For $c = 0 To - $_l_height Step - 1 ; control's height is here again Sleep($delay) GUISetState(@SW_LOCK) ; move For $z = 0 To $_messages - 1 GUICtrlSetPos($_labels[$z], 19, $_l_height + 20 + $_l_height * $z + $c, 210, $_l_height) Next ; fade $red_diff = _ColorGetRed($_black) - _ColorGetRed($_no_color) $green_diff = _ColorGetGreen($_black) - _ColorGetGreen($_no_color) $blue_diff = _ColorGetBlue($_black) - _ColorGetBlue($_no_color) $red_res = Hex(_ColorGetRed($_black) + Round($red_diff / $_l_height * ($c + $_l_height + 1)), 2) $green_res = Hex(_ColorGetGreen($_black) + Round($green_diff / $_l_height * ($c + $_l_height + 1)), 2) $blue_res = Hex(_ColorGetBlue($_black) + Round($blue_diff / $_l_height * ($c + $_l_height + 1)), 2) GUICtrlSetColor($_labels[0], "0x" & $red_res & $green_res & $blue_res) $red_diff = _ColorGetRed($_no_color) - _ColorGetRed($_black) $green_diff = _ColorGetGreen($_no_color) - _ColorGetGreen($_black) $blue_diff = _ColorGetBlue($_no_color) - _ColorGetBlue($_black) $red_res = Hex(_ColorGetRed($_black) + Round($red_diff / $_l_height * ($c + $_l_height + 1)), 2) $green_res = Hex(_ColorGetGreen($_black) + Round($green_diff / $_l_height * ($c + $_l_height + 1)), 2) $blue_res = Hex(_ColorGetBlue($_black) + Round($blue_diff / $_l_height * ($c + $_l_height + 1)), 2) GUICtrlSetColor($_labels[$_messages - 1], "0x" & $red_res & $green_res & $blue_res) GUISetState(@SW_UNLOCK) ; check if close event is there $_about_msg = GUIGetMsg() If $_about_msg = $GUI_EVENT_CLOSE Or $_about_msg = $_txt_eff_gui_ok_button Then ExitLoop 2 Next Next GUIDelete($_txt_eff_about_gui) Else For $i = 0 To UBound($texts) - 1 If IsArray($showtime) = 1 Then $real_showtime = $showtime[$i] Else $real_showtime = $showtime EndIf Sleep($pause) Select Case $type = "right_to_left" _txt_eff__move_in_from_right($winhandle, $control_id, $texts[$i], $delay, $text_min_width) Sleep($real_showtime) _txt_eff__move_out_to_left($winhandle, $control_id, $texts[$i], $delay) Case $type = "left_to_right" _txt_eff__move_in_from_left($winhandle, $control_id, $texts[$i], $delay) Sleep($real_showtime) _txt_eff__move_out_to_right($winhandle, $control_id, $texts[$i], $delay, $text_min_width) Case $type = "raining" _txt_eff__raining($winhandle, $control_id, $texts[$i], $delay, Round($real_showtime / 3), 1) Sleep($real_showtime) Case $type = "right_to_right" _txt_eff__move_in_from_right($winhandle, $control_id, $texts[$i], $delay, $text_min_width) Sleep($real_showtime) _txt_eff__move_out_to_right($winhandle, $control_id, $texts[$i], $delay, $text_min_width) Case $type = "left_to_left" _txt_eff__move_in_from_left($winhandle, $control_id, $texts[$i], $delay) Sleep($real_showtime) _txt_eff__move_out_to_left($winhandle, $control_id, $texts[$i], $delay) Case $type = "enlarge_from_left" _txt_eff__enlarge_from_left($winhandle, $control_id, $texts[$i], $delay, 1) Sleep($real_showtime) Case $type = "enlarge_from_right" _txt_eff__enlarge_from_right($winhandle, $control_id, $texts[$i], $delay, 1) Sleep($real_showtime) Case $type = "zoom_big_to_small" _txt_eff__zoom($winhandle, $control_id, $texts[$i], $delay, 20, 14, 1, "Times New Roman", 0) Sleep($real_showtime) _txt_eff__zoom($winhandle, $control_id, $texts[$i], $delay, 14, 2, 2, "Times New Roman", 1) Case $type = "zoom_small_to_big" _txt_eff__zoom($winhandle, $control_id, $texts[$i], $delay, 2, 14, 2, "Times New Roman", 0) Sleep($real_showtime) _txt_eff__zoom($winhandle, $control_id, $texts[$i], $delay, 14, 20, 1, "Times New Roman", 1) Case $type = "move_cap_char" _txt_eff__move_cap_char_through_text($winhandle, $control_id, $texts[$i], $delay, 1, "to_right", 0) Sleep($real_showtime) Case $type = "move_small_char" _txt_eff__move_small_char_through_text($winhandle, $control_id, $texts[$i], $delay, 1, "to_right", 1) Sleep($real_showtime) Case $type = "wall_to_wall" _txt_eff__uncover_from_wall_to_wall($winhandle, $control_id, $texts[$i], $delay, 1) Sleep($real_showtime) Case $type = "blink" _txt_eff__blink($winhandle, $control_id, $texts[$i], $delay, 500, "all", "", 2) Sleep($real_showtime) Case $type = "wave" _txt_eff__wave($winhandle, $control_id, $texts[$i], $delay, 3, 1, "to_right") Sleep($real_showtime) Case $type = "mix_up" _txt_eff__mix_up_chars($winhandle, $control_id, $texts[$i], $delay, 1, "to_right") Sleep($real_showtime) Case $type = "spotlight" _txt_eff__spotlight($winhandle, $control_id, $texts[$i], $delay, 1, "<", ">", 2, "to_right") Sleep($real_showtime) Case $type = "fade" _txt_eff__fade_in($winhandle, $control_id, $texts[$i], 1000, 100, "win_xp_bg") Sleep($real_showtime) _txt_eff__fade_out($winhandle, $control_id, $texts[$i], 1000, 100, "win_xp_bg") Case $type = "rainbow" _txt_eff__rainbow($winhandle, $control_id, $texts[$i], $delay, Round($delay / 10), 0) Sleep($real_showtime) Case Else Return 2 EndSelect Next EndIf Return 1 Else Return 0 EndIf EndFunc ;==>_txt_eff__about_messages ; --------------------------------- ; --------------------------------- ; ----- 2. control animation ----- ; --------------------------------- ; --------------------------------- ;=============================================================================== ; ; Description: Zooms the text in the control in or out. ; Syntax: _txt_eff__zoom($winhandle, $control_id, [$text, [$delay, [$start_size, [$end_size, [$step, [$font, [$remove]]]]]]]) ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $text - the text for the animation, $delay - Animation speed (1 = fast, 1000 = slow), $start_size - font size at the begining of the effect, $end_size - font size at the end of the effect, $step - step on de-/increasing the font size, $font - font name, $remove 0: Don't remove text after effect / 1: remove text after effect ; Requirement(s): v3.1.1.66 (beta) or later ; Return Value(s): 1 - in any case ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): Minimum size should be 2. If $text is left empty, cthe current control's text will be used. Step has to be positiv in any case. ; Questions to solve: ; How to read the current font size and name of the control?? ; How to make the control resize itself to the text's width and height?? ;=============================================================================== Func _txt_eff__zoom($winhandle, $control_id, $text = "", $delay = 50, $start_size = 9, $end_size = 2, $step = 1, $font = "Courier New", $remove = 0) $start_ctrl_pos = ControlGetPos($winhandle, "", $control_id) If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) If $start_size > $end_size Then $step = - ($step) For $i = $start_size To $end_size Step $step Sleep($delay) GUICtrlSetFont($control_id, $i, -1, -1, $font) If $i = $start_size Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $text) GUISetState(@SW_UNLOCK, $winhandle) EndIf Next If $remove = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, "") GUISetState(@SW_UNLOCK, $winhandle) ControlMove($winhandle, "", $control_id, $start_ctrl_pos[0], $start_ctrl_pos[1], $start_ctrl_pos[2], $start_ctrl_pos[3]) EndIf Return 1 EndFunc ;==>_txt_eff__zoom ;=============================================================================== ; ; Description: Sets the text italic, underlined or bold. ; Syntax: ; Parameter(s): ; Requirement(s): v3.1.1.66 (beta) or later ; Return Value(s): 1 - in any case ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): types: italic, underline, bold ; Questions to solve: ; How to read out text size and so on on the func's startup? ;=============================================================================== Func _txt_eff__style($winhandle, $control_id, $text = "", $type = "bold", $font = "Courier New", $remove = 1, $show_time = 1500) If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) GUISetState(@SW_LOCK, $winhandle) If $type = "bold" Then GUICtrlSetFont($control_id, -1, 800, -1, $font) ElseIf $type = "underline" Then GUICtrlSetFont($control_id, -1, -1, 4, $font) ElseIf $type = "italic" Then GUICtrlSetFont($control_id, -1, -1, 2, $font) EndIf GUISetState(@SW_UNLOCK, $winhandle) If $remove = 1 Then Sleep($show_time) GUISetState(@SW_LOCK, $winhandle) GUICtrlSetFont($control_id, -1, 400, 0, $font) GUISetState(@SW_UNLOCK, $winhandle) EndIf Return 1 EndFunc ;==>_txt_eff__style ; --------------------------------- ; --------------------------------- ; ----- 3. colourful effects ----- ; --------------------------------- ; --------------------------------- ;=============================================================================== ; ; Description: Changes the text color in the given order and time. ; Syntax: ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $texts - Array containing all messages to show, $delay - Animation speed (1 = fast, 1000 = slow) ; Requirement(s): v3.1.1.66 (beta) or later ; Return Value(s): 1 - in any case ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): $colors can be either an array or a string ; Question: Can this be used in "foreign" windows too? ; Look into the current help file to see, which controls are supported ;=============================================================================== Func _txt_eff__color_sequence($winhandle, $control_id, $text = "", $delay = 50, $colors = "black.green.blue. 0xffffff") If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) If IsArray($colors) <> 1 Then $colors = StringStripWS($colors, 8) ; delete all spaces $colors = StringSplit($colors, ".") ; kill first element _ArrayReverse($colors) _ArrayPop($colors) _ArrayReverse($colors) EndIf For $i = 0 To UBound($colors) - 1 Sleep($delay) $color = $colors[$i] If StringIsXDigit($color) = 0 Then $color = _GetColorByName($color) GUICtrlSetColor($control_id, $color) Next Return 1 EndFunc ;==>_txt_eff__color_sequence ;=============================================================================== ; ; Description: Changes the text color in the order of the rainbow. ; Syntax: ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $texts - Array containing all messages to show, $delay - Animation speed (1 = fast, 1000 = slow) ; Requirement(s): v3.1.1.66 (beta) or later ; Return Value(s): 1 - in any case ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): $colors can be either an array or a string ; Look into the current help file to see, which controls are supported ;=============================================================================== Func _txt_eff__rainbow($winhandle, $control_id, $text = "", $duration_per_change = 2000, $precision = 50, $direction = 0) If $direction = 0 Then _txt_eff__color_to_color($winhandle, $control_id, $text, $duration_per_change, "black.red.orange.yellow.green.blue.violet.black", $precision) Else _txt_eff__color_to_color($winhandle, $control_id, $text, $duration_per_change, "black.violet.blue.green.yellow.orange.red.black", $precision) EndIf EndFunc ;==>_txt_eff__rainbow ;=============================================================================== ; ; Description: Permorms a fade from one color to another. ; Syntax: ; Parameter(s): $winhandle - Handle of the target window, $control_id - ID of the target control, $texts - Array containing all messages to show, $delay - Animation speed (1 = fast, 1000 = slow) ; Requirement(s): v3.1.1.66 (beta) or later ; Return Value(s): 1 - in any case ; Author(s): peethebee <peter_opali@gmx.de> ; Note(s): Look into the current help file to see, which controls are supported ;=============================================================================== Func _txt_eff__color_to_color($winhandle, $control_id, $text = "", $duration_per_change = 2000, $colors = "black. white", $precision = 100) If $text = "" Then $text = ControlGetText($winhandle, "", $control_id) Local $static = _IsStatic($winhandle, $control_id) If IsArray($colors) <> 1 Then $colors = StringStripWS($colors, 8) ; delete all spaces $colors = StringSplit($colors, ".") ; kill first element _ArrayReverse($colors) _ArrayPop($colors) _ArrayReverse($colors) EndIf For $i = 0 To UBound($colors) - 2 If StringIsXDigit($colors[$i]) = 0 Then $start_color = _GetColorByName($colors[$i]) Else $start_color = $colors[$i] EndIf If StringIsXDigit($colors[$i + 1]) = 0 Then $end_color = _GetColorByName($colors[$i + 1]) Else $end_color = $colors[$i + 1] EndIf For $j = 1 To $precision Sleep(Round($duration_per_change / $precision)) $red_diff = _ColorGetRed($end_color) - _ColorGetRed($start_color) $green_diff = _ColorGetGreen($end_color) - _ColorGetGreen($start_color) $blue_diff = _ColorGetBlue($end_color) - _ColorGetBlue($start_color) $red_res = Hex(_ColorGetRed($start_color) + Round($red_diff / $precision * $j), 2) $green_res = Hex(_ColorGetGreen($start_color) + Round($green_diff / $precision * $j), 2) $blue_res = Hex(_ColorGetBlue($start_color) + Round($blue_diff / $precision * $j), 2) GUICtrlSetColor($control_id, "0x" & $red_res & $green_res & $blue_res) If $j = 1 And $i = 0 Then If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, $text) If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) EndIf Next Next Return 1 EndFunc ;==>_txt_eff__color_to_color ; Fades a text out (black to $color) Func _txt_eff__fade_out($winhandle, $control_id, $text = "", $duration = 2500, $precision = 100, $color = "white") _txt_eff__color_to_color($winhandle, $control_id, $text, $duration, "black. " & $color, $precision) Local $static = _IsStatic($winhandle, $control_id) If $static = 1 Then GUISetState(@SW_LOCK, $winhandle) ControlSetText($winhandle, "", $control_id, "") If $static = 1 Then GUISetState(@SW_UNLOCK, $winhandle) EndFunc ;==>_txt_eff__fade_out ; Fades a text out ($color to black) ; ; How to get the background color of an control? ; How to calculate a harmonious color (for background)? ; Func _txt_eff__fade_in($winhandle, $control_id, $text = "", $duration = 2500, $precision = 100, $color = "white") _txt_eff__color_to_color($winhandle, $control_id, $text, $duration, $color & ". black", $precision) EndFunc ;==>_txt_eff__fade_in ; --------------------------------- ; --------------------------------- ; ----- 4. helping functions ----- ; --------------------------------- ; --------------------------------- Func _StringInsertAtPos($string, $pos, $insert, $overwrite = 1) If $overwrite = 0 Then Return StringLeft($string, $pos - 1) & $insert & StringTrimLeft($string, $pos - 1) Else Return StringLeft($string, $pos - 1) & $insert & StringTrimLeft($string, $pos - 1 + StringLen($insert)) EndIf EndFunc ;==>_StringInsertAtPos ; Source: Help file Func _Swap(ByRef $a, ByRef $b) ;swaps two vars Local $t $t = $a $a = $b $b = $t EndFunc ;==>_Swap Func _IsCap($char) If Asc($char) < 90 And Asc($char) > 65 Then Return 1 ElseIf Asc($char) < 122 And Asc($char) > 97 Then Return 2 Else Return 0 EndIf EndFunc ;==>_IsCap ; Created with help of XDrop 0.17 Func _GetColorByName($name) Select Case $name = "black" Return "0x000000" Case $name = "white" Return "0xffffff" Case $name = "red" Return "0xff0000" Case $name = "blue" Return "0x0000ff" Case $name = "green" Return "0x00ff00" Case $name = "yellow" Return "0xffff00" Case $name = "violet" Return "0xAE7BE1" Case $name = "win_xp_bg" Return "0xECE9D8" EndSelect EndFunc ;==>_GetColorByName Func _IsStatic($winhandle, $control_id) Local $ret = DllCall("user32.dll", "int", "GetClassName", "hwnd", ControlGetHandle($winhandle, "", $control_id), "str", "", "int", 128) If StringInStr($ret[2], "Static") <> 0 Then Return 1 Return 0 EndFunc ;==>_IsStatic Mega Scripts & functions Organize Includes Let Scite organize the include files Yahtzee The game "Yahtzee" (Kniffel, DiceLion) LoginWrapper Secure scripts by adding a query (authentication) _RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...) Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc. MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times Link to comment Share on other sites More sharing options...
demandnothing Posted October 20, 2009 Share Posted October 20, 2009 (edited) GREAT WORK!! Edited October 21, 2009 by demandnothing Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now