powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Окно ожидания длительных операций
25 сообщений из 54, страница 2 из 3
Окно ожидания длительных операций
    #39143151
RWolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
darxfame,

написали первым же сообщением — все манипуляции с GUI должны выполняться в основном потоке.
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39143156
darxfame
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakovdarxfameубираю вызов окна windowthread и программа начинает работать
Вот и ответ. А теперь бери его исходники и читай что там за фигня написана.


Там не фигня, может быть что там использовано что то, чего в win xp не было, вопрос в другом, чем заменить такое всплывающее окно при длительных операциях?
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39143157
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
darxfameвопрос в другом, чем заменить такое всплывающее окно при длительных
операциях?
Простым модельным окном, создаваемым в главном потоке.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39143160
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RWolfнаписали первым же сообщением — все манипуляции с GUI должны выполняться в основном потоке.Отчасти верно, но...

Вот у тебя есть свой Delphi-основной поток.
И есть у тебя чужой (nonDelphi - напр., виндовый инсталлятор чего-нибудь) тоже основной поток, открывающий своё модальное окно.
И Delphi это окно ловит, рисует на нём свою кнопку и по своему (твоему желанию) отрабатывает клик).

И это РАЗНЫЕ приложения!
И почему нельзя сделать подобное в рамках ОДНОГО (пусть многопоточного) Delphi-приложения?
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39143161
darxfame
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakovdarxfameвопрос в другом, чем заменить такое всплывающее окно при длительных
операциях?
Простым модельным окном, создаваемым в главном потоке.


у модального окна есть кнопка, на которую нужно обязательно жмякнуть, а мне надо без кнопки
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39143163
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
darxfameу модального окна есть кнопка, на которую нужно обязательно жмякнуть
Ты что, не в состоянии сделать форму без кнопки?.. Это же проще чем сделать форму с кнопкой!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39143164
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GatorИ это РАЗНЫЕ приложения!
И почему нельзя сделать подобное в рамках ОДНОГО (пусть многопоточного) Delphi-приложения?
Потому что в рамках ОДНОГО Delphi-приложения нельзя сделать 2 основых потока.
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39143165
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
darxfame, посмотри, как реализованы всякие "Splash-окошки"
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39143166
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat, А зачем тебе "Два основных! потока"?
А если это консольное приложение?

ТС'у нужно обычное "ассинхронное окно" с самозакрытием по таймауту. Нет?
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39143167
darxfame
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gatordarxfame, посмотри, как реализованы всякие "Splash-окошки"

смотрел в эту сторону но не понял как загнать splash в поток, там его отобразить и там же убрать
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39143168
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
darxfameне понял как загнать splash в поток, там его отобразить и там же убрать

Никак. Просто в OnShow окна запускаешь поток, а в OnTerminate потока делаешь Close окну.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39143174
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GatorТС'у нужно обычное "ассинхронное окно" с самозакрытием по таймауту. Нет?В рамках одного приложения - impossible!

Пусть делает 2-е (GUI) приложение и вызывает его из 1-го (консольного).
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39143177
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatПусть делает 2-е (GUI) приложение и вызывает его из 1-го (консольного).

Клуб Юных Проктостоматологов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39143178
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovКлуб Юных Проктостоматологов.
А то.
Если через Synchronize - никак, то только так.
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39143882
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот интересно, ощущение, что все говорят на разных языках.

ТС вещает, что он не владеет азами, а остальные дают ему советы, годные лишь для опытного, но недогадливого программера.

ТСу: посмотри уже в сети, как ручками сделать сплэш-окно, хотя бы у того же Сергей Рощина. Там нет ничего сложного, достаточно лишь понять принцип, когда что вызывать и до каких пор.
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39143894
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док, + Много!
Привет и с праздниками!

Мало того! Насколько я помню, Рощин у себя всё расписал подробнейше!
____________________

Боюсь предложить для этого "сплэш-потока" свою очередь и процедуру обработки сообщений.



Док,
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39143907
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не владеет азами - зачем тогда вообще многопоточность?
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39144015
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gator,

и тебя с прошедшими

GatorБоюсь предложить для этого "сплэш-потока" свою очередь и процедуру обработки сообщений
я тоже об этом подумал ;) там бы можно было для простоты вместо сообщений приват-поля формы использовать.
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39144161
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
darxfame,

слепил наскоро в D7 примитивный тестовый проект, пояснения в тексте. Основный смысл телодвижений: все отрисовки только в основном потоке, любые другие вычисления - в дополнительном.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Окно ожидания длительных операций
    #39573552
protector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Некропостинг!
Но это первое что нашёл яндекс по этой проблеме. Я сам пользуюсь этим классом и случайно вот только тоже заметил эту ошибку, так как с XP сейчас не густо, то как то мимо меня это проходило. Сражу скажу что с исключениями там беда и так всё запутано, что не понял чего-же хотел автор, а так как исключение возникает в конструкторе наследника TThread и всё там на месаджах, которые посылают месаджи которые, я так и не понял как это всё закручено, да собственно и не надо. Короче оставлю это здесь может кому пригодиться
Ошибка происходит при вызове функции (в исходнике нетрудно найти):
Код: pascal
1.
 SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, @NonClientMetrics, 0)



Что в общем неудивительно. Далее читаем MSDN , долго материм Microsft за такое идиотское решение и, собственно исправление тривиально, его приводить не буду.
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39573821
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблема изначально в авторе, который из-за непонимания основ сам себе заботливо расставляет грабли, чтобы потом по ним радостно пробежаться.

Не надо "тяжелые" операции делать в основном потоке. Всё.
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39573848
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
protectorисправление тривиально, его приводить не буду.Дык приведи уже, раз оно тривиальное, людям пригодится.
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39574796
protector
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

Ну если уж кто-то по прямой ссылке на мсдн не поймёт что делать, то такуим людям нельзя заниматься программированием.
Для Windwos XP нужно вычитать 4 из размера записи:
Код: pascal
1.
NonClientMetrics.cbSize:=SizeOf(NonClientMetrics) - 4
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39574813
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
protector,

то ли лыжи не едут, то ли одно из двух ) нигде в теме не увидел ничего, связанного с NonClientMetrics
...
Рейтинг: 0 / 0
Окно ожидания длительных операций
    #39574830
Фотография Квейд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RWolfdarxfame,

написали первым же сообщением — все манипуляции с GUI должны выполняться в основном потоке.Cуровые бородатые дельфисты могут манипулировать GUI из любого потока. Но для начинающих твой совет верен :)
...
Рейтинг: 0 / 0
25 сообщений из 54, страница 2 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Окно ожидания длительных операций
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]