Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2011, 21:48   #1
BuT@JL
Форумчанин
 
Регистрация: 27.11.2008
Сообщений: 137
По умолчанию SendMessage вместо текста передает иероглефы

Всем привет, у меня тут возникла проблема, SendMessage вместо текста передает иероглефы. Например если использую код вот такой

SendMessage(Hand, MY_MESSAGE, 0, DWORD(PChar('Привет')));

то текст доходит нормально, а если передаю paramstr

SendMessage(Hand, MY_MESSAGE, 0, DWORD(PChar(Paramstr(1))));

то приходят иероглефы. Кто знает как справится с этой проблемой помогите пожалуста.
BuT@JL вне форума Ответить с цитированием
Старый 01.03.2011, 21:56   #2
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Код:
var
  cmd : string;
  i : Integer;

begin
  // Перед выполнением этого кода, используйте опцию меню Run/parameters
  // для установки следующих параметров командной строки: -parm1 -parm2

  // Показ этих параметров - обратите внимание, что 0-ой параметр это
  // выполняемая команда в Windows
  for i := 0 to ParamCount do
    ShowMessage('Параметр '+IntToStr(i)+' = '+ParamStr(i));
end;
Параметр 0 = C:\PROGRAM FILES\BORLAND\DELPHI7\PROJECTS\PROJ ECT1.EXE
Параметр 1 = -parm1
Параметр 2 = -parm2
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 01.03.2011, 22:06   #3
BuT@JL
Форумчанин
 
Регистрация: 27.11.2008
Сообщений: 137
По умолчанию

ArtGrek да это я знал. проблема то в другом
BuT@JL вне форума Ответить с цитированием
Старый 01.03.2011, 22:08   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

попробуйте PAnsiChar использовать.
(во втором случае сначало к ANSIString надо приводить, потом к PAnsiChar)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.03.2011, 22:18   #5
BuT@JL
Форумчанин
 
Регистрация: 27.11.2008
Сообщений: 137
По умолчанию

Пепел Феникса не вышло, тоже самое получается
BuT@JL вне форума Ответить с цитированием
Старый 01.03.2011, 22:54   #6
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

a
LongInt(PChar(Paramstr(1))));
?
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 02.03.2011, 08:36   #7
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Цитата:
Сообщение от BuT@JL Посмотреть сообщение
SendMessage(Hand, MY_MESSAGE, 0, DWORD(PChar(Paramstr(1))));
А параметр точно есть?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 02.03.2011, 08:48   #8
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Код:
SendMessage(Hand, MY_MESSAGE, 0,LParam(PChar(Paramstr(1))));
или
Код:
SendMessage(Hand,WM_SETTEXT, 0,LParam(PChar(Paramstr(1))));
SERG1980 вне форума Ответить с цитированием
Старый 02.03.2011, 08:50   #9
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Покажи обработчик MY_MESSAGE и пример "иероглифов". И как ты опознал, что там "иероглифы".

...и кому принадлежит окно Hand - тебе или нет. И если тебе, то не второму ли экземпляру.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.

Последний раз редактировалось Stilet; 02.03.2011 в 09:02.
GunSmoker вне форума Ответить с цитированием
Старый 02.03.2011, 14:43   #10
BuT@JL
Форумчанин
 
Регистрация: 27.11.2008
Сообщений: 137
По умолчанию

ArtGrek так тоже не получается

veniside точно

SERG1980 SendMessage(Hand, MY_MESSAGE, 0,LParam(PChar(Paramstr(1)))); Приходит с иероглефами

а SendMessage(Hand,WM_SETTEXT, 0,LParam(PChar(Paramstr(1)))); Приходит нормально только почему то записывается в заголовок программы

GunSmoker он у меня записан в как константа

const
MY_MESSAGE = WM_USER + 4242;
BuT@JL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
мемо. вместо текста цифры maloun C++ Builder 5 02.02.2011 17:51
Вместо русского текста на сайте отображаются непонятные значки khorolpavel HTML и CSS 4 20.11.2010 15:10
В делфи 2010 в консольном приложении вместо русского текста абра-кадабра Rusl92 Помощь студентам 4 26.04.2010 18:42
компонент возвращяет йероглифы вместо текста( delphi ) dyonysos Общие вопросы Delphi 0 05.02.2010 21:06
ссылка вместо текста!!! Abbatik Помощь студентам 7 09.02.2008 13:29