Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[34.204.181.19] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте, у меня проблемы с управлением 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 ) 2143 - это SCI_GETSELECTIONSTART. Как мне передать строку для замены в Scintilla? Документация отсюда: https://www.scintilla.org/ScintillaDoc.html#SCI_REPLACESEL Константы тут: http://freesourcecode.net/cprojects/106750...ode/Scintilla.h |
Сообщ.
#2
,
|
|
|
Кодировка строк в Дельфи и том, что сцинтилла ожидает, совпадают (Юникод/анси/утф8)?
|
Сообщ.
#3
,
|
|
|
Вот у людей проблема один-в-один обсуждается.
https://www.autohotkey.com/boards/viewtopic...style=7&t=62646 Корни ситуации ИМХО в том, что SCI_REPLACESEL передаёт адрес в пространстве вызывающего процесса, а у вызываемого процесса по тому же адресу лежит совсем иные данные. Т.е. номер квартиры тот же, но вот дом и город - другие. Само собой дверь открывают непонятные люди. |
Сообщ.
#4
,
|
|
|
Мда, проектировка уровень Бог...
|
Сообщ.
#5
,
|
|
|