Форум: "Прочее";
Текущий архив: 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