[Delphi] Dodawanie ikon aplikacjom konsolowym. Wykonalne?

0

W jaki sposób w Delphi 7 można dodać aplikacji konsolowej ikonę? Przez menu Project->options nie da rady, bo opcja ta jest niedostępna.

Edytowałem swój program Resource Hackerem i wrzuciłem mu zasób (.res) IconGroup, ale zgodnie z przewidywaniami zamiast efektu zamierzonego, zwiększyłem tylko rozmiar programu o niecały kilobajt ;]

Owszem, można napisać drugi program okienkowy, ukryć formę i wywołać konsolowy, ale gość rzuci okiem na kod źródłowy, a ja chcę by to ładnie wyglądało i cwanie :)

Służy do tego może jakaś dyrektywa kompilatora czy cały poemat składający się z iluś tam linii kodu? Może jakiś moduł?

0

Szczerze pisząc to ja zawsze dla aplikacji konsolowej robie tak, że otwieram osobno formatkę dla
programu okienkowego, ustawiam żądaną ikonę i zapisuje na chwilę cały projekt po czym kopiuje
pod odpowiednią nazwą plik project1.res i w kodzie aplikacji konsolowej dodaje dyrektywę {$R *.res}.
Po czym zostawiam też w katalogu projektu aplikacji konsolowej ikonkę w postaci pliku *.ico. Ale jak
to Tobie nie odpowiada to możesz zrobić tak: stworzyć plik nazwa_twojego_programu.rc a w nim dać
taki wpis jak poniżej, po czym skompilować plik przy użyciu brcc32.exe z podkatalogu BIN. A potem
w kodzie wystarczy wspomniana wcześniej dyrektywa {$R *.res}, plik rc ma wyglądać w taki sposób:

MAINICON icon "nazwa_pliku.ico"

Ważne jest aby nazwa zaosbu (na pierwszym miejscu) była właśnie zapisana tylko wielkimi literami.

0

Wielka dziękówa. Patrz jak się cieszę: [rotfl]

0
olesio napisał(a)

Ważne jest aby nazwa zaosbu (na pierwszym miejscu) była właśnie zapisana tylko wielkimi literami.

Nie jest to istotne, wazne jest aby ikona byla dopisana jako pierwsza (ustawiona w katalogu zasobow jako ikona ktora jest widoczna w delphi jako pierwsza - ale nie musi to byc regula).

Zatem wystarczy dowolna nazwa (moze byc cyfra, potem odwolanie do zasobu w stylu PChar(100) ) jesli to jedyna ikona w przypadku delphi (to aby obalic pozniej tworzace sie mity).

0

Może jest i tak jak piszesz, ale ja pod Delphi 7 próbowałem w pliku .rc nadać inną nazwę i się nie udało.

0

D7

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;
{$R ex.res}
begin
  { TODO -oUser -cConsole Main : Insert code here }
end.

zasoby w ex.rc, res zrobiony za pomoca brcc32 ex.rc

blaaa ICON 
{
 '00 00 01 00 01 00 20 20 10 00 00 00 00 00 E8 02'
 '00 00 16 00 00 00 28 00 00 00 20 00 00 00 40 00'
 '00 00 01 00 04 00 00 00 00 00 80 02 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 80 00 00 80 00 00 00 80 80 00 80 00'
 '00 00 80 00 80 00 80 80 00 00 80 80 80 00 C0 C0'
 'C0 00 00 00 FF 00 00 FF 00 00 00 FF FF 00 FF 00'
 '00 00 FF 00 FF 00 FF FF 00 00 FF FF FF 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 00 00 00 BB BB BB 00 00 00 00 00 00'
 '00 00 00 00 00 00 0B BB BB BB B0 00 00 00 00 00'
 '00 00 00 00 00 0B BB BB BB BB BB B0 00 00 00 00'
 '00 00 00 00 00 0B BB BB BB BB BB B0 00 00 00 00'
 '00 00 00 00 00 BB BB BB BB BB BB BB 00 00 00 00'
 '00 00 99 99 9B BB BB BB BB BB BB BB B0 00 00 00'
 '00 99 99 99 9B BB BB BB BB BB BB BB B0 00 00 00'
 '09 99 99 99 9B BB BB BB BB BB BB BB B0 00 00 00'
 '09 99 99 99 9B BB BB BB BB BB BB BB B0 00 00 00'
 '99 99 99 99 9B BB BB BB BB BB BB BB B0 00 00 09'
 '99 99 99 99 99 BB BB BB BB BB BB BB 00 00 00 09'
 '99 99 99 99 99 9B BB BB BB BB BB B0 00 00 00 09'
 '99 99 99 99 99 9B BB BB BB BB BB B0 00 00 00 09'
 '99 99 99 99 99 99 9B BB BB BB B0 00 00 00 00 09'
 '99 99 99 99 99 99 99 BB BB BB 00 00 00 00 00 09'
 '99 99 99 99 99 99 99 00 00 00 00 00 00 00 00 00'
 '99 99 99 99 99 99 90 00 00 00 00 00 00 00 00 00'
 '09 99 99 99 99 99 00 00 00 00 00 00 00 00 00 00'
 '09 99 99 99 99 99 00 00 00 00 00 00 00 00 00 00'
 '00 99 99 99 99 90 00 00 00 00 00 00 00 00 00 00'
 '00 00 99 99 90 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF'
 'FF FF FF FF C0 FF FF FF 80 7F FF FE 00 1F FF FE'
 '00 1F FF FC 00 0F FF 00 00 07 FC 00 00 07 F8 00'
 '00 07 F8 00 00 07 F0 00 00 07 E0 00 00 0F E0 00'
 '00 1F E0 00 00 1F E0 00 00 7F E0 00 00 FF E0 00'
 '00 3F F0 00 00 3F F8 00 00 1F F8 00 00 0F FC 00'
 '00 0F FF 00 00 0F FF F0 00 0F FF F0 00 0F FF F0'
 '00 0F FF F8 00 1F FF FC 00 3F FF FC 00 3F FF FF'
 '00 FF FF FF 81 FF FF FF FF FF FF FF FF FF'
}

ikonka sie pojawia

1 użytkowników online, w tym zalogowanych: 0, gości: 1