Конференция "Начинающим" » SendMessage(). Не выводит текст.
 
  • 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]
    В чём может быть дело?

    в том, что ты не не знаешь как устроена строка и что такое строковая переменная
  • sniknik © (15.10.17 23:23) [2]
    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;

  • sniknik © (17.10.17 12:58) [5]
    Nativeuint(Text) насколько понимаю, нет к сожалению 64 дельфи, не на чем проверить.
  • rrrrrrr © (17.10.17 13:24) [6]
    все там работает и в 32 и в 64.

    у чувака один бит в винде просто отломался и она 63-битная.
 
Конференция "Начинающим" » SendMessage(). Не выводит текст.
Есть новые Нет новых   [118654   +11][b:0][p:0.001]