Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

Как преобразовать параметр сообщения WM_SETTEXT в строку?   Найти похожие ветки 

 
Islander   (2004-05-05 12:56) [0]

Здравствуйте!

Посылаю свой одной форме текст

IntRes:=SendMessage(Handle,WM_SETTEXT ,0,LongInt(PChar(S)));

Как мне его у формы-получателя преобразовать в строку?


 
Семен Сорокин ©   (2004-05-05 12:58) [1]

StrPas + F1


 
Digitman ©   (2004-05-05 13:01) [2]


> Посылаю свой одной форме текст


надо понимать, "свой одной форме" = "одной своей форме" ?
и это путешествие в соседний чум через Москву чем-то оправдано ?


 
Islander   (2004-05-05 14:17) [3]

Да, это разные копии одного и того же моего приложения. Запускается вторая копия, я передаю первой параметры командной строки и выгружаю вторую


 
Digitman ©   (2004-05-05 14:29) [4]


> передаю первой параметры командной строки


т.е. вот эта бодяга с WM_SETTEXT каким-то боком связана с передачей параметров ком.строки запуска ?!


 
Islander   (2004-05-05 14:33) [5]

Ну грубо говоря, я делаю

S:=ParamStr (1);

SendMessage(FirstCopyFormHandle,WM_USER, MyConstant, LongInt(PChar(S)));

Где MyConstant спец. число, которое обозначает, что я передаю строку


 
Skier ©   (2004-05-05 14:34) [6]

>Islander   (05.05.04 14:17) [3]
"В огороде бузина, а в Киеве дядька"


 
oleg_art   (2004-05-05 14:38) [7]

To Islander:

procedure TControl.DefaultHandler(var Message);
var
 P: PChar;
begin
 with TMessage(Message) do
   case Msg of
     WM_GETTEXT:
       begin
         if FText <> nil then P := FText else P := "";
         Result := StrLen(StrLCopy(PChar(LParam), P, WParam - 1));
       end;
     WM_GETTEXTLENGTH:
       if FText = nil then Result := 0 else Result := StrLen(FText);
     WM_SETTEXT:
       begin
         P := StrNew(PChar(LParam));
         StrDispose(FText);
         FText := P;
         SendDockNotification(Msg, WParam, LParam);
       end;
   end;
end;
Вот тебе реал-ция в TControl.


 
Digitman ©   (2004-05-05 14:40) [8]


> Skier ©   (05.05.04 14:34) [6]


согласен


 
Skier ©   (2004-05-05 14:46) [9]

>Islander   (05.05.04 14:33) [5]
Попробуй объяснить более внятно, что нужно сделать...
...если нужен обмен данными между приложениями, то вполне можно использовать стандартное сообщение WM_COPYDATE,...если нужно запускать только одну копию приложения, то ответ ищи в FAQ на этом сайте и не только на этом, по этой теме ну очень много написано...


 
Islander   (2004-05-05 14:53) [10]

2Skier

Надо передать строку из одного приложения в другое. Сейчас как раз разбираюсь с WM_COPYDATE


 
Digitman ©   (2004-05-05 14:58) [11]


> Надо передать строку из одного приложения в другое


передать при старте оного ? на то есть ком.строка запуска


 
Skier ©   (2004-05-05 14:59) [12]

>Islander   (05.05.04 14:53) [10]

> Сейчас как раз разбираюсь с WM_COPYDATE

только правильно WM_COPYDATA (я ошибся...)


 
Islander   (2004-05-05 15:41) [13]

Кстати, появилась другая проблема. Почему-то у меня получается отправить сообщение WM_COPYDATA из своего окна своему же, вот из другой копии не получается. Хендл у меня точно верен, т.к. сообщение WM_USER доходит до другой копии, а вот WM_COPYDATA нет. Т.е. я ставлю брейку в обработчик этого сообщения и видно, что прога туда не заходит. Может быть, тут есть какие-нибудь подводные камни?


 
Семен Сорокин ©   (2004-05-05 15:45) [14]

Islander   (05.05.04 15:41) [13]
может ты путаешь Application.Handle и MainForm.Handle?


 
Islander   (2004-05-05 15:46) [15]

Нет, точно не путаю, я же говорию, WM_USER проходит.



Страницы: 1 вся ветка

Текущий архив: 2004.05.23;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.069 c
1-1084118003
Aaa
2004-05-09 19:53
2004.05.23
Реализация TImage а заданной формы?


3-1083072776
Slon_SCG
2004-04-27 17:32
2004.05.23
Автоматическое восстановление БД InterBase после сбоя


7-1081867216
nv_
2004-04-13 18:40
2004.05.23
ESC последовательности


3-1083074531
AlexBalex
2004-04-27 18:02
2004.05.23
Обновление указанной записи с помощью resync


1-1083749914
Alkmas
2004-05-05 13:38
2004.05.23
Создание TButton из DLL