Ikonka dla plików *.exe (PASCAL)

Napisałem program w Pascalu i chcę zmienić jego ikonkę, ponieważ standardowa ikonka plików *.exe po prostu nie pasuje. Przeczytałem kilka kursów Pascala, książkę, ale tam niema o tym ani słowa. Czy można takie coś wykonać? Jeżeli tak to proszę o umieszczenie tutaj kodu, który by to umożliwiał.

Hmmm, mozesz zrobic cos takiego: tworzysz skrot do tego programu co napisales w Pascalu, potem klikasz na niego prawy przyciskiem i wybierasz wlasciwoswci. Nastepnie klikasz na zmien ikone i wybierasz plik ikony (*.ico)

W Turbo Pascalu nie da się zmienić ikony dla plików wykonywalnych. Są to przecież 16-bitowe programy przeznaczone dla DOS-a, a wtedy nie było ikon…

// Ryan: Masz rację (nie załamuj rąk) - ale z doświadczenia wiem, że prawie na pewno chodzi o TP.

Ręce mi opadają. Zależy w jakim Pascalu. Pytanie WCALE nie było o TP. Free Pascal pozwala na umieszczenie ikony w pliku EXE pod Windows (PE). Tylko o jaki kompilator paszczaka jest pytanie? Najwyraźniej zbyt trudno przeczytać przyklejony temat i zapytać sensownie.

Nie wiedziałem że kompilator ma jakieś znaczenie! Ale niestety tak jak się Nemhein domyślił używam Turbo Pascala, więc tego nie wykonam. A nie wiecie skąd mogę pobrać Free Pascala? I jaki jest ten kod, aby zmienić ikonkę programowi?

Późniejsze wersje TP i BP miały możliwość kompilowania aplikacji konsolowych i okienkowych pod Windows. Jeśli uda Ci się to zaprzęgnąć do pracy (strasznie topornie to działało) to możesz umieścić w aplikacji ikonkę. Upewnij się, że Twoja wersja wspiera aplikacje pod Windows. Najlepsze co jednak możesz zrobić to przesiąść się na Free Pascala.

Serio? Nie wiedziałem. Jak to zrobić?

PS. Mam FreePascal’a 2.0.4

FP jest w jakimś tam stopniu kompatybilny z Delphi. Jaka by ta kompatybilność nie była - jeśli tworzysz aplikację Win32 musisz mieć możliwość odwołania się do WinAPI. A to z kolei wymusza na aplikacji posiadanie zasobów (resources). Czy może inaczej - marne byłoby to wsparcie dla WinApi we FP gdyby nie było zasobów. Ikonki są właśnie w zasobach. Przeszukaj katalog z binariami FP, powinno być coś takiego jak resource compiler (rc? fprc? resc? rescomp?). Przy jego pomocy możesz stworzyć (najczęściej) liba, który dołączony do aplikacji nada jej ikonkę widzianę w eksplorerze.

A tak w materii oftopu - każdy program, nawet dosowy może mieć ikonkę. Jestem przekonany, że można spreparować plik wykonywalny windowsa (PE) w taki sposób, by w Windowsie widoczna była ikonka a w dosie pojawiało się coś więcej niż “This program requires Microsoft Windows”. Tylko po co? :slight_smile:

W katalogu FPC\Bin\i386-win32 najbardziej podobne jest fprcp.exe

Pan Internet mówi, że program to windres (lol). Jak nie masz go z FPC to możesz pobrać z sieci. Alternatyw jest sporo, np. GoRC (z godevtool.com).

Recepta:

  • tworzysz plik costam.rc

  • wpisujesz w nim: 50h ICON “ikonka.ico”

  • uruchamiasz kompilator zasobów (np. przez GoRC /r costam.rc albo windres costam.res costam.rc)

  • powstanie plik costam.res

  • za dyrektywami uses wpisujesz w nowej linii: {$r costam.res}

zapisałem ikonę ikona.ico i plik bla.rc (w nim: 50h ICON “ikona.ico”) w folderze z plikiem windres.exe, uruchomiłem go, wpisałem:

robiłem ze spacją i potem [ENTER]

potem z [ENTER]em pomiędzy

i plik nie powstał

Jakiś komunikat błędu? Uruchom windres --help żeby się przekonać jakie są poprawne parametry. Ja się sugerowałem dokumentacją stąd:

http://www.gnu.org/software/binutils/ma … ls_12.html

windres opcje wejście wyjście

Coś mam chyba skopane. Bo wpisywałem:

--help

-- help

-help

- help

windres --help

i kompletnie nic się nie działo, tylko kursor przechodził do następnej linii