Перейти к содержимому


Фотография

Передача параметра класса в триггер


Лучший Ответ vlad333000 , 09 July 2019 - 18:12

// Конфиг поля для редактирования
onLoad = "params [""_ctrl""]; uiNamespace setVariable [""MyVar"", _ctrl];";
onUnLoad = "params [""_ctrl""]; uiNamespace setVariable [""MyVar"", nil];";

// Конфиг кнопки
action = "params [""_ctrl""]; private _text = ctrlText (uiNamespace getVariable [""MyVar"", """"]); <Остальной код действия, _text - содержимое поля для ввода>";
Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 OFFLINE   h8_yo

h8_yo

    Рядовой

  • Пользователи
  • 9 сообщений
  • Откуда:Kyiv

Отправлено 09 July 2019 - 17:55

Здравствейте, мучаюсь уже не первый день над простой задачей.

 

У меня есть диалог с кнопкой и текстовым полем.

При нажатии на кнопку информация с текстового поля должна передаваться в триггер. Я могу передать просто какое-то число, но как получить доступ к полю text элемента Edit я не понимаю.
Вот код диалога:

class MyFirstDialog			
{
idd=-1;						
movingenable=false;			
enableSimulation = 1;		
	class MyEdit
		{
			
			 idc = -1;
			type = 2;
			style = "16 + 512"; 
			
			font = "PuristaMedium";
			sizeEx = 0.06;
			autocomplete = "";
			canModify = true; 
			maxChars = 10; 
			forceDrawCaret = false;
			colorSelection[] = {0,0.0,0.3,1};
			colorText[] = {0.6,0.6,1,1};
			colorDisabled[] = {1,0,0,1}; 
			colorBackground[] = {0,0,0,0.9}; 
			text = "";
		};
	class controls {
		class TopEdit : MyEdit 
		{
			x = 0.5;
			y = 0;
			h = 0.1;
			w = 0.2;
		};

		class RscButton
		{
	    
	  		access = 0;				
			idc = -1;				
			type = CT_BUTTON;		
			text = "BUTTON";		

	    	font = GUI_FONT_BOLD;	
	    	sizeEx = 0.05;			
	    	borderSize = 0;	
                ////	
	        //НИЖЕ КАК ПОЛУЧИТЬ ВМЕСТО 123123 текст с элемента TopEdit?

		action = "GlobalVariables setVariable ['CODE',123123, true]; closeDialog 1;" ;	
		};		
	};	

};	

Как вместо 123123 в строке действия получить элемент TopEdit.text?

 

Очень надеюсь на помощь :acute:


Сообщение отредактировал h8_yo: 09 July 2019 - 17:58

  • 0

#2 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 09 July 2019 - 18:12   Лучший Ответ

// Конфиг поля для редактирования
onLoad = "params [""_ctrl""]; uiNamespace setVariable [""MyVar"", _ctrl];";
onUnLoad = "params [""_ctrl""]; uiNamespace setVariable [""MyVar"", nil];";

// Конфиг кнопки
action = "params [""_ctrl""]; private _text = ctrlText (uiNamespace getVariable [""MyVar"", """"]); <Остальной код действия, _text - содержимое поля для ввода>";

Сообщение отредактировал vlad333000: 09 July 2019 - 18:14

  • 1

#3 OFFLINE   h8_yo

h8_yo

    Рядовой

  • Пользователи
  • 9 сообщений
  • Откуда:Kyiv

Отправлено 09 July 2019 - 18:20

// Конфиг поля для редактирования
onLoad = "params [""_ctrl""]; uiNamespace setVariable [""MyVar"", _ctrl];";
onUnLoad = "params [""_ctrl""]; uiNamespace setVariable [""MyVar"", nil];";

// Конфиг кнопки
action = "params [""_ctrl""]; private _text = ctrlText (uiNamespace getVariable [""MyVar"", """"]); <Остальной код действия, _text - содержимое поля для ввода>";

При написании такого кода в action:

action = "params [""_ctrl""]; private _text = uiNamespace getVariable ""MyVar""; GlobalVariables setVariable ['CODE', _text, true]; closeDialog 1;";

Пишет ошибку на _text. Почему он ее не видит?


  • 0

#4 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 09 July 2019 - 18:28

h8_yo, во-первых, какую ошибку?
во-вторых, вы возможно скопировали "старый" вариант кода, я внес критическо важные изменения в него почти сразу после написания сообщения, но вы могли "взять" его до этого, поэтому скопируйте сейчас

Сообщение отредактировал vlad333000: 09 July 2019 - 18:28

  • 0

#5 OFFLINE   h8_yo

h8_yo

    Рядовой

  • Пользователи
  • 9 сообщений
  • Откуда:Kyiv

Отправлено 09 July 2019 - 18:36

h8_yo, во-первых, какую ошибку?
во-вторых, вы возможно скопировали "старый" вариант кода, я внес критическо важные изменения в него почти сразу после написания сообщения, но вы могли "взять" его до этого, поэтому скопируйте сейчас

Вы правы, я действительно скопировал код до того как вы его исправили) 
Спасибо большое, все работает :)


  • 0




Яндекс.Метрика