zapisywanie do zasobów

0

Czy podpowie mi ktoś jak można zapisać np. ikonę w moim pliku *.exe ale już po kompilacji? Chodzi mi o program, który potrafi dodawać ikonę do zasobów - swoich lub ewentualnie do innego programu. Natknąłem się na TResourceStream. Czy tego trzeba użyć? Tylko tym chyba nie da się zapisywać uruchomionego programu. Proszę o jakieś wskazówki. Z góry dzięki.

0

Jest artukulik na ten tamet i to bylo juz poruszane na forum poszukaj :) bona 99% bylo :)

0

Co to artykułu na ten temat to nie jestem pewien.

Tu masz przykład na dodanie bitmapki - chyba sobie poradzisz z zamianą na ikonę:

var
  hUpdateRes: THandle;
  Done: Boolean;
  Res: TResourceStream;
begin
  Res := TResourceStream.Create(hinstance, 'BITMAP1', RT_BITMAP);
  hUpdateRes := BeginUpdateResource(PCHAR('c:\Project1.exe'), FALSE);
    if hUpdateRes = NULL then
      memo1.Lines.Add('Błąd');
  Done := UpdateResource(hUpdateRes, RT_BITMAP, 'BITMAP3', LANG_NEUTRAL, Res.Memory, Res.Size);
    if Done = False then
      memo1.Lines.Add('Nie udalo sie zrobic update`a');
  if (not EndUpdateResource(hUpdateRes, FALSE)) then
    memo1.Lines.Add('tu znowu jakis blad');
end;

A poza tym wszystko znajdziesz w WSDK i MSDN.

0

Tylko, że ten kod ma dwie wady:

  1. Działa tylko na win 2000 i wyższych
  2. Nie działa dla ikonek... :P mam na myśli oczywiście sytuację po zamianie RT_BITMAP na RT_ICONGROUP, itd :P.

W pakiecie madcollection jest gdzieś moduł do zasobów, który ponoć sobie z tym radzi - http://madshi.net .

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