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

Вниз

SendMessage   Найти похожие ветки 

 
OldMBr ©   (2012-06-25 10:33) [0]

Уважаемые коллеги!
По идее SendMessage должна работать как экстренные сообщения.
И она у меня работает так, но только с типом сообщения WM_SETTEXT,
причем только для окна формы. У компонента Edit тоже есть HANDLE, но
в его поле TEXT информация вовремя не попадает, если идет какой-либо вычислительный процесс. Вот пример процедуры:

procedure Tfm_mess.Label1Click(Sender: TObject);
Var i,j:Integer; txt:String;
begin
For i := 1 to 5 Do
Begin
 Str(i,txt);
 SendMessage(fm_mess.Handle,WM_SETTEXT,0,DWORD(PChar(txt)));
 SendMessage(fm_mess.Edit1.Handle,WM_SETTEXT,0,DWORD(PChar(txt)));
 For j := 1 to MaxInt Do
 Begin
 End; // j.
End; // i.
Label2.Caption := "Программа завершена";
end;

На форме fm_mess две метки и один Edit. В заголовке fm_mess исправно отображается номер внешнего цикла по i, а в Edit.Text – нет.
Где еще можно оперативно отслеживать нужную информацию?
Заранее благодарен.


 
MsGuns ©   (2012-06-25 10:42) [1]

>По идее SendMessage должна работать как экстренные сообщения.

Это неправильная идея


 
Inovet ©   (2012-06-25 10:54) [2]

> [0] OldMBr ©   (25.06.12 10:33)
> информация вовремя не попадает, если идет какой-либо вычислительный
> процесс

ProcessMessages()


 
Inovet ©   (2012-06-25 10:56) [3]

Да, а почему напрямую нельзя в едитах менять текст?


 
Palladin ©   (2012-06-25 11:05) [4]


> По идее SendMessage должна работать как экстренные сообщения.

Это не то что бы неправильная идея, это другая идея, к реализации механизма оконных сообщений Windows отношения не имеющая


 
QAZ   (2012-06-25 11:46) [5]

Edit1.Perform(WM_SETTEXT,0,DWORD(PChar(txt)));


 
Cobalt ©   (2012-06-25 15:21) [6]

> Где еще можно оперативно отслеживать нужную информацию?
OutputDebugStringW


 
OldMBr ©   (2012-06-25 16:31) [7]

Уважаемые коллеги! Форса у вас хватает. По существу — ничего полезного. Был задан вполне конкретный вопрос с листингом – где конкретный ответ с листингом, или, по крайней мере, с указаниями, что изменить, добавить, удалить? Напрашивается вопрос об уровне моих экспертов... "Неправильная идея" – а которая правильная? Я практик. Пока программа не растранслируется без ошибок и не произведет требуемые действия – все советы по "расширению кругозора" несущественны.
   Напишите (если вообще можете) листинг, где ОТРАЖАЕТСЯ номер переменной внешнего цикла в Edit.Text с помощью WM_SETTEXT, проверьте, работает ли это НА САМОМ ДЕЛЕ, А потом уже советуйте мне развивать свой кругозор. Кстати, моя первая программа на Algolе датируется 1970-м годом, но снобизма у меня нет, хоть и работал на таких ЭВМ, что многим и не снились. Это так, к слову пришлось.


 
OldMBr ©   (2012-06-25 16:45) [8]

P.S. Скорее всего, я долго ещё буду думать, прежде чем задать вопрос нашим "мастерам".
            Вот анекдот к слову (старый, но содержательный):
Едет по Москве таксист-дагестанец. Красный свет, скорость – 90, проскакивает. Пассажир:"Ты что делаешь?!!" — "Пусть видят, настоящий джигит едет"!
Вдруг на зелёный свет "джигит" – по тормозам. "А сейчас что?" – "Видишь..." (в это время на красный свет проносится авто на скорости 120 км/час),—
                   "Паымаешь, ещё больший джигит едет..."
       ПАНЫМАЮ, что я при всём своём отставании часто "еще больший джигит", а реноме мне поддерживать незачем, мне 66 лет, и то, что я знаю, я знаю, а чего не знаю – скажу прямо, в отличие от некоторых... мм... джигитов!


 
Ega23 ©   (2012-06-25 16:54) [9]


> Уважаемые коллеги! Форса у вас хватает. По существу — ничего
> полезного. Был задан вполне конкретный вопрос с листингом
> – где конкретный ответ с листингом, или, по крайней мере,
>  с указаниями, что изменить, добавить, удалить? Напрашивается
> вопрос об уровне моих экспертов... "Неправильная идея" –
> а которая правильная? Я практик. Пока программа не растранслируется
> без ошибок и не произведет требуемые действия – все советы
> по "расширению кругозора" несущественны.


Вам всё ответили уже.
ProcessMessages + F1, коль скоро вы в основном потоке приложения свой цикл организовали.


 
Давайте будем жрать!   (2012-06-25 17:54) [10]

111: у меня комп глючит, что делать???

