Delphi World - Получить все имена ресурсов, что были загружены данным приложением
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Получить все имена ресурсов, что были загружены данным приложением

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

type
   TForm1 = class(TForm)
     Button1: TButton;
     Memo1: TMemo;
     procedure Button1Click(Sender: TObject);
   private
   end;

 var
   Form1: TForm1;

 implementation

 {$R *.dfm}

 function enumResNamesProc(module: HMODULE; restype, resname: PChar;
   list: TStrings): Integer; stdcall;
 begin
   if HiWord(Cardinal(resname)) <> 0 then
     list.Add('  ' + resname)
   else
     list.Add(Format('  #%d', [loword(Cardinal(resname))]));
   Result := 1;
 end;

 Function StockResourceType(restype: PChar): string;
 const
   restypenames: Array [1..22] of String =
     ( 'RT_CURSOR', //       = MakeIntResource(1); 
      'RT_BITMAP', //       = MakeIntResource(2); 
      'RT_ICON',   //       = MakeIntResource(3); 
      'RT_MENU',   //       = MakeIntResource(4); 
      'RT_DIALOG', //       = MakeIntResource(5); 
      'RT_STRING', //       = MakeIntResource(6); 
      'RT_FONTDIR',//       = MakeIntResource(7); 
      'RT_FONT',   //       = MakeIntResource(8); 
      'RT_ACCELERATOR',//   = MakeIntResource(9); 
      'RT_RCDATA', //       = MakeIntResource(10); 
      'RT_MESSAGETABLE',//  = MakeIntResource(11); 
      // DIFFERENCE = 11; 
      'RT_GROUP_CURSOR',// = MakeIntResource(DWORD(RT_CURSOR +7DIFFERENCE)); 
      'UNKNOWN',        // 13 not used 
      'RT_GROUP_ICON',  //   = MakeIntResource(DWORD(RT_ICON +DIFFERENCE)); 
      'UNKNOWN',        // 15 not used 
      'RT_VERSION',     // = MakeIntResource(16); 
      'RT_DLGINCLUDE',  // = MakeIntResource(17); 
      'UNKNOWN',
       'RT_PLUGPLAY',    // = MakeIntResource(19); 
      'RT_VXD',         // = MakeIntResource(20); 
      'RT_ANICURSOR',   // = MakeIntResource(21); 
      'RT_ANIICON'     // = MakeIntResource(22); 
    );
 var
   resid: Cardinal absolute restype;
 begin
   if resid in [1..22] then
     Result := restypenames[resid]
   else
     Result := 'UNKNOWN';
 end;


 function enumResTypesProc(module: HMODULE; restype: PChar; list: TStrings): Integer; stdcall;
 begin
   if HiWord(Cardinal(restype)) <> 0 then
     list.Add(restype)
   else
     list.Add(Format('Stock type %d: %s', [LoWord(Cardinal(restype)),
       StockResourcetype(restype)]));
   EnumResourceNames(module, restype, @enumResNamesProc, Integer(list));
   Result := 1;
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 begin
   memo1.Clear;
   if not EnumResourceTypes(hinstance, @enumResTypesProc, Integer(memo1.Lines)) then
     memo1.Lines.Add(Format('GetLastError= %8.8x', [GetLastError]))
   else
     memo1.Lines.Add('Successful');
 end;

 end.
Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования