| 
	 | 
| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Как получить выделенный текст из StringEdit
			 
			
			У элемента управления StringEdit есть метод getSelection, который возвращает индексы начального и конечного символа выделенного текста. Сначала сделал так: 
		
		
		
		
		
		
		
	X++: int p, n;
[p,n] = memo.getSelection();
info(substr(memo.text(),p+1, n-p));Пришлось извратиться следующим образом: X++: int p, n, c1,c2; [p,n] = memo.getSelection(); c1 = charcount(substr(memo.text(),1,p),'\n'); c2 = charcount(substr(memo.text(),p,n-p),'\n'); info(substr(memo.text(),p+1-c1, n-p-c2)); X++: int charcount(str s, str c) { return strlen(strkeep(s,c)); } Подозреваю что, либо такой способ есть, так как от индексов, которые возвращает getSelection, в чистом виде пользы мало, либо это баг.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Как вариант - использовать TextBuffer - его substr считает переводы строки
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
X++: TextBuffer tb = new TextBuffer(); int p, n; ; [p,n] = memo.getSelection(); tb.setText(memo.text()); info(tb.subStr(p+1,n-p));  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Хе. Все понятно. Надо получать значение из StringEdit не методом text, а методом valuestr. Тогда и простой substr считает как надо (по-крайней мере у меня) 
		
		
		
		
		
		
		
		
			Разница становится заметна в таком примере: X++: info(StringEdit.text()); info(StringEdit.valueStr()); Последний раз редактировалось altap; 05.08.2008 в 17:36.  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Разница - в том, что text не выводит символ возврата каретки (13)
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Lucky13 (2). | |
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Люди, ХЕЛП!!! УМИРАЮ! 
		
		
		
		
		
		
		
	Три часа над одной строчкой парюсь! Мне нужно в стринг едит записать что-либо при AutoDeclaration == No! Пытался так element.design().control(control::имя едита).valueStr('текст') но ругается! Помогите плз!  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
X++: FormRun formA; FormStringControl fcString; fcString = formA.design().controlName('myControlName'); fcString.pasteText('myStringValue', false);  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Попробуйте так 
		
		
		
		
		
		
			
		
		
		
		
	X++: FormStringControl ctrl;
;
ctrl = element.control(Control::controlName);
ctrl.text("value"); | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Подскажите плиз.  
		
		
		
		
		
		
		
	нужно к свойствам поля на форме попасть, делаю через element.design().controlName('Payment').allowedit(false); но он лочит закладку а не поле. так как есть закладка с таким названием. автодекларейшн у всех NO.  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 MCTS 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			там есть page  , group , и поле. и у всех одинаковое имя "Payment". 
		
		
		
		
		
		
		
	мне нужно поле. может я неправильно пытаюсь обратиться к нему?  | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
X++: FormRun formRun; FormTabPageControl fcTabPage; FormGroupControl fcGroup; FormStringControl fcString; fcTabPage = formRun.design().controlName('Payment'); fcGroup = fcTabPage.controlNum(2); // допустим, группа - 2-й контрол на вкладке fcString = fcGroup.controlNum(3); // допустим, стрингэдит - 3-й контрол в группе fcString.pasteText('My String Value for Payment', false);  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: propeller (1). | |
| 
			
			 | 
		#16 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Мне кажется - неправильно, что они одинаково называются... На мой взгляд правильнее было-бы назвать из PaymentPage, PaymentGroup и Payment соответственно. 
		
		
		
		
		
		
		
	Это Ваша форма? Если, да - то проще переименовать, если нет, то - что за форма?  | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			да , уже переименовал . спасибо  
		
		
		
		
		
		
		
	 
		 | 
| 
	
 | 
| Теги | 
| stringedit, выделенный текст, ax3.0, ax4.0 | 
| 
	
	 | 
	
		
  |