Как я должен передавать отрицательные значения в SendMessage и Perform, когда они ожидают NativeUInt? - PullRequest
6 голосов
/ 19 февраля 2012

Предположим, у вас есть такой код:

Result.X := ACustomMemo.Perform(EM_LINEFROMCHAR, -1, 0); 

Windows API утверждает, что "-1" является допустимым значением, которое заставляет его возвращать активную строку.

Однако Delphi имеетэто определяется как NaiveUInt и жалуется, если я пытаюсь передать -1.

Какое самое чистое решение для этого?Кастинг

1 Ответ

15 голосов
/ 19 февраля 2012

Преобразование значения -1 в WPARAM является правильным способом обработки этого случая.

 Result.X := ACustomMemo.Perform(EM_LINEFROMCHAR, WPARAM(-1), LPARAM(0));

btw, определение delphi NativeUint для типа WPARAM является правильным, поскольку это 32-разрядный без знака на x86и 64-разрядные без знака на x64.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...