|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Notepad++, Scintilla, SendMessages и Delphi Здравствуйте, у меня проблемы с управлением Scintillой в n++ через сообщения. Использую delphi. Получаю handle скинтиллы через FindWindow и FindWindowEx. Пытаюсь передать строку для замены так: Код: str:='qwerty'#0; sendmessage(hwndScintilla,2170,0, lparam(pchar(str)) ); 2170 - это SCI_REPLACESEL. Я не подключаю заголовочные файлы, поэтому использую просто числа вместо констант. Но вместо переданной строки встаёт вот это: https://yadi.sk/i/-Vp5G2gdTIngLA Причём при каждом перезапуске n++ и моей программы "это" всегда разное. А сообщения, возвращающие числа, работают нормально: Код: sendmessage(hwndScintilla,2143,0,0 ) Как мне передать строку для замены в Scintilla? Документация отсюда: https://www.scintilla.org/ScintillaD...SCI_REPLACESEL Константы тут: http://freesourcecode.net/cprojects/...de/Scintilla.h | 
| 
			 
			#2  
			
			
			
			
		 | |||
| 
 | |||
|   Почитай вот тут: https://www.tek-tips.com/viewthread.cfm?qid=1181059 | 
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
|  
romserg (21.09.2019)
 | ||
| 
			 
			#3  
			
			
			
			
		 | |||
| 
 | |||
|   lmikle, спасибо, действительно, про адресные пространства я не подумал. Правда, WM_COPYDATA вряд ли подойдёт, т.к. scintilla не сможет её обработать, я теперь копаю в сторону VirtualAllocEx. | 
| 
			 
			#4  
			
			
			
			
		 | |||
| 
 | |||
|   Собственно, я и хотел указать на это. Кстати, посмотри, может все-таки нужно именно COPYDATA, просто в hParam передавать нужное сообщение, а в lParam - адрес строки. | 
| 
			 
			#5  
			
			
			
			
		 | |||
| 
 | |||
|   lmikle, увы...  Пришлось передавать по одному символу с помощью WM_CHAR (в VirtualAllocEx копаться не захотел). |