Главная страница
    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.47 MB
Время: 0.008 c
1-71258
oguz
2002-08-12 10:12
2002.08.22
Как сделать ссылку на сайт(e-mail) в Delphi


1-71075
LEKSYS
2002-08-12 11:41
2002.08.22
fsMDIChild


7-71396
Oleg_er
2002-06-10 07:33
2002.08.22
как подгрузить адресную книгу


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


1-71162
Иван
2002-08-09 11:38
2002.08.22
Анализ строки





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский