Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

wm_SetText


Страницы:   1 2

Shluz ©   (2003-07-02 12:24:00) 


Panel:=FindWindow("Shell_TrayWnd", nil);
Tray:=FindWindowEx(panel,0,"TrayNotifyWnd","");
Clock:=FindWindowex(tray,0,"TrayClockWClass",nil);
text:="text"#0;
sendmessage(clock,wm_settext,0,cardinal(text));

вообщем- то адресат сообщение получает, но текст контрола не меняется..почему??


Ученик   (2003-07-07 19:53:00) [1]

>default © (07.07.03 19:41)
А почему он обязан визуально меняться, обновление и SetText не обязывают.


default   (2003-07-07 19:41:00) [2]

Ученик © (07.07.03 19:29)
тогда объясни мне почему он визуально не меняется, хотя реальное обновление время идёт каждую секунду
смени системное время и увидишь что некоторое время часы будут идти по "старому" времени


Ученик   (2003-07-07 19:29:00) [3]

>default © (07.07.03 00:11)
Это значит, что Spy++ показывает в Window Caption для Clock установленный текст, что и подтверждает
if GetWindowText(Clock, szText, 255) > 0 then
( StrPas(szText)

>default © (07.07.03 00:11)
Это значит, что Spy++ показывает в Window Caption для Clock установленный текст, что и подтверждает
if GetWindowText(Clock, szText, 255) > 0 then
ShowMessage(StrPas(szText))


default   (2003-07-07 18:02:00) [4]

Игорь Шевченко © (07.07.03 17:25)
ты точно сообщения "часов" смотрел???
у меня каждую секунду идут два сообщения
WM_TIMER потом сразу за ним WM_SETTEXT и польз-ие иногда "проскакивают"


Игорь Шевченко   (2003-07-07 17:25:00) [5]

Пришлось запустить WinSight - два сообщения WM_TIMER за перекур :) И все...

NT 4 SP6



default   (2003-07-07 16:25:00) [6]

Игорь Шевченко © (07.07.03 09:49)
WinSight показывает несколько другую картину
посмотрите


Игорь Шевченко   (2003-07-07 09:49:00) [7]

Ну вот Spy++ и показывает, что WM_SETTEXT не посылается :) WM_TIMER приходит, контрол меняет сове содержимое, приходит время WM_PAINT - он это содержимое рисует...


default   (2003-07-07 00:11:00) [8]

Ученик © (06.07.03 23:50)
что значит "Текст контрола меняется" тогда бы он и визуально менялся, так как считывание текущего времени идёт через каждую секунду(примерно) хотя там есть механизмы считывания времени если по каким-либо причинам WM_TIMER не пришло


default   (2003-07-07 00:07:00) [9]

Morfein © (06.07.03 20:11)
да знаю я это всё...
можно и @text[1] передавать без всяких приведений


Ученик   (2003-07-06 23:50:00) [10]

>Shluz © (02.07.03 12:24)
Текст контрола меняется и это показывает Spy++, только отрисовывается контрол по текущему времени.


Morfein   (2003-07-06 20:11:00) [11]

>> default
Если ты не в курсе, переменная типа string не является указателем на массив байтов, которые как-бы хранятся в этой переменной после присвоения test:="text"#0;

В SendMessage(clock, wm_settext, 0, cardinal(text)); функция будет расматривать text как адрес, а по этому адресу совершенно не текст лежит... Поэтому и должно быть использовано преведение типов - pchar(text).


default   (2003-07-06 16:16:00) [12]

Morfein © (06.07.03 11:15)
это здесь не имеет смысла
хотя конечно если она описана как AnsiString ноль добавлять в конец бессмысленно, потому что он там уже есть для совместимости со строками типа PChar
ты наверно хотел об этом сказать


Morfein   (2003-07-06 11:15:00) [13]

думается мне, что переменная text описана как string... да?


default   (2003-07-05 00:01:00) [14]

кстати "время часов" на что нужно будет менять?
если своё время выставлять(отличное от системного), то это можно организовать


default   (2003-07-04 22:46:00) [15]

Shluz © (04.07.03 20:35)
самое интересно что в WinSight32 при посылке тобой WM_SETTEXT часам - текст ИЗМЕНЯЕТСЯ, но визуально остаётся прежним
когда WM_SETTEXT уже не твоё отправляется меняется и значение в WinSight32 и визуально !? может "часы" "левое значение" на WM_GETTEXT - возвращают?!точнее то которое хочет "поставить" чужая программа, хотя видно что при посылке WM_SETTEXT (не тобой)
никаких специально флагов о том что это сообщение послано откуда-то извне нет!?


Shluz   (2003-07-04 20:35:00) [16]

каждую минуту посылается!!!! глупый спор!!! :((


Игорь Шевченко   (2003-07-04 19:37:00) [17]

Shluz © (04.07.03 19:08)

Никто этому окну не посылает WM_SETTEXT


Shluz   (2003-07-04 19:08:00) [18]

>Игорь Шевченко шпион SPY++ (MicroSoft) отслеживает все сообщения окна...ну аналог WinSight32 в комплекте Delphi (только интересней)


Игорь Шевченко   (2003-07-04 14:56:00) [19]

Shluz © (04.07.03 12:34)

Откуда сведения ?


Shluz   (2003-07-04 12:34:00) [20]

говорю же адрест сообщение получает!!! wm_paint тут не причем...
тест времени устанавливается именно WM_SETTEXT


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо