Форум: "Основная";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];
ВнизПочему-то не работает ? Найти похожие ветки
← →
anod (2002-08-12 13:40) [0]Пишу программу на WinApi, к ней подключаю модуль с вот таким вот
кодом:
procedure loadSkin(ifile: string;var Handle: HWND; hbmp, hbuttbmp: HBITMAP; bmp:Bitmap; Width, Height:Integer);
var main_p,btn_p:string;
begin
//-------------------------------------------------------------- main_p:=ExtractFilePath(ParamStr(0))+"skin\"+ReadSkinIni(ifile,"files","main");
btn_p :=ExtractFilePath(ParamStr(0))+"skin\"+ReadSkinIni(ifile,"files","buttons");
//-------------------------------------------------------------- hbmp:=LoadImage(0,PCHAR(ExtractFilePath(ParamStr(0)) + main_p), IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
hbuttbmp:=LoadImage(0,PCHAR(ExtractFilePath(ParamStr(0)) + btn_p), IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
//-------------------------------------------------------------- GetObject(hbmp, SizeOf(Bitmap), @bmp);
SetWindowPos(Handle,HWND_TOPMOST,20,0,bmp.bmWidth,bmp.bmHeight,SWP_NOZORDER);
SetWindowRgn(Handle,CreateRgnFromBitmap(hbmp,bmp),true);
Width:=bmp.bmWidth; Height:=bmp.bmHeight;
end;
Ничего не работает, но в dpr файле все тоже самое пашет???
← →
Leran2002 (2002-08-12 13:48) [1]
> anod © (12.08.02 13:40)
А необходимые модули подключил:
uses SysUtils,Windows...
← →
anod (2002-08-12 17:02) [2]Конечно же (оно бы не скомпилировалось), а так все запускается, ошибок нет, только результата тоже нет.
← →
anod (2002-08-12 18:40) [3]Такое чувствоЮ что процедура не возвращает параметры...
← →
DiamondShark (2002-08-12 20:25) [4]А код, случаем, не в ДЛЛ ?
← →
Anatoly Podgoretsky (2002-08-12 20:39) [5]hbmp:=LoadImage(0,PCHAR(ExtractFilePath(ParamStr(0)) + main_p), IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
Это правильно? Дело в том, что у тебя в main_p уже ExtractFilePath и каталоги, ты добавляешь еще раз
← →
Жираф большой (2002-08-12 20:52) [6]Интересно в этой связи, где должен выполняться VCL startup code.
Может, в этом причина неприятностей?
Ау, Мастаки!
← →
anod (2002-08-13 00:03) [7]Код не в ДЛЛ, а в обычном модуле.
2Anatoly Podgoretsky
Вы как всегда в точку!
Код я вставляю перед циклом обработки сообщений.
MainWnd:=InitInstance;
if (MainWnd = 0) then MessageBox(0, "Ошибка создания окна", nil, MB_OK)
else
begin
InitCommonControls();
createmenu;
SetWindowLong(MainWnd, GWL_STYLE,GetWindowLong(MainWnd, GWL_STYLE)and not WS_CAPTION);
mainskin.loadSkin("default.ini", MainWnd, main_bmp, b_bmp, bmp, Width, Height);
PListWnd:=InitPlist; if (PListWnd = 0) then begin MessageBox(0, "Ошибка создания окна", nil, MB_OK); exit; end;
ShowWindow(MainWnd, CmdShow);
UpdateWindow(MainWnd);
end;
while GetMessage(Message, 0, 0, 0) do
begin
TranslateMessage(Message);
DispatchMessage(Message);
end;
Тут появилась ещё одна проблемка теперь не отображаетсяь main_bmp (hbmp)
WM_PAINT:begin
//BringWindowToTop
DC:=BeginPaint(MainWnd,ps);
SetBkMode(DC,TRANSPARENT);
SetTextColor(DC,$ffffff);
cDC:=CreateCompatibleDC(DC);
old_bmp:=SelectObject(cDC, main_bmp);
BitBlt(DC,0,0,Width,Height,cDC,0,0, SRCCOPY);
TextOut(DC,260,2,"00:00",5);
SelectObject(cDC, old_bmp);
DeleteDC(cDC);
EndPaint(MainWnd, ps);
end;
← →
anod (2002-08-13 00:07) [8]Я имел ввиду, что hbmp точно загружается, так как размер устанавливается правилльный, да и картинки button"ов (я их через WM_DRAWITEM перерисовываю) тоже отображается нормально.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c