Wiele ikon w aplikacji

0

Chcę załadować w mojej aplikacji więcej ikon które mozna potem wykorzystać w skrucie do aplikacji poprzez wybranie mojej aplikacji i wybranie z wbudowanej bazy ikone.

Jak to zrobić w Delphi 7
(dodam że ikone potradie wybrać lecz chcę mieć ich więcej w aplikacji)

0
TomekMus napisał(a)

dodam że ikone potradie wybrać lecz chcę mieć ich więcej w aplikacji
czytaj o zasobach: http://4programmers.net/Delphi/Kompendium

0

Opisana tam metoda jest lekko mówiąc "toporna" skoro ma już przygotowane ikonki.

Utwórz dowolny plik z rozszerzeniem RC np. zasoby.rc dodaj go do projektu (Project -> Add To Project) i umieść w nim podobny do tego kod:

100 ICON "Res\icon1.ico"
101 ICON "Res\icon2.ico"

od tej pory za każdą kompilacją będzie kompilowany plik zasobów (ten w którym definiujesz min. właśnie ikonki) będziesz miał plik res (podobnie jak pas się kompilują do dcu to rc do res), wszystkie zasoby zawarte w tym pliku zostaną dołączone do pliku wynikowego (exe).

Jest to dużo lepsza metoda , bo aby coś zmienić nie trzeba za każdym razem ręcznie tworzyć pliku res.

0
  • po pierwsze nie RT_ICON ale ICON //widze ze w trakcie pisania mojego postu juz poprawiles
  • po drugie jak przypadkiem ma delphi 7 personal (tak jak ja) to delphi sam nie skompiluje na res - trzeba recznie
  • po trzecie moze uzywac metody jakiej chce ale i tak musi poczytac o zasobach
0
greenmag napisał(a)

-po drugie jak przypadkiem ma delphi 7 personal (tak jak ja) to delphi sam nie skompiluje na res - trzeba recznie
A tego nie wiedziałem w takim razie niestety pozostaje ręczna kompilacja za pomocą brcc32.exe :-/

0

OK Mam już wiele ikon w aplikacji tylko teraz jak przypisać odpowiednią dla aplikacji

Application.Icon:=?????????????

0

Masz przykład z jednego mojego programu. Wprawdzie zmienia on ikonkę w
Trayu, ale dla aplikacji to będzie po prostu Application.Icon.Handle := ...;

//...
procedure TMainForm.WczytajCzerwonaIkone;
var
  Ikonka : TIcon;
  ResName : PChar;
begin
  KtoraIkonka := 1;
  ResName := 'zzz_ikona1';
  Ikonka := TIcon.Create;
  Ikonka.Handle := LoadIcon(HINSTANCE, ResName);
  TrayIcon.ToolTip := 'Adres do pingowania nie odpowiada!';
  TrayIcon.Icon := Ikonka;
  Ikonka.Free;
end;

procedure TMainForm.WczytajZoltaIkone;
var
  Ikonka : TIcon;
  ResName : PChar;
begin
  KtoraIkonka := 2;
  ResName := 'zzz_ikona2';
  Ikonka := TIcon.Create;
  Ikonka.Handle := LoadIcon(HINSTANCE, ResName);
  TrayIcon.ToolTip := 'Problem z adresem do pingowania';
  TrayIcon.Icon := Ikonka;
  Ikonka.Free;
end;

procedure TMainForm.WczytajZielonaIkone;
var
  Ikonka : TIcon;
  ResName : PChar;
begin
  KtoraIkonka := 3;
  ResName := 'zzz_ikona3';
  Ikonka := TIcon.Create;
  Ikonka.Handle := LoadIcon(HINSTANCE, ResName);
  TrayIcon.ToolTip := 'Adres do pingowania odpowiada';
  TrayIcon.Icon := Ikonka;
  Ikonka.Free;
end;
0

Wystąpił mi problem z kompilacją zasobu ikon przez brcc32.exe:

ikona.rc
100 ICON ikona1.ico
101 ICON ikona2.ico

i odpalam tak
brcc32.exe ikona.rc

i mam taki komunikat:
Error ikon.rc 2 20: Allocate failed

Używam wersji brcc32.exe (v 5.40) - z Delphi 7 Professional

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