ctrlCreate – Talk

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - " <!-- (DIS)?CONTINUE Notes -->" to "")
m (Text replacement - "<code>" to "<code style="display: block">")
Line 2: Line 2:
'''However''', interestingly, you can set a "MouseButtonDown" event through code ([[ctrlSetEventHandler]] or [[ctrlAddEventHandler]]) and ''disable'' the control ([[ctrlEnable]]), preventing the MouseButtonUp event from firing, but giving the appearance <br>
'''However''', interestingly, you can set a "MouseButtonDown" event through code ([[ctrlSetEventHandler]] or [[ctrlAddEventHandler]]) and ''disable'' the control ([[ctrlEnable]]), preventing the MouseButtonUp event from firing, but giving the appearance <br>
of being clicked.<br>
of being clicked.<br>
<code>_ctrl = ([[findDisplay]] 12345) [[ctrlCreate]] ["RscButtonMenu", 2];
<code style="display: block">_ctrl = ([[findDisplay]] 12345) [[ctrlCreate]] ["RscButtonMenu", 2];
_ctrl [[ctrlSetText]] "Button";
_ctrl [[ctrlSetText]] "Button";
_ctrl [[ctrlSetEventHandler]] ["MouseButtonDown", "(_this select 0) [[ctrlEnable]] false"];</code><br>
_ctrl [[ctrlSetEventHandler]] ["MouseButtonDown", "(_this select 0) [[ctrlEnable]] false"];</code><br>

Revision as of 12:53, 11 January 2023

I have found that the button closes after an "OnMouseButtonUp" event, however ctrlRemoveAllEventHandlers does not work in removing it, and ctrlRemoveEventHandler cannot be used due to not knowing the id# for the event.
However, interestingly, you can set a "MouseButtonDown" event through code (ctrlSetEventHandler or ctrlAddEventHandler) and disable the control (ctrlEnable), preventing the MouseButtonUp event from firing, but giving the appearance
of being clicked.
_ctrl = (findDisplay 12345) ctrlCreate ["RscButtonMenu", 2]; _ctrl ctrlSetText "Button"; _ctrl ctrlSetEventHandler ["MouseButtonDown", "(_this select 0) ctrlEnable false"];
Also, if the control is being created in a display that is not the active display, it will not be shown.
One more edit before I have to leave because this is really funny, while testing the above statement, I was creating controls on various displays, and I created one on the main menu which did not show up until leaving the editor. -DreadedEntity (talk) 22:12, 6 February 2016 (CET)

The display is closed because the button has IDC set to 2, which is reserved by engine. 1 is used by OK buttons and 2 by Cancel buttons. If you use any other number, the display won't be closed. ++Str (talk) 09:01, 9 February 2016 (CET)

Historic notes

Posted on December 30, 2015 - 01:48 (UTC)
Molaron
"RscListBox" created via ctrlCreate is buggy, you can only select the first seven items.

Fixed sometime in 1.67 Killzone Kid (talk) 19:25, 1 March 2017 (CET)