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

Вниз

application.ProcessMessages   Найти похожие ветки 

 
CMOS ©   (2006-05-05 22:09) [0]

Есть ли аналог процедуры DoEvent (из VB) в Delphi?

Инициализирую D3D8
Устанавливаю необходимые параметры,
В цикле
application.ProcessMessages
устанавливаю матрицу вида
Выход когда условие

Проц подлетает под стольник. Даже мышка не шевелится. Снять задачу не возможно - диспетчер не грузится. Винт молчит.
В VB в такой же проге такого не было. DoEvent дает обработать все события, затем продолжает выполнять процедуру.


 
begin...end ©   (2006-05-05 22:14) [1]

Application.ProcessMessages тоже последовательно выбирает все накопившиеся сообщения из очереди и транслирует/диспетчеризует их, после чего возвращает управление.


 
Eraser ©   (2006-05-05 22:20) [2]


> CMOS ©   (05.05.06 22:09)


> Проц подлетает под стольник. Даже мышка не шевелится.

так не должно быть какие бы вычисления не производились, при нормальном приоритете процесса и в user mode.
показывай код.


 
Anatoly Podgoretsky ©   (2006-05-05 22:41) [3]

DoEvent приходит а ProcessMessages, полный эквивалент.


 
Cash ©   (2006-05-06 07:28) [4]

Ох уж мне эти цыклы, весно с ними маются! :)))

Не в цыкле это надо делать! Если у тебя Application есть, значит есть и
OnIdle событие. В нем и надо все делать, только Done в false ставь, тогда
все будет крутиться с максимальной скоростью. ProcessMessages в OnIdle
не нужен, т. к. (вроде) OnIdle наступает после обработки очереди
сообщений.


 
evvcom ©   (2006-05-06 08:36) [5]


> OnIdle событие. В нем и надо все делать

Все - это что? Все приложение туда запихать? :)


 
Cash ©   (2006-05-06 14:37) [6]

> Все - это что? Все
Ну если охота, то я мешать не буду! :)))

А так, ну... эти... нормальные шкодеры там делают всю обработку вывода
на экран и ввода с устройств, ведь речь (вроде) идет о D3D, как я понял
чел с этим какраз и намудрил. :)))


 
evvcom ©   (2006-05-06 14:44) [7]


> нормальные шкодеры там делают всю обработку вывода
> на экран и ввода с устройств

Не знаю, чего там делают шкодеры. К таковым себя не отношу.

> ведь речь (вроде) идет о D3D

А я думаю, чего это такое "D3D8"? Тогда автору в Игры надо было стучаться...


 
Cash ©   (2006-05-06 17:39) [8]

Ну я просто не рискнул просить всевышних о переносе этой ветки в
конфу "Игры". :)))
Просто понадялся что они сами это сделают, но что то их незаметно в
последнее время. :)

Эй, CMOS, откликнись! Ты там игру чтоль изладить решил? Иль еще чего?


 
Kolan ©   (2006-05-06 20:10) [9]

нормальные шкодеры там делают всю обработку вывода

А как зовут тех, кто доп потоки использует :)


 
Anatoly Podgoretsky ©   (2006-05-06 20:16) [10]

Kolan ©   (06.05.06 20:10) [9]
Извращенцы.


 
Cash ©   (2006-05-06 21:30) [11]

Kolan ©   (06.05.06 20:10) [9]:
> А как зовут тех, кто доп потоки использует :)
[с прищепкой на носу]Типа[/] их зовут продвинутые шкодеры! :)))
Но омжно еще и как Анатолий посоветовал. :)))

ЗЫ: а всевышние видать нас покинули. :)


 
CMOS ©   (2006-05-13 15:15) [12]


> OnIdle событие

А здесь по подробнее

Все нормально, ошибка в коде была. Сам разобрался.
Мне тут посоветовали вместо цикла рисовать все на событие Paint формы. Что-то сомнительно. Должна произойти рекурсия и я просто ничего не увижу. Попробовал. Получилось!!! Даже application.ProcessMessages не нужен. Загрузка проца 3%.
Объясните мне почему. Вот код:

procedure TForm1.FormPaint(Sender: TObject);
begin
D3DXMatrixLookAtLH(MatV, vEye, vAt, vUp);
Dev.SetTransform(D3DTS_VIEW, MatV);
Dev.Clear(0, 0, D3DCLEAR_TARGET or D3DCLEAR_ZBUFFER,
 0, 1, 0);
Dev.BeginScene;
...
Dev.EndScene;
Dev.Present(0, 0, 0, 0);
end;

После ПОЛНОГО выполнения, процедура повторяется.
По уму если, то Dev.Present(0, 0, 0, 0) должно вызвать событие Paint. Получится рекурсия. Конца не будет.
Вообще, тему нужно переназвать и перенести


 
Cash ©   (2006-05-13 18:37) [13]

CMOS ©   (13.05.06 15:15) [12]:
> Вообще, тему нужно переназвать и перенести

Ты давай лучше сам регься и рули к нам! :)))
Т. е. в конференцию "Игры", там тебе все покажут и расскажут. Может даже
прожуют, и всяко такое! :)))

ЗЫ: а скакой бабушки Dev(IDirect3DDeviceX) должен у какой то там формы
Paint Вызывать??? 8)

Там дело в том, что Paint срабатывает для перерисовки формы, форму
перекрыл - перерисовалось, мышой дернул - перерисовалось, и т. д.



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

Форум: "Основная";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.011 c
6-1139680994
Rust007
2006-02-11 21:03
2006.06.18
Тест для сети


15-1148282530
АлексейК
2006-05-22 11:22
2006.06.18
К жителям Новосибирска


2-1149260754
red827
2006-06-02 19:05
2006.06.18
создание проекта под DOS


15-1148586287
GEN++
2006-05-25 23:44
2006.06.18
Нужен бесплатный компонент


2-1148196813
Belorus
2006-05-21 11:33
2006.06.18
Список процедур в библиотеке





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