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

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

Отказ MessageBox, связанный с: unit XPMan, {$R WindowsXP.res} [D7, WinXP]


Jack-of-shadow ©   (2003-05-25 12:59:00) 

С ума схожу, не пойму в чем дело.(
Была прога - вырезал из неё все, оставил только то, что внизу.
Сохранил проект под новым именем, запускаю. В старой все было нормально, а именно:

MessageBox- вот это работало корректно... Суть проблемы - звуковое сообщение есть, но окно не показывается.

Удаляю из проекта {$R WindowsXP.res} - пашет. В чем конфликт, мне вообще непонятно. Глюк в ПО? Кто-нибудь, попробуйте закомпилить, для проверки.

program N128; {$R WindowsXP.res}

uses
Windows, Messages;

function DefWndProcOverride(Hwnd,Msg,WParam,LParam: LongInt): LongInt;stdcall;
begin
case Msg of
WM_CLOSE:
begin
MessageBox(Hwnd,"","",64);
PostQuitMessage(0);
end;
else
Result := DefWindowProc(Hwnd,Msg,WParam,LParam);
end;
end;

procedure WinMain;
var Msg: TMsg;
Handle: THandle;

function Init: Boolean;
var WndClass: WndClassEx;
begin
with WndClass do
begin
ZeroMemory(@WndClass,SizeOf(WndClassEx));
cbSize := SizeOf(WndClassEx);
style := CS_VREDRAW or CS_HREDRAW;
lpfnWndProc := @DefWndProcOverride;
hInstance := Sysinit.HInstance;
hIcon := LoadIcon(0,IDI_APPLICATION);
hCursor := LoadCursor(0,IDC_ARROW);
hbrBackground := HBRUSH(COLOR_BTNFACE+1);
lpszClassName := ":Установить не удалось)";
Result := RegisterClassEx(WndClass) <> 0;
if not Result then Exit;
Handle := CreateWindowEx(WS_EX_APPWINDOW,lpszClassName,"",WS_OVERLAPPEDWINDOW,10,10,400,200,0,0,0,nil);
Result := Handle <> 0;
if not Result then Exit;
ShowWindow(Handle,SW_SHOWNORMAL);
end;
end;

begin
if Init then
while GetMessage(Msg,0,0,0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg)
end;
end;

begin
MessageBox(0,"","",64);
WinMain;
end.


nikkie   (2003-05-26 15:35:00) [1]

попробуй сначала вызвать InitCommonControls. вдруг поможет.


Cobalt   (2003-05-26 14:06:00) [2]

А что в Windowsxp.res?
Попробуй так: windows.MessageBox(0,"","",64);
Кстати, что ещё за 64 ? Кто тебя учил? Руки ему оторвать.


Jack-of-shadow   (2003-05-25 15:59:00) [3]

В конце концов даже вот это не работает как следует с {$R Windowsxp.res}, отчего? Однако, при добавлении в юзесы Forms - заработало. Эффект, конечно, обалденный. Далее по спискам uses вычислил - и дошел до последней инстанции - ImgList. Без него не работает. Именно без него. А у него никакой инициализации даже нет. Но раньше-то я без этого обходился - все было ноормально..(

Ну хоть носом потыкайте..

program Project1; {$R Windowsxp.res}
uses
Windows{, ImgList};
begin
MessageBox(0,"","",64);
end.


Jack-of-shadow   (2003-05-25 15:27:00) [4]

Никаких идей? Грустно.


Наверх

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