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

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

Иконку в заголовок окна как поместить.


McSimm2 ©   (2003-07-25 11:57:00) 

Как сабж загрузить ?
У меня иконка только у файла появилась,а в заголовке почему то значок винды. Иконка хранится в ресурсах.
Добавляю через


procedure WinMain;
Begin
with WindowClass do
begin
...
( hInstance, PChar(ID_MAIN_ICON)

Как сабж загрузить ?
У меня иконка только у файла появилась,а в заголовке почему то значок винды. Иконка хранится в ресурсах.
Добавляю через


procedure WinMain;
Begin
with WindowClass do
begin
...
hIcon := LoadIcon(hInstance, PChar(ID_MAIN_ICON));
...
end;
...
Window := CreateWindow(AppName, "Simple miner",
WS_OVERLAPPED + WS_SYSMENU + WS_MINIMIZEBOX,
0, 0, 1, 1, 0, 0, HInstance, nil);


Игорь Шевченко   (2003-07-25 18:02:00) [1]

Дык, работает

add.rc

#include "add.rh"

HS_ICON ICON "hs_main.ico"

add.rh

#define HS_ICON 7

main.pas

procedure TForm1.FormCreate(Sender: TObject);
var
Icon : TIcon;
Hnd : HICON;
begin
Hnd := LoadIcon(hInstance, MakeIntResource(7));
if Hnd <> 0 then begin
Icon := TIcon.Create();
Icon.Handle := Hnd;
( Icon)

Дык, работает

add.rc

#include "add.rh"

HS_ICON ICON "hs_main.ico"

add.rh

#define HS_ICON 7

main.pas

procedure TForm1.FormCreate(Sender: TObject);
var
Icon : TIcon;
Hnd : HICON;
begin
Hnd := LoadIcon(hInstance, MakeIntResource(7));
if Hnd <> 0 then begin
Icon := TIcon.Create();
Icon.Handle := Hnd;
ImageList1.AddIcon(Icon);
end;
.....
end;


McSimm2   (2003-07-25 16:16:00) [2]

не, так я уже пробовал ...


Игорь Шевченко   (2003-07-25 16:14:00) [3]

LoadIcon (hInstance,MakeIntResource (ID_MAIN_ICON));


[lamer]Barmaglot   (2003-07-25 16:00:00) [4]

Это даже я знаю integer(____);


McSimm2   (2003-07-25 15:57:00) [5]

{$I My.RI}
{$R My.RES}
конечно же.
по другому не скомпилировалось бы.

Попутный вопрос как pchar в integer перевести ??


Игорь Шевченко   (2003-07-25 15:47:00) [6]


> brcc32.exe my.rc my.res
>
> {$I Mine.RI}
> {$R Mine.RES}


Так my.res или Mine.res ?


Игорь Шевченко   (2003-07-25 15:45:00) [7]


> MakeIntResource ("MAINICON"));


Бред. MakeIntResource пребразует целое число к Pchar


[lamer]Barmaglot   (2003-07-25 15:20:00) [8]

Заранее извиняюсь не профессионал я...

1. Мой пример работает?
2. Почему PChar(ID_Main_Icon)? Либо указать integer - тогда юзать MakeIntResoursr, либо указать строку - попробуй ID_Main_Icon взять в кавычки, без PChar.


McSimm2   (2003-07-25 15:10:00) [9]

Почему "MAINICON" ?
Если написать
LoadIcon (hInstance,MakeIntResource (PChar(ID_MAIN_ICON)));
то GetLastError пишет то же самое:
указанный тип ресурса в файле образа отсутствует


[lamer]Barmaglot   (2003-07-25 15:02:00) [10]

Может я и неправ но товарищь энциклопеда говорит следующее:

LoadIcon (hInstance,MakeIntResource ("MAINICON"));


McSimm2   (2003-07-25 14:53:00) [11]

---- my.rc
#include "my.rh"
ID_MAIN_ICON ICON mine.ico

---- my.rh
#define ID_MAIN_ICON 7

---- my.ri
const
ID_MAIN_ICON = 7;

brcc32.exe my.rc my.res

{$I Mine.RI}
{$R Mine.RES}


Игорь Шевченко   (2003-07-25 13:47:00) [12]

Наверное, стоит посмотреть, как объявлена ID_MAIN_ICON и эта...кода побольше привести...


McSimm2   (2003-07-25 13:42:00) [13]

"Указанный тип ресурса в файле ресурса отсутствует"
Мда..... приплыли


McSimm2   (2003-07-25 13:38:00) [14]

Да вроде программа по ошибке не вылетает, она нормально прокатывает и GetLastError и
hIcon := LoadIcon(hInstance, PChar(ID_MAIN_ICON));
но почему то hIcon из файла не грузит иконку в заголовок окна. Иконка появляется только в файле....


Игорь Шевченко   (2003-07-25 13:28:00) [15]

GetLastError ?


McSimm2   (2003-07-25 13:07:00) [16]

hIcon действительно 0, а почему ??


Игорь Шевченко   (2003-07-25 12:14:00) [17]

А где проверка на то, что hIcon не 0 ?


Наверх

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