Jump to content
Sign in to follow this  
monte

scroll label

Recommended Posts

monte

hello, I've searched around for a while a have not found an answer to my problem (and I'm too stupid at the moment to find it myself). So, I need to continuously scroll a label and maybe wait about 3 seconds between scrolls. Also, the text that I want to scroll ($currentConditions) is overwriting my label ($condLabel) specifying that there is text to scroll. Any ideas? Thanks.

#include <GUIConstantsEx.au3>

$currentConditions = "Snow this morning will become heavy at times this afternoon. Some sleet may mix in. High 31F. Winds E at 10 to 20 mph. 6 to 10 inches of snow expected."

global $conditionSize = 600
global $conditionText = 600

$gui = GUICreate("", 333, 709, 686, 1)
$condLabel = GUICtrlCreateLabel("Conditions: ", 2, 25, 60, 15)
$conditions = GUICtrlCreateLabel($currentConditions, 70, 25, 500, 15)

GUISetState(@SW_SHOW)
AdlibEnable('_MoveMarquee', 15)

While 1
;scroll conditions label  
  AdlibEnable('_MoveMarquee', 15)
  $guiMsg = GUIGetMsg()
  Switch $guiMsg
    Case $GUI_EVENT_CLOSE
      Exit
  EndSwitch

  sleep(1000)
WEnd


Func _MoveMarquee()
    Local $aCpos = ControlGetPos($gui, '', $conditions)
    If $aCpos[0] >= $conditionSize Then $aCpos[0] = -$conditionText
    ControlMove($gui, '', $conditions, $aCpos[0] -1, $aCpos[1])
EndFunc
Edited by monte

Share this post


Link to post
Share on other sites
Melba23

monte,

This is the basis of the code I use for permanently scrolling labels. It should not be too hard to amend it to work as you wish:

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>

; create parent GUI
$ParentGUI = GUICreate("Parent", 450, 250, -1, -1, $WS_BORDER)
$Close = GUICtrlCreateButton("Close", 350, 35, 60, 40)
GUISetState(@SW_SHOW, $ParentGUI)

; Set size parameters
$scroller_win_width = 175  ; just wide enought to hold label
$scroller_win_depth = 85  ; Anything you like, but close to label depth looks good
$scroller_label_depth = 80 ; This is the depth needed to display the label without big margins

; Create child GUI
$ChildGUI = GUICreate("Scroller", $scroller_win_width, $scroller_win_depth, -1, -1, $WS_POPUP, $WS_EX_MDICHILD, $ParentGUI)
GUISetBkColor(0xffff00); just for testing
; Create label to scroll
$ScrollingLabel = GUICtrlCreateLabel("This is a test of a" & @CR & _
                                "scroller label." & @CR & "Inspired by:" & @CR & "something I found on the" & @CR & _
                                "AutoIt forums and significantly" & @CR & "modified!", _
                                1, $scroller_win_depth, $scroller_win_width - 2, $scroller_label_depth, $SS_RIGHT)

; Place in position below window
$winpos = WinGetPos($ParentGUI, "")
WinMove($ChildGUI, "", $winpos[0]+260, $winpos[1]+125)

; Set transparancy to permit draggging withour artefacts
WinSetTrans($ChildGUI, "", 250)

GUISetState(@SW_SHOW, $ChildGUI)

While 1
    For $i = $scroller_win_depth To -$scroller_label_depth Step -1
    ; Nedd to look for this within loop
        $msg = GUIGetMsg()
        If $msg = $Close Then
            GUIDelete($ParentGUI)
            Exit
        EndIf
        ControlMove($ChildGUI, "", $ScrollingLabel, 1, $i)
        Sleep(50) ; Needed despite GUIGetMsg to slow the scroll!
    Next
WEnd

Try playing with it and ask if you have any difficulties. I will come back about the overwriting problem when I have looked more closely.

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites
Melba23

monte,

The marquee label is being moved over the static label as it moves. If you use the separate child window idea that I posted earlier, you should be able to keep your label separate.

I assume you want to do other things while you scroll, so your Adlib function will have to replace my For...Next loop - not too difficult a task. ;-)

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites
monte

thanks melba23 I'll give it a whirl.

Share this post


Link to post
Share on other sites
monte

found my answer else where, thanks.

#include <GUIConstantsEx.au3>

$currentConditions = "Snow this morning will become heavy at times this afternoon. Some sleet may mix in. High 31F. Winds E at 10 to 20 mph. 6 to 10 inches of snow expected."

$gui = GUICreate("", 333, 750, 686, 1)
$conditions = GUICtrlCreateLabel($currentConditions, 70, 25, 750, 15)

GUISetState(@SW_SHOW)
While 1
 ;scroll conditions label
    scrollconditions()

  $guiMsg = GUIGetMsg()
  Switch $guiMsg
    Case $GUI_EVENT_CLOSE
      Exit
  EndSwitch

  sleep(1000)
WEnd


func scrollConditions()
  While 1
    For $x = 100 to -600 step -2
       ControlMove ($gui,"",$conditions, $x, 25)
       Sleep(30)
    Next
    exitloop
  WEnd
endfunc

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×