ответы:
222: у меня машина не заводится, в чем причина?
333: хочу похудеть, но не получается, что делать?
444: я поссорился с женой, не понимаю, почему?
555: сварил пельмени, получилось невкусно, почему так?
666: я заболел, как мне вылечиться?

111: вы что дибилы штоль? это форум про кампы а не для тупых домахозяек как вы!!!! мне нужен конкретный ответ на конкретный вопрос!!


 
Virgo_Style ©   (2012-06-25 21:04) [11]


> Пока программа не растранслируется без ошибок и не произведет
> требуемые действия – все советы по "расширению кругозора"
> несущественны.


"Пока проблема не будет решена, искать пути ее решения я не буду".
Интересный подход.


 
Юрий Зотов ©   (2012-06-25 22:05) [12]

> Напишите (если вообще можете) листинг, где ОТРАЖАЕТСЯ номер
> переменной внешнего цикла в Edit.Text с помощью WM_SETTEXT


procedure TForm1.FormDblClick(Sender: TObject);
var
 i, j: integer;
 s: string;
begin
 for i := 1 to 5 do
 begin
   s := IntToStr(i);
   SendMessage(Handle, WM_SETTEXT, 0, DWORD(PChar(s)));
   SendMessage(Edit1.Handle, WM_SETTEXT, 0, DWORD(PChar(s)));
   Application.ProcessMessages; // Это именно то, о чем Вам уже говорили
   for j := 1 to MaxInt do
 end;
 Caption := "Программа завершена"
end;


> проверьте, работает ли это НА САМОМ ДЕЛЕ

Вы не поверите, но это на самом деле работает. Я проверял.

> А потом уже советуйте мне развивать свой кругозор.

Ну, раз уже можно, то советую Вам развивать свой кругозор. В области Delphi, естественно, коль уж скоро Вы на ней пишете. В частности, стоит обратить внимание на класс TThread - если долгие вычисления вынести в отдельный поток, то GUI не будет "подвисать". А Application.ProcessMessages, хотя и работает, но вариант не лучший.

> Кстати, моя первая программа на Algolе датируется 1970-м годом,

Моя - 69-м. И здесь есть люди, которые начали программить еще раньше. Так что хвалитесь Вы напрасно.

> но снобизма у меня нет, хоть и работал на таких ЭВМ,
> что многим и не снились.


LOL ?


 
Inovet ©   (2012-06-26 01:35) [13]

> [12] Юрий Зотов ©   (25.06.12 22:05)
> то советую Вам развивать свой кругозор. В области Delphi,
> естественно, коль уж скоро Вы на ней пишете.

По-моему, не только в Делфи - тут надо основные принципы работы Windows понять. И вообще, какой смысл выводить значение во время выполнения расчёта именно в Едит.


 
Inovet ©   (2012-06-26 01:36) [14]

> [13] Inovet ©   (26.06.12 01:35)
> вообще

в частности


 
Cobalt ©   (2012-06-26 08:40) [15]

> И вообще, какой смысл выводить значение во время выполнения расчёта именно в Едит.
Чтобы красиво циферки мельтешили.
Видели, наверное. в голливудских блокбастерах - буковки в строке крутятся, крутятся и складываются в осмысленные слова?


 
Anatoly Podgoretsky ©   (2012-06-26 08:54) [16]


> Видели, наверное. в голливудских блокбастерах - буковки
> в строке крутятся, крутятся и складываются в осмысленные
> слова?

Подбор пароля, по буквенный


 
Давайте будем жрать!   (2012-06-26 09:12) [17]

Вот мы смеётесь, а дядька напишет Матрицу и всех нас зохавает.


 
Кэп   (2012-06-26 11:24) [18]

Оужас! Нас всех поработит старый MBr 8()


 
нет   (2012-06-26 12:09) [19]

http://www.stihi.ru/photos/sobakagella.jpg

«Программисты» – говорим мы...
Не поймёшь, хоть и не дура.
Если снятся алгоритмы,
Где ты сам как процедура.

Оператор перехода,
Оператор обращенья...
Хоть на миг сфальшивил – сходу
Бац! На выход! Нет прощенья!

А забытые константы?
А побочные эффекты?
Много есть чего. Оставим,
Как побочные аспекты.

© Copyright: OldMBr


 
MsGuns ©   (2012-06-26 12:14) [20]

>http://www.stihi.ru/photos/sobakagella.jpg

Если б еща бородку с усами - ну вылитый Ильич в Шушенском :)


 
Inovet ©   (2012-06-26 12:31) [21]

> [19] нет   (26.06.12 12:09)

перехода-сходу бы заменить однокоренные.



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

Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.064 c
15-1349814602
Юрий
2012-10-10 00:30
2013.03.22
С днем рождения ! 10 октября 2012 среда


15-1347721207
Artem
2012-09-15 19:00
2013.03.22
Посоветуйте простой инсталлятор creator?


2-1339168542
Виктор1985
2012-06-08 19:15
2013.03.22
Как скомпилировать DCU из PAS файла


2-1326742131
Рома
2012-01-16 23:28
2013.03.22
Нужно сделать трассировку


15-1349681511
Jeer
2012-10-08 11:31
2013.03.22
Отечественные микропроцессоры





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский