Jump to content
Sign in to follow this  
bobbintb

help with $iStyle

Recommended Posts

bobbintb

im trying to display an array in a gui. first i used a label to do it like this:

$Labelx = GUICtrlCreateLabel($ipconfig, 352, 16, 249, 550)

but i think it will be better in a readonly edit so it can scroll. the problem is i dont know how to do multiple $iStyle settings. i need the default setting plus readonly. also when i use the edit it display all element in the array in one long line whereas the label displays it properly by putting each element on the next line. this is what i have for the edit control:

$iptext=_GUICtrlEdit_Create($Form1_1,"",350, 16, 385, 550)
_GUICtrlEdit_SetText($iptext,StringReplace($ipconfig,"   ",@CRLF))

oh, and i know about _arraydisplay but thats not what im trying to accomplish.

Edited by bobbintb

Share this post


Link to post
Share on other sites
Melba23

bobbintb,

To combine styles, use BitOR. Although using simple addition can often work, BitOR is the only guaranteed way. However, be warned that using any specific styles will overwrite the default values, so you need to add the required ones back in:

GUICtrlCreateEdit("text", left, top, width, height) 
; gives default styles $ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL

GUICtrlCreateEdit("text", left, top, width, height, $ES_READONLY)
; gives read-only, but none of the normal default styles

GUICtrlCreateEdit("text", left, top, width, height, BitOR($ES_READONLY, $ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL)
; gives read-only and all the default styles

As to entering the data, I presume you are using a loop to enter the array elements, so it is fairly simple to add a @CRLF after each element to get a newline.

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
bobbintb

bobbintb,

To combine styles, use BitOR. Although using simple addition can often work, BitOR is the only guaranteed way. However, be warned that using any specific styles will overwrite the default values, so you need to add the required ones back in:

GUICtrlCreateEdit("text", left, top, width, height) 
; gives default styles $ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL

GUICtrlCreateEdit("text", left, top, width, height, $ES_READONLY)
; gives read-only, but none of the normal default styles

GUICtrlCreateEdit("text", left, top, width, height, BitOR($ES_READONLY, $ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL)
; gives read-only and all the default styles

As to entering the data, I presume you are using a loop to enter the array elements, so it is fairly simple to add a @CRLF after each element to get a newline.

M23

i did figure out the addition but i like the bitor better. thanks. the other thing is i did use a loop to enter the array elements followed by a @crlf as such:

$ipconfig = ($ipconfig & StringReplace(_ArrayToString($new_test), "|", "") & @CRLF & @CRLF)

and when i display it as a label it shows fine but when i display it in an edit it just has one long line.

Share this post


Link to post
Share on other sites
Melba23

bobbintb,

You need to add the @CRLF after each element, so use @CRLF as your delimiter for _ArrayToString:

#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#Include <Array.au3>

Global $aArray[5] = ["fred", "tom", "dick", "harry", "bob"]

$hGUI = GUICreate("Test", 500, 500)

$hEdit = GUICtrlCreateEdit("", 10, 10, 300, 300, $ES_READONLY)

GUISetState()

$sEdit_Text = _ArrayToString($aArray, @CRLF)
GUICtrlSetData($hEdit, $sEdit_Text)

While 1

    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch

WEnd

In your case I would imagine it is going to be:

$ipconfig = $ipconfig & _ArrayToString($new_test, @CRLF)

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
bobbintb

ah! light bulb! :) now i understand. thanks. somedays i just cant understand the code i wrote the week before.

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  

×