Information
Apparently when you minimize
a ROBLOX game client on an OS of windows 7 or earlier
, it also interferes with the size of all scaled
GUIs in-game (windows 8-10, on the other hand, does not). This means if you have a frame with the dimensions of {1,0} , {1,0}
in size, when you minimize your game, it will be scaled down to nothing (i.e, having an AbsoluteSize of 0,0).
The problem
I have a chat system, where I rely on this section of code to get the space between the speaker label, and the message label:
-- And no, I'm not adding a wait(). That would take forever for messages to send. while Label2.TextBounds.X < Label1.TextBounds.X do AppendText(Label2,' '); -- Adds a space to the text of Label2 end;
Every time a chat message is received by a player, this code must execute to find the length between the speaker label, and the message label so it can have a multi-line text effect (As seen here: http://prntscr.com/a9q72d)
There's no problem with this method when in-game. The PROBLEM is when you minimize
your game client (on an OS of win7 or earlier), and for example, someone says something in chat while
your game is minimized.
At this point, the while
loop is just going to crash your client
, because the scaled chat frame is now set to an AbsoluteSize
of 0,0
(thanks to the windows OS 7- method of minimizing your screen), and it screws up the TextBounds
property of the text labels.
Solution?
I know this was an odd question, but if anyone has a solution to this, or even an alternative method, I'd really appreciate it.
Well, that's an interesting problem. TextBounds is sometimes finicky with ROBLOX. You could add a check for dimensions of 0, and handle it explicitly, or you could try increasing the size of all your GUIs by 1 (offset) in each dimension, to ensure there is always some size. I'm not entirely certain how either of these would work.
Another option would be to make a table of the width of every character and calculate it yourself without relying on TextBounds, but that would be a real pain.
Who told you that using a win7 os or earlier would crash the game using a > while loop...
Let's be honest here: I still use windows 7 (even if win8.1 and win10 are out) and no matter how many times I minimize my screen the game still runs in the background. So what you're saying is that for windows 7, the game crashes due to a while true loop while the client's game is minimized...
Honestly that is a first that I heard that considering how much I make things with GUIs.
I know you said I'm not adding a wait() but really... it won't take forever for messages to send. Not unless you're doing wait(10). Just use "wait()"