4 posts in this topic
_GDIPlus and Buttons gone after minimize restore
i have a code that creates buttons and graphics in the same block. before the block is _GDIPlus_Startup()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($mainGUI) $hBrush = _GDIPlus_BrushCreateSolid(0xF03FC744) ; Felish Green colour $hPen = _GDIPlus_PenCreate(0xFFBFCC49); Granite colour $hPath = _GDIPlus_PathCreate() ;Create new path object $hFamily = _GDIPlus_FontFamilyCreate("Tahoma") ;Create font family object $tLayout = _GDIPlus_RectFCreate($startX, $startY, $bHeigh, $bWidth) ;Create string bounding rectangle X=0, Y=0 $hFormat = _GDIPlus_StringFormatCreate(0x0400); Allow overhanging rectangle _GDIPlus_StringFormatSetAlign($hFormat, 1); Align text horizontally _GDIPlus_StringFormatSetLineAlign($hFormat, 1) ; Align text Vertically ; Add String like CtrlLabels assign to rectangle and formats including Font _ _GDIPlus_PathAddString($hPath, FileReadLine($configF, $SN), $tLayout, $hFamily, 0, 26, $hFormat) _GDIPlus_GraphicsSetSmoothingMode($hGraphic, $GDIP_SMOOTHINGMODE_HIGHQUALITY) ;Sets the graphics object rendering quality (antialiasing) _GDIPlus_GraphicsFillPath($hGraphic, $hPath, $hBrush) ; Fill path to graphics handle (GUI) end of the block
_GDIPlus_BrushDispose($hBrush) _GDIPlus_FontFamilyDispose($hFamily) _GDIPlus_StringFormatDispose($hFormat) _GDIPlus_PenDispose($hPen) _GDIPlus_GraphicsDispose($hGraphic) _GDIPlus_Shutdown() now this works on the first run but when i minimize and then restore _GDIPlus_ is gone and so are buttons. but if i create labels they stay.
i've tried moving "Dispose" functions at the end of the loop but still the same result
Problems with arrays
In my current project I have a part that should convert from string to array, and later on that array should be converted to a string again.
The first part works just fine and I get the array just as I want it, but on the way back I'm encountering some issues...
Func Encode($data0) ; works just fine, just here for clarification. ; That if-statement in the middle is just there that I'm always getting a string with 5 symbols ; $data0 = "A" in this example Local $data1 = "" Local $tmp = "" Local $arr = StringSplit($data0, "", 2) For $i = 0 To UBound($arr)-1 $tmp = AscW($arr[$i]) If $tmp = 0 Then $tmp = "00000" & $tmp ElseIf $tmp > 0 And $tmp < 10 Then $tmp = "0000" & $tmp ElseIf $tmp >= 10 And $tmp < 100 Then $tmp = "000" & $tmp ElseIf $tmp >= 100 And $tmp < 1000 Then $tmp = "00" & $tmp ElseIf $tmp >= 1000 And $tmp < 10000 Then $tmp = "0" & $tmp ElseIf $tmp >= 10000 And $tmp <= 65535 Then $tmp = $tmp EndIf $data1 = $data1 & $tmp Next Return $data1 EndFunc Func Decode($data0) ; does NOT work ; $data0 = "00065" ; via MsgBox and ConsoleWrite I could find out that it fails already before StringSplit ; when it fails, no message is given and everything just disappears Local $data1 = "" Local $tmp = "" Local $arr = StringSplit(String($data0), "", 2) For $i = 0 To UBound($arr)-1 Step 5 $tmp = $arr[$i] & $arr[$i+1] & $arr[$i+2] & $arr[$i+3] & $arr[$i+4] & $arr[$i+5] $tmp = ChrW($tmp) $data1 = $data1 & $tmp Next Return $data1 EndFunc Sorry for dropping all the #include, the GUI, the login screen, etc... It's not necessary for this problem and I needn't give you a 613kB file full of plain text for finding an error in 3 lines of code.
I found out that $arr is always empty, so there must be an issue with StringSplit. I suspected "00065" might be seen as an integer and converted it to a string, but that doesn't make it work. I already played around quite a while with that issue now, I hope some of you can finally relieve me.
Problem with FileCopy()
I'm writing a small program for creating a backup. I want to do that by using FileCopy. Everything from drive C should be copied to drive D.
FileCopy("C:", "D:", $FC_OVERWRITE + $FC_CREATEPATH) That doesn't do anything, though. I played a bit with the paths, but nothing does what I want. Sometimes only the folder of the program itself is copied, sometimes nothing is copied.
What am I doing wrong? What do I have to do that everything from C goes to D? Thanks!
Edit: DirCopy does pretty much the same
BIG String to Array
I am getting the "RawData" return from FastFind's "FFGetRawData" function and then attempting to make it into an array.
What I have here does the job as it should but it is a slow process. I feel I may be overlooking a more effecient way to handle this matter. In the end ( in an ideal situation ) I'd like to end up with a 2D array with 580 col and 375 rows. Currently it's just a 1D array as I am still trying to get my head around how to make it into a 2D. BUT... My question is this ...
Is there a better way to handle what I am trying to do?
Func trimmer () Local $i = 0 ;The "Counter" Local $WorkAreaLength = StringLen ($WorkAreaData) ;Get the length of the string ConsoleWrite ("WorkAreaLegnth="&$WorkAreaLength&@CR) Local $iWorkAreaLengthCount = $WorkAreaLength / 8 ;How many segments of 8 can we make? Use this for the counter later on ConsoleWrite ("WorkArealengthCount="&$iWorkAreaLengthCount&@CR) Local $sPiece = 0 ; The string segment holder Global $aWorkArea ; The array to write to Do $sPiece = StringLeft ($WorkAreaData, 8) ; Grab the first 8 characters and put them into $sPiece _ArrayAdd ($aWorkArea, $sPiece) ; Put what $sPiece is into the array StringTrimLeft ($WorkAreaData, 8) ;Trim off the first 8 characters that were just copied $i = $i + 1 ;Count up 1 ConsoleWrite ($i&@CR) Until $i >= $iWorkAreaLengthCount ; Keep going until $i >= $iWorkAreaLengthCount ConsoleWrite ("Done"&@CR) Local $sFile = FileOpen ("main.txt");Open the text file _FileWriteFromArray ($sFile , $aWorkArea);Write the array to the text file FileClose ($sFile); Close the text file EndFunc
A little secondary problem, that isn't throwing any errors to speak of, is the file is never written to. It remains blank even though it is in the same directory as the script and the script isn't responding with any errors. This isn't my main focus though as it just lets me see what the array is rather than using the console which can be a little cramped at times.
Any advise would be appreciated, thank you!
How to add/refresh a text after clicking a button ?
Hey AI3 community ! I'm wondering how to do this :
When I click a button on a GUI made (with koda), add a text somewhere in the GUI (most likely under the button) like, an "ok!" to say that no error happened <- If you can help on this too, I don't know how to check if any error occured after a Case, i know @error exist but I can't find how it works !
And, I don't want an other GUI to appear, I want to do everyting in the same While Loop.
Thanks to any helpers, hugs and kisses to your beautiful face