Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для DillerInc

Обратный инженер


Сообщения: 644
Благодарности: 47

Профиль | Отправить PM | Цитировать


XCodeR
Я бы сделал что-то наподобие следующего(извини,что код на асме,просто мне влом браться за дельфи ) :
Код: Выделить весь код
MainProc      proc
; /* Создаём событие, которое будет служить сигналом */
        push    offset szSplash
        push    FALSE  ; Создаём событие как nonsignaled 
        push    TRUE   ; Создаём manual-reset событие
        push    NULL
        call      CreateEventA
        mov     hSplashEvent, eax
; /* Создаём поток */
        push    NULL
        push    NULL
        push    NULL
        push    offset ShowSplash ; адрес процедуры, где будет создаватся SplashScreen
        push    NULL
        push    NULL
        call      CreateThread
        mov     hSplashRoutineThread, eax
; /* Имитируем ресурсоёмкую работу */
        push    10000
        call       Sleep
; /* Теперь меняем состояние события, сигнализируя о конце ресурсоёмкой работы */
        push    hSplashEvent
        call       SetEvent
; /* Закрываем описатель потока */
        push    hSplashRoutineThread
        call       CloseHandle
; /* Закрываем описатель события */
        push    hSplashEvent
        call       CloseHandle
        ret
MainProc      endp

ShowSplash     proc
; /* Регистрируем класс создаваемого splash-окна */
...
; /* Создаём само окно */
...
; /* Ждём сигнала из основного потока */
        push    INFINITE
        push    hSplashEvent
        call       WaitForSingleObject
; /* Теперь, когда функция WaitForSingleObject возвратится, уничтожаем окно и снимаем регистрацию класса */
...
; /* Закрываем поток */
        push    NULL
        call       ExitThread
ShowSplash     endp
При регистрации класса splash-окна необходимо указать отдельную оконную процедуру, которая должна обрабатывать сообщение WM_DESTROY для уничтожения окна.

Примерно так...

-------
То,что неясно,следует выяснить.То,что трудно творить,следует делать с великой настойчивостью. © Конфуций

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:19, 12-03-2007 | #2