Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.22;
Скачать: CL | DM;

Вниз

Почему-то не работает ?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
1-71162
Иван
2002-08-09 11:38
2002.08.22
Анализ строки


3-71044
nikolo
2002-08-01 14:27
2002.08.22
Как объявить параметры в TADOQuery?


14-71380
Alexgorlov
2002-07-27 23:48
2002.08.22
Защита приложения


1-71203
nikolo
2002-08-09 12:29
2002.08.22
Как получить список функций и процедур, объявленных в DLL?


1-71208
dimanster
2002-08-10 18:45
2002.08.22
Как делать разделители в системе меню?