Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

SendMessage(). Не выводит текст.


K-1000 ©   (15.10.17 19:33

В 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-битная.


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо