Jump to content

Pipe (symbol: |) in second line of a label cutting itself in half automatically


Recommended Posts

Hello, I am using this code:

#include "StringSize.au3"

StatusIndicator("Test" & @CRLF & "|", 15)

Func StatusIndicator($sStatus, $sSize = 8.5, $hParent = 0)
    $aDimensions = _StringSize($sStatus, $sSize)
    $aDimensions[2] *= 1.05 ; Increase the width a tad
    $hGUI = GUICreate("", 50 + $aDimensions[2], 50 + $aDimensions[3], -1, -1, $WS_POPUP + $WS_BORDER + $DS_SETFOREGROUND, -1, $hParent)
    GUISetBkColor(0xFFFFFF)
    GUICtrlCreateLabel($sStatus, ((50 +$aDimensions[2]) - $aDimensions[2]) / 2, ((50 +$aDimensions[3]) - $aDimensions[3]) / 2, $aDimensions[2], $aDimensions[3], 0x01)
    GUICtrlSetFont(-1, $sSize)
    GUISetState()
    Return $hGUI
EndFunc ; This function requires StringSize UDF!!! Get it from here: http://www.autoitscript.com/forum/topic/114034-stringsize-m23-new-version-16-aug-11/

The result:

Capture2.thumb.PNG.ed0679725a98357845005

Also, when I change the second string to "|Test":

Capture2.thumb.PNG.10603fbb248950d68cd26

 

Why is this happening? Thanks in Advance, TD :)

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
Share on other sites

  • Moderators

TheDcoder,

Do you actually READ the replies in the threads you start? As was explained in this post from you last thread on this very same subject, you need to define the font name in both the Stringsize and the GUICtrlSetFont calls to ensure you get the correct sizing. The UDF does its best to determine the default system font, but it does not always get succeed, so best to make sure of it yourself:

#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include "StringSize.au3"

HotKeySet("{ESC}", "_Exit")

$sFont = "Arial" ; Change this as reqired <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

StatusIndicator("Test" & @CRLF & "|", 15)

While 1
    Sleep(10)
WEnd

Func StatusIndicator($sStatus, $sSize = 8.5, $hParent = 0)
    $aDimensions = _StringSize($sStatus, $sSize, Default, Default, $sFont)
    $aDimensions[2] *= 1.05 ; Increase the width a tad
    $hGUI = GUICreate("", 50 + $aDimensions[2], 50 + $aDimensions[3], -1, -1, $WS_POPUP + $WS_BORDER + $DS_SETFOREGROUND, -1, $hParent)
    GUISetBkColor(0xFFFFFF)
    GUICtrlCreateLabel($sStatus, ((50 +$aDimensions[2]) - $aDimensions[2]) / 2, ((50 +$aDimensions[3]) - $aDimensions[3]) / 2, $aDimensions[2], $aDimensions[3], $SS_CENTER)
    GUICtrlSetFont(-1, $sSize, Default, Default, $sFont)
    GUISetState()
    Return $hGUI
EndFunc

Func _Exit()
    Exit
EndFunc

And I see you are still using "magic numbers" - as I have said before, this is not a good habit to get into, so I have replaced them in the above code.

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see 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

 

Link to comment
Share on other sites

On the subject of magic numbers, 0xFFFFF >> $COLOR_WHITE

Edited by guinness

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

The UDF does its best to determine the default system font, but it does not always get succeed, so best to make sure of it yourself

​I already tired that, but I wanted to use the default system font :(

And I see you are still using "magic numbers" - as I have said before, this is not a good habit to get into, so I have replaced them in the above code.

​I used them to save memory (RAM) as I don't release the source of this project, I use predefined variables in my other projects :)

On the subject of magic numbers, 0xFFFFF >> $COLOR_WHITE

​Oh :o, ISN AutoIt Studio's color picker generated that for me, Thanks :)

EasyCodeIt - A cross-platform AutoIt implementation - Fund the development! (GitHub will double your donations for a limited time)

DcodingTheWeb Forum - Follow for updates and Join for discussion

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...