Sign in to follow this  
Followers 0
Cyclops

GUICtrlCreatePic & GUICtrlSetPic

6 posts in this topic

#1 ·  Posted (edited)

Hi,

i'm using a script with a pic as background created by GUICtrlCreatePic and it his working fine, but later, i want to change the image with GUICtrlSetPic! The pic is shown, but it isn't resized...(showing a part of the pic and not the whole small thing...) What did i wrong?

here is my code

Dim $dir = "D:\Docs\Pics\2005\02.01.2005"
$search = FileFindFirstFile($dir & "\*.jpg")
$piclist = FileOpen (@TempDir & "\pic.txt",2)    
$i = 0
While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    FileWriteLine ($piclist,$dir & "\" & $file)
    If $file = "." Then $i =$i-1
    If $file = ".." Then $i =$i-1        
    If @error Then ExitLoop
    $i=$i+1    
WEnd
FileClose ($piclist)

$piclist = FileOpen (@TempDir & "\pic.txt",0) 
   
#include <GuiConstants.au3>
GuiCreate("SlideShow", 666, 525,-1,-1,$WS_SYSMENU)
$pic = GuiCtrlCreatePic(FileReadLine ($piclist), 10, 10,640,480)
GuiSetState()
Slide()
While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend
Exit
Func Slide ()
    $m = 1
    Do
    GUICtrlSetimage($pic,FileReadLine ($piclist,$m))
    $m = $m + 1
    Sleep (1000)
    Until $i = $m
    Slide ()
EndFunc

thanks a lot

Edited by Cyclops

Sorry for my cruel english :D

Share this post


Link to post
Share on other sites



To change the image you need to call GUICtrlSetImage not to recreate the control with GUICtrlCreatePic. GUICtrlSetPic does not exist

I hope that help :(

Share this post


Link to post
Share on other sites

Sorry, wrong code and wrong topic title!

The code is now correct. After creating the pic with >> GuiCtrlCreatePic(FileReadLine ($piclist), 10, 10,640,480)<< i want to change the pic with >>GUICtrlSetimage($pic,FileReadLine ($piclist,$m))<<! It's working, but there is only a part of the pic shown...


Sorry for my cruel english :D

Share this post


Link to post
Share on other sites

Ehm, when hiding and sowing the window again the pic ist resized... is that a mistake in autoit? or bad code?


Sorry for my cruel english :D

Share this post


Link to post
Share on other sites

Sorry, wrong code and wrong topic title!

The code is now correct. After creating the pic with >> GuiCtrlCreatePic(FileReadLine ($piclist), 10, 10,640,480)<< i want to change the pic with >>GUICtrlSetimage($pic,FileReadLine ($piclist,$m))<<! It's working, but there is only a part of the pic shown...

<{POST_SNAPBACK}>

You need to have enough room to display your picture the size is defined by the GuiCtrlCreatePic :(

Share this post


Link to post
Share on other sites

#6 ·  Posted (edited)

you mean that the pics size is to big, or that the pic area created by GuiCtrlCreatePic is to small?

I worked on the script and here is it again, but i have still the problem....

Dim $dir = "D:\Docs\Pics\2005\02.01.2005"
$search = FileFindFirstFile($dir & "\*.jpg")
$piclist = FileOpen (@TempDir & "\pic.txt",2)   
$i = 0
While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    FileWriteLine ($piclist,$dir & "\" & $file)
    If $file = "." Then $i =$i-1
    If $file = ".." Then $i =$i-1       
    If @error Then ExitLoop
    $i=$i+1 
WEnd
FileClose ($piclist)
$piclist = FileOpen (@TempDir & "\pic.txt",0)   
#include <GuiConstants.au3>
If Not IsDeclared('WS_CLIPSIBLINGS') Then Global $WS_CLIPSIBLINGS = 0x04000000
GuiCreate("SlideShow", 1024, 768,-1,-1,$WS_POPUPWINDOW)
$pic = GuiCtrlCreatePic(FileReadLine ($piclist), 0, 0,1024,768)
GuiSetState()
Slide()
While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend
Exit
Func Slide ()
    $m = 1
    Do
    GUICtrlSetimage($pic,FileReadLine ($piclist,$m))
    GUISetState (@SW_Hide,$pic)
    GUISetState (@SW_SHOW,$pic) 
    $m = $m + 1
    Until $i = $m
    Slide ()
EndFunc

When i delete this lines

GUISetState (@SW_Hide,$pic)
    GUISetState (@SW_SHOW,$pic)
The pic isn't shownright.... :( Edited by Cyclops

Sorry for my cruel english :D

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  
Followers 0