Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.03.2010, 08:28
Smerch66 Smerch66 вне форума
Прохожий
 
Регистрация: 31.10.2009
Сообщения: 43
Репутация: 10
По умолчанию Выполнение действий раньше положенного времени

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

При работе программы, график ещё не выводится на экран, а курсор уже возвращается в стрелку. и только через секунду-две появляется сам график.

В чём может быть причина? Дело в том, что нужно чтобы курсор-часы, был прямо до момента пока график ни построился.


И второй вопрос сразу же, а то не знаю в какой из разделов писать. Есть ли литература по цифровой обработке сигналов именно на Delphi? А то сколько искал - не нашёл. Всё только для матлаба находится.
Ответить с цитированием
  #2  
Старый 14.03.2010, 12:17
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Если построение графика идет в отдельном потоке, то так и должно быть. Основная нить у вас уже отработала, а отдельная с графиком еще в процессе. В этом случае, надо уже обрабатывать сообщения построителя графиков и по ним ориентироваться при отображении курсора мыши.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 14.03.2010, 17:12
Smerch66 Smerch66 вне форума
Прохожий
 
Регистрация: 31.10.2009
Сообщения: 43
Репутация: 10
По умолчанию

Код:
Form1.Cursor:=crHourGlass;

...

//построение графика
for i:=0 to NFFT div 2 do
Chart2.SeriesList[0].AddXY(i*SamplesPerSec/NFFT,spectr[i]);

Form1.Cursor:=crDefault;

lmikle: Пользуемся тегами!
Ответить с цитированием
  #4  
Старый 15.03.2010, 03:45
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Цитата:
Сообщение от Smerch66
Есть ли литература по цифровой обработке сигналов именно на Delphi? А то сколько искал - не нашёл. Всё только для матлаба находится.
ЦОС - это математика, а в Матлабе, понятное дело, куча алгоритмов. Delphi, по большому счёту, это надстройка над Си, т.е. как нарисовать окно со стандартными визуальными компонентами (кнопки, меню...), но не прописывать инициализацию (регистрация класса окна, организация очереди событий...). Плюс компоненты для баз данных и прочее. Но если в вашей формуле арифметические операции, то разве это трудно запрограммировать?
Ответить с цитированием
  #5  
Старый 15.03.2010, 07:24
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Smerch66, устанавливай курсор у объекта Screen, и будет тебе щастье.

AlexSku, Delphi не какая не надствойка. Никто тебе не мешает взять и писать на чистом WinAPI на Delphi. Поищи в инете примеры создания чистых WinAPI-приложений на Delphi.
Ответить с цитированием
  #6  
Старый 15.03.2010, 08:47
Smerch66 Smerch66 вне форума
Прохожий
 
Регистрация: 31.10.2009
Сообщения: 43
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Smerch66, устанавливай курсор у объекта Screen, и будет тебе щастье.

Спасибо большое! Получилось Только OpenDialog, который открывается перед тем как курсор превратится в часы, стал подтормаживать при закрытии, но это уже не так важно.

Подскажите ещё пожалуйста, какой командой можно завершить выполнение процедуры?
Ответить с цитированием
  #7  
Старый 15.03.2010, 08:51
Smerch66 Smerch66 вне форума
Прохожий
 
Регистрация: 31.10.2009
Сообщения: 43
Репутация: 10
По умолчанию

Хотя... всё равно, сперва уходят часы, а потом только график появляется на экране.
Ответить с цитированием
  #8  
Старый 15.03.2010, 17:53
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Цитата:
Сообщение от lmikle
Delphi не какая не надствойка. Никто тебе не мешает взять и писать на чистом WinAPI на Delphi. Поищи в инете примеры создания чистых WinAPI-приложений на Delphi.
Я знаю. Можно и на ассемблере писать в среде Дельфи, можно и барометром гвозди заколачивать, я только описал самые общие случаи применения языка. Мне самому когда спрашивают, почему для DirectX я использую Delphi, а не Си, приходится отвечать, что результат всё равно будет один и тот же (единственно, размер побольше), так что я поклонник Delphi, но не лезу в дебри (winapi, консольные приложения...)
Ответить с цитированием
  #9  
Старый 15.03.2010, 19:41
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Тут вопрос того, как у тебя написан код. Я бы делал так:

Код:
Screen.Cursor := crHourglass;
Try
  // расчет
Finally
  Try
     // Вызов принудительной отрисовки
  Finally
     Screen.Cursor := crDefault;
  End;
End;

Ну, и все диалоги надо показывать либо до установки курсора, либо после его восстановления.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:51.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025