Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Вниз

Как преобразовать параметр сообщения 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.047 c
14-1083226422
BiN
2004-04-29 12:13
2004.05.23
У нас в Москве машины с лентами


14-1083303159
blackman
2004-04-30 09:32
2004.05.23
Что с усовершенствованием FAQ ? Усовершенствовали что-ли уже ?


3-1083245604
opoloxai
2004-04-29 17:33
2004.05.23
Сравнивание 2-х *.xls фалов


6-1081180609
OSokin
2004-04-05 19:56
2004.05.23
WinPopup


6-1080822035
BJValentine
2004-04-01 16:20
2004.05.23
Сокеты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский