Форум: "Прочее";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];
ВнизСупер-пупер-мега-сплэш Найти похожие ветки
← →
Andy BitOff © (2009-08-18 14:22) [80]
> Дмитрий С © (18.08.09 14:19) [79]
> Могу из проекта достать.
Не, ненадо, у меня своё есть ;)
← →
Дмитрий С © (2009-08-18 14:27) [81]
>
> Не, ненадо, у меня своё есть ;)
У ЮЗ тоже было свое:)
← →
Anatoly Podgoretsky © (2009-08-18 14:32) [82]> Дмитрий С (18.08.2009 14:27:21) [81]
А теперь стало общее, вот так и теряют собственность.
← →
Andy BitOff © (2009-08-18 14:39) [83]
> Дмитрий С © (18.08.09 14:27) [81]
Я на своё давал ссылку выше. Могу повторить - http://bitoff.ru/asf-main
← →
antonn © (2009-08-18 15:02) [84]
> Andy BitOff © (18.08.09 14:39) [83]
там в самой первой демке у текста тень другого цвета задай, а то осталась зеленая :)
← →
Andy BitOff © (2009-08-18 15:09) [85]
> antonn © (18.08.09 15:02) [84]
Антон, ты же знаешь, у меня с этими сплэшами вечно проблема, ну не умею я рисовать... ;)
Там в демке так задается, уж и не знаю зачем и почему. =)
← →
Smile (2009-08-18 15:18) [86]Опять какая-то странноть. В ветке принимает участие куча модераторов, а она до сих пор жива...
Непорядок
:)
Действительно, пора закрыть эту "потрепаловку"
← →
Юрий Зотов © (2009-08-18 15:31) [87]> Дмитрий С © (18.08.09 14:10) [73]
ОК, нет проблем. Тем более, что тоже правильно среагировали.
← →
Суслик_ (2009-08-18 17:51) [88]От себя добавлю.
Тут когда-то Димка Логинов выкладывал свой пример прогресс бара с доп. потоке. Я тогда решил поизучать его пример, заодно и столкнулся первый раз с окнами на винапи. Я его, помню, покритиковал немного, но евоный пример после доработки заюзал (спасибо, Дима).
Достоинство в том, что окошко с сообщением и прогрессбаром всегда видно и даже реагирует на нажатие мышкой пока основной поток рубится в дум с БД.
Юра, спасибо - хороший пример.
ЗЫ Забавно смотреть как народ тупит немного. Но у меня сложилось ощущение, что это стеб.
← →
Palladin © (2009-08-18 17:58) [89]
> [86] Smile (18.08.09 15:18)
хм... а почему ветке должно мешать жить участие в ней кучи модераторов?
ну и как бы... http://www.delphimaster.ru/forums.shtml#rule Рекомендуется: п.8 может и выстрелить ;)
← →
DVM © (2009-08-18 23:30) [90]
> Юрий Зотов ©
Небольшие замечания по коду DLL:
Отсутствует закрытие хендла ThreadHandle
Нету проверки на результат RegisterClassEx(), CreateWindowEx(), LoadBitmap()
← →
brother © (2009-08-19 05:28) [91]доводим код "до ума" и выпускам релиз ;)
← →
ZeroDivide © (2009-08-19 08:31) [92]На самом деле вся эта тема - туфта.
От тормозов, в том числе и при загрузке, нужно избавляться. Вон акробат ридер как шустро теперь запускается.... и спеш они больше не используют... а сколько их было, этих спешей у ридера.
← →
Andy BitOff © (2009-08-19 09:41) [93]
> ZeroDivide © (19.08.09 08:31) [92]
Так на то он и ридер. Его задача просто открыть документ. Какой там сплэш...
Сплэш, это не для красоты, а по нужде, но если без него не обойтись, то почему не сделать его красивым и качественным? Тем более, что чаще он делается для программ размер которых по сравнению с 400 килобайтным сплэшом, просто сравнивать не удобно.
Никто не утвердает, что давайте теперь клепать сплэши везде. Голову просто надо иметь... И каждому овощу освое время... и место.
← →
Andy BitOff © (2009-08-19 10:04) [94]400 кб имеется в виду, конечно, размер ехе с пустой формой и слэшем, т.е. надо вычесть размер пустой формы.
← →
Riply © (2009-08-19 10:13) [95]> [0] Юрий Зотов © (17.08.09 21:38)
> информация для использования в своих проектах всеми желающими.
Вот спасибо !
Уже года два откладываю написание этого "на потом" (эт такая знаменательная дата в календаре:) )
А тут все не только на блюдечке с голубой каемочкой,
а еще и реализовано, как мне хотелось :)
Еще раз спасибо :)
← →
Skyle © (2009-08-19 10:13) [96]
> Andy BitOff © (19.08.09 09:41) [93]
>
> > ZeroDivide © (19.08.09 08:31) [92]
>
> Так на то он и ридер. Его задача просто открыть документ.
> Какой там сплэш...
Всю дорогу этот бешенный ридер для простого открытия документа при запуске долго показывал сплеш и перечислял на нём загруженные DLL...
Где ZeroDivide увидел быстрый ридер я не знаю, видимо просто я последнии версии ещё не смотрел.
← →
Rouse_ © (2009-08-19 10:17) [97]
> Отсутствует закрытие хендла ThreadHandle
Зачем? ExitThread же присутствует.
← →
oxffff © (2009-08-19 10:25) [98]
> Rouse_ © (19.08.09 10:17) [97]
Terminating a thread does not necessarily remove the thread object from the operating system. A thread object is deleted when the last handle to the thread is closed.
← →
ZeroDivide © (2009-08-19 10:29) [99]
> Где ZeroDivide увидел быстрый ридер я не знаю, видимо просто
> я последнии версии ещё не смотрел.
Теперь он без сплешей, "пулей" запускается. Я сам был удивлен. Скачай 9-ку.
← →
Anatoly Podgoretsky © (2009-08-19 10:29) [100]> ZeroDivide (19.08.2009 08:31:32) [92]
И с элементами развлечения, некоторые пользователи просто млели.
← →
Anatoly Podgoretsky © (2009-08-19 10:30) [101]> Andy BitOff (19.08.2009 10:04:34) [94]
И получаем 380 кб
← →
Anatoly Podgoretsky © (2009-08-19 10:32) [102]> Skyle (19.08.2009 10:13:36) [96]
Так если нет надобности, как сейчас, то сделаем введением искуственных задержек, что нужность сразу была видна и по весу ощутима.
← →
oxffff © (2009-08-19 10:33) [103]
> Anatoly Podgoretsky
Остапа понесло.
← →
Palladin © (2009-08-19 10:33) [104]
> [99] ZeroDivide © (19.08.09 10:29)
тебя послушать, так можно подумать что сплеш все и тормозил... )
← →
ZeroDivide © (2009-08-19 10:39) [105]
> Palladin © (19.08.09 10:33) [104]
>
>
> > [99] ZeroDivide © (19.08.09 10:29)
>
> тебя послушать, так можно подумать что сплеш все и тормозил.
> .. )
Видимо сделали потоковую загрузку... оно как бы правильней, чем сплеши...
Основное окно и первая страница PDF грузятся, затем грузится все остальное... ну и инициализация всего и вся по мере необходимости. В общем, это намного правильнее чем сплеши. Приложение со сплешами раздражает.
← →
Andy BitOff © (2009-08-19 10:40) [106]
> Anatoly Podgoretsky © (19.08.09 10:30) [101]
> И получаем 380 кб
У меня 379 КБ (388 608 байт) ;Р
← →
Rouse_ © (2009-08-19 10:44) [107]
> oxffff © (19.08.09 10:25) [98]
И чего? У меня тоже есть чего доставить :)When this function is called (either explicitly or by returning from a thread procedure), the current thread"s stack is deallocated, all pending I/O initiated by the thread is canceled, and the thread terminates. The entry-point function of all attached dynamic-link libraries (DLLs) is invoked with a value indicating that the thread is detaching from the DLL.
← →
Andy BitOff © (2009-08-19 10:46) [108]
> ZeroDivide © (19.08.09 10:39) [105]
> Приложение со сплешами раздражает.
Никогда не говори никогда.
Если в вашей работе вам не попападалась задача (ваше приложение), которую просто нельзя загрузить за секунду, то это вовсе не означает, что ни у кого нет таких задач.
← →
oxffff © (2009-08-19 10:51) [109]
> Rouse_ © (19.08.09 10:44) [107]
>
> > oxffff © (19.08.09 10:25) [98]
>
> И чего? У меня тоже есть чего доставить :)
Но вызов GetExitCodeThread сработает. Значит поток не полностью удален.
Поэтому CloseHandle, CloseHandle.
← →
Rouse_ © (2009-08-19 10:51) [110]
> oxffff © (19.08.09 10:25) [98]
А вообще да... Хэндл таки не закрывается при ExitProcess. Вывод? Вывод - примеры из MSDN, наподобие нижеприведенного нагло врут :)
void CreateEventsAndThreads(void)
{
HANDLE hThread;
DWORD i, dwThreadID;
...
hThread = CreateThread(NULL,
0,
ThreadProc,
&ghReadEvents[i], // pass event handle
0,
&dwThreadID);
if (hThread == NULL)
{
printf("CreateThread failed (%d)\n", GetLastError());
return;
}
}
}
← →
Хитрий Лис (2009-08-19 10:54) [111]
> Andy BitOff © (19.08.09 10:46) [108]
> Если в вашей работе вам не попападалась задача (ваше приложение), которую просто нельзя загрузить за секунду, то это вовсе не означает, что ни у кого нет таких задач.
А попадаются еще такие задачи - которые на машине разработчика запускаются за 1 секунду, а на машине юзера с ненастроенной WindowsXP на 256М памяти запускаются секунд 30-40... ведь для запуска винде нужно сначала скинуть в своп десяток других запущенных программок :)
← →
Leonid Troyanovsky © (2009-08-19 11:10) [112]
> Rouse_ © (19.08.09 10:17) [97]
> > Отсутствует закрытие хендла ThreadHandle
> Зачем? ExitThread же присутствует.
ExitThread, как раз, лишний, а CloseHandle не хватает, утечка.
Мелочь, конечно, но не Пушкину ж это делать.
Еще, IMHO, некрасиво PostMessage WM_DESTROY,
тут просится PostThreadMessage WM_QUIT.
А вот потеря foreground - это всамделишний баг.
--
Regards, LVT.
← →
Andy BitOff © (2009-08-19 11:17) [113]
> Leonid Troyanovsky © (19.08.09 11:10) [112]
У меня потеря foreground решается так, как вы предложили в [71]
← →
Leonid Troyanovsky © (2009-08-19 11:25) [114]
> Andy BitOff © (19.08.09 11:17) [113]
> У меня потеря foreground решается так, как вы предложили
Твой пример я еще не успел посмотреть.
А у ЮЗ смутил stdcall, подумалось, что приложения могут быть и
недельфийские, поэтому и неуверенность насчет Application.Handle.
--
Regards, LVT.
← →
Andy BitOff © (2009-08-19 11:34) [115]
> Leonid Troyanovsky © (19.08.09 11:25) [114]
> Твой пример я еще не успел посмотреть.
Может лучше и не надо... =)
Или тогда хоть результаты лично, а то мне стыдно будет =)
← →
Leonid Troyanovsky © (2009-08-19 12:00) [116]
> Andy BitOff © (19.08.09 11:34) [115]
> Может лучше и не надо... =)
А чего страшного?
В ем, конечно, строк поболее, все внимательно трудно прочесть.
Но, пара-тройка вещей бросились в глаза:
В цикле выборки сообщений Sleep(0) лишний, GetMessage сделает.
Про DestroyWindow в msdn пишут, что не предназначена для
окон другого потока, наверное, лучше не рисковать.
Можно послать, например, WM_SYSCOMMAND SC_CLOSE.
Кста, про WM_SYSCOMMAND: must combine the value 0xFFF0 with the wParam
--
Regards, LVT.
← →
Anatoly Podgoretsky © (2009-08-19 12:11) [117]> Palladin (19.08.2009 10:33:44) [104]
Почему бы и нет, ты видел их сплеши, например, который рисует поверх экрана, со сложными регионами.
← →
Leonid Troyanovsky © (2009-08-19 12:46) [118]
> Leonid Troyanovsky © (19.08.09 12:00) [116]
Вдогонку.
Такая вещь как FileExists совершенно бесполезна.
Нет смысла делать проверку, кидать собс-ное исключение, если
далее идет TFileStream.Create, который сам все сделает вовремя.
Порой же FileExists может быть и вредна, бо между ее вызовом
и тем моментом, когда на основе ее результата что-то делают
проходит не один кол времени.
Т.е., файл только что был и вдруг его нет, а ракеты полетели.
--
Regards, LVT.
← →
Andy BitOff © (2009-08-19 13:14) [119]
> Leonid Troyanovsky © (19.08.09 12:00) [116]
> В цикле выборки сообщений Sleep(0) лишний, GetMessage сделает.
Без слипа в однопроцессорных системах загрузка CPU 100%
> Про DestroyWindow в msdn пишут
Подумаю. Чёй-то сразу и не соображу =(
> Кста, про WM_SYSCOMMAND: must combine the value 0xFFF0 with
> the wParam
Хм... Так, что ли "if (wParam and $FFF0) = SC_CLOSE then"?
← →
Юрий Зотов © (2009-08-19 13:21) [120]> Andy BitOff © (19.08.09 13:14) [119]
1. GetMessage сам ожидает сообщения, поэтому Sleep в цикле выборки действительно не нужен. Причина 100%-ной загрузки в чем-то другом.
2. Говорят (сам не проверял), что вместо Sleep(0) лучше использовать SwitchToThread. Результат тот же, но якобы жрет меньше тактов.
Страницы: 1 2 3 4 вся ветка
Форум: "Прочее";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];
Память: 0.68 MB
Время: 0.046 c