Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Правильное востановление окна [Delphi, Windows]


Страницы:   1 2

Zak3D[@Tm] ©   (2004-07-24 22:15:00) 

Мне необходимо востановить окно (сознанное на  API), после его сворачивания. На окне выводится сцена на DirectDraw, как это правильно сделать? Знаю, что нужно узать ф-цию (RestoreALL) и в ней востанавливать все объекты, но где эту замую ф-цию обрабатывать? В какой обработчик её поместить?


Zak3D[@Tm]   (2004-07-24 23:26:00) [21]

Даже не так, а WM_SHOWWINDOW


Zak3D[@Tm]   (2004-07-24 23:23:00) [22]

cyborg
Тогда уж WM_SHOW... ( Я же сказал API)


cyborg   (2004-07-24 23:15:00) [23]

Если форма Дельфи, то OnShow.


Zak3D[@Tm]   (2004-07-24 22:58:00) [24]

Спасибо, но я немного не то просил, вот какая проблеам, куда вообще поместить обработчик этого события??? Нажал я alt+tab, окно свернулось, а как его востановить???


cyborg   (2004-07-24 22:41:00) [25]


> Достаточно один раз в начале. Освобождения я не делал. Ну
> вроде глюков не было, не только у меня не было :)

Просто столкнуллся с проблемой, что в некоторых случаях экранное разрешение не восстанавливается, плюнул на всё и сделал переинициализацию.


Белый Крыс   (2004-07-24 22:36:00) [26]

Достаточно один раз в начале. Освобождения я не делал. Ну вроде глюков не было, не только у меня не было :)


Белый Крыс   (2004-07-24 22:30:00) [27]

Скажем, в начале рендера, или вообще при рендери проверяй результат функций. Пример:

hRet  : HRESULT;
...
hRet := FBackGround.BltFast(0, 0, FBack, @Rec, DDBLTFAST_WAIT);  
if hRet = DDERR_SURFACELOST then //то восстанавливаем
 
 FPrimarySurface._Restore;
 FSurface1 := DDLoadBitmap(FDirectDraw, 'objs.bmp', 0, 0);
 DDSetColorKey(FObjs, rgb(255, 0, 255));
 FSurface := CreateSurf(FDirectDraw, ScrWidth, ScrHeight);
 ...


cyborg   (2004-07-24 22:28:00) [28]

Я длеаю освобождение граф ресурсов и инициализацию заново, так надёжнее :), а без этого глюки всякие, в которых, скорей всего я виноват.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо