-
K-1000 © (15.10.17 19:33) [0]В Edit выводит кракозябры, видно дело в кодировке.
Меняю на SendMessageW() тот же результат.
String менял на WideString выводит иероглифы.
В чём может быть дело?
var
Text: String;
begin
Text := 'Test Text';
WinApi.Windows.SendMessageA(Form1.Edit1.Handle,WM_SETTEXT,0, Integer(PChar(@Text)));
Среда: Delphi XE Seattle -
rrrrrr © (15.10.17 19:50) [1]В чём может быть дело?
в том, что ты не не знаешь как устроена строка и что такое строковая переменная -
Integer(PChar(@Text[1]))
Integer(PChar(Text))
Integer(@Text[1])
Integer(Text) -
Rouse_ © (16.10.17 19:57) [3]
> sniknik © (15.10.17 23:23) [2]
на 64 битах приятно будешь удивлен :) -
K-1000 © (17.10.17 12:48) [4]Вопрос решён, но частично.
> Rouse_ © (16.10.17 19:57) [3]
>
> > sniknik © (15.10.17 23:23) [2]
>
> на 64 битах приятно будешь удивлен :)
>
>
Этот код работает на 32 битах.
На 64 бит, не выводит ничего в Edit.
Что не так?
procedure SendSetText(H: HWND; const Text: String);
begin
SendMessage(H, WM_SETTEXT, 0, LPARAM(PChar(Text)));
end; -
Nativeuint(Text) насколько понимаю, нет к сожалению 64 дельфи, не на чем проверить.
-
rrrrrrr © (17.10.17 13:24) [6]все там работает и в 32 и в 64.
у чувака один бит в винде просто отломался и она 63-битная.