| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Медленная работа StringEdit
			 
			
			Привет всем. 
		
		
		
		
		
		
		
	Недавно обнаружил что StringEdit - очень медленный контрол. Пример Есть табличка лог и форма с закладками На 2-й закладке EditControl по memo полю в котором лежит текст примерно на 11 мегабайт. При попытке переключиться на 2-ю закладку все виснет. про загружен на 100%. Пробовал экспериментировать подсовывая тексты разной длины Число символов 5000. 46 миллисекунд на отображение. Число символов 32 тысячи. 343 миллисекунд на отображение. Число символов 256 тысяч. 5 672 миллисекунд на отображение. Число символов 512 тысяч. 9 781 миллисекунд на отображение. Число символов 1024 тысяч. 38 673 миллисекунд на отображение. Можно ли как-то ускорить ? Если текст выгрузить джобом в текстовый файл и открыть NotePad-ом то 11 мегабайт отображаются быстро.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Напрашивающееся решение 
		
		
		
		
		
		
			Отображать в контроле первые XXX символов, а если надо все, то по отдельной кнопке. Или в новую форму или подгрузить в это же окно. Кстати, можно по кнопке в блокноте открыть ![]() Можно попробовать использовать Reach Text Box или HTML, но не уверен, что это будет быстрее. Не работал с такими объемными текстами... 
				__________________ 
		
		
		
		
	- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря...  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			с одной стороны, даже завидно становится таким неординарным задачам, в которых в StringEdit отображается мемо на 11 мегабайт 
		
		
		
		
		
		
		
	а с другой, создается впечатление, что вы Аксапту используете для того, для чего она не очень предназначена  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Да это обычный лог. 
		
		
		
		
		
		
		
	Но в него часто смотрят и при этом на некоторых записях клиент зависал.  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Да, так и сделали. Если текст длинный, то контрол скрываем, но по кнопке открываем блокнот или по другой кнопке копируем в буфер обмена.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А хранить лог в виде таблицы (одна строка лога - одна запись таблицы) и отображать эту таблицу в Grid?
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря...  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Pandasama (2). | |
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Там обычная табличка. Есть 2 поля Parameters str 1000 FullParameters Memo Оба содержат одно и то же. На гриде отображается Parameters (значение может быть усеченным из-за ограниченной длины поля в БД) На 2-й закладке отображается полный текст FullParameters Соответственно, все работает но для некоторых записей при переключении на 2-ю закладку все виснет.  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			FullParameters Memo 
		
		
		
		
		
		
			Содержимое этого поля - это строки. Вот и хранить каждую строку текста в отдельной записи. Вряд ли одна строка будет длиннее 1000 символов. Порезать текст по символам перевода строки и возврата каретки 13+10. Каждый кусок - отдельная запись таблицы 
				__________________ 
		
		
		
		
	- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря...  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
 | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
|
| За это сообщение автора поблагодарили: Pandasama (2). | |
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
С формой работает аналитик или программист. Там обобщенный лог. 99% записей не имеют там никаких base64  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А чем вариант открывать по кнопке блокнот не устраивает? Ускорить мне кажется не получится. Редакторы, которые работают быстро, скорее всего, текст динамически подгружают, а stringEdit грузит сразу все. Разве что какой-нибудь ActiveX прикрутить
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
stringEdit похоже пытается переносить по строкам и делает это медленно в отличие от того же notePad Если в свойствах контрола включить multiline - да, то зависает сразу без переключения на закладку с контролом, сразу после того как на строке встанешь.  | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Так, может, попробовать для его отображения объект "HTML Document"? Ну, то, что в форме \Forms\tutorial_Form_Controls на последней закладке. 
		
		
		
		
		
		
			Или перед отображением вырезать Base64, если его можно по тегам определить. Хотя, вырезание из 11 МБ тоже долго будет выполняться  
		
				__________________ 
		
		
		
		
	- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря...  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Logger (1). | |