Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-71137
I
2002-08-13 12:45
2002.08.22
Как создать свой Button ч/з код.


1-71121
maxim2
2002-08-13 09:17
2002.08.22
Каким образом загрузить курсоры и картинки из res файла


4-71418
Alex-A
2002-06-18 14:20
2002.08.22
Именованные каналы


1-71154
michael_b
2002-08-13 16:02
2002.08.22
как послать email но при этом нужно заполнить поля кому, тема,


3-70966
ppcat
2002-07-30 14:10
2002.08.22
Доступ к документам Excell с помощью ADO или ODBC





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский