Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

rc файлы


sergeyst ©   (2007-02-27 12:28:00) 

Привет!
Хочу написать библиотеку для CAD системы. Смотрю примеры и не могу разобраться с синтаксисом rc файлов. F1 ответа не дает. Привожу отрывки кода:
библиотека:
// головная функция библиотеки
//---
procedure  LIBRARYENTRY( comm : Word  );  pascal;
begin
 if ( ksGetCurrentDocument( 1 ) 0 ) then
   case comm of
     1: Intersect2Line;        //ïåðåñå÷ü ïðÿìûå
     2: Intersect2Curve;       //ïåðåñå÷ü êðèâûå
     3: IntersectLineSegArc;   //ïåðåñå÷ü îòðåçîê è äóãó
     4: TanLinePointAndCircle; //êàñàòåëüíàÿ èç òî÷êè
     5: TanLineCircle;         //êàñàòåëüíàÿ ïîä óãëîì
     6: RotatePoint;           //ïîâîðîò òî÷êè
     7: SymmetryPoint;         //ñèììåòðèÿ òî÷êè
     8: Couplin2Lines;         //ñîïðÿãàþùèå îêðóæíîñòè ê äâóì ïðÿìûì
     9: BuildPerpendicular;    //ïåðåïåíäèêóëÿ&# 240;
   end {case}
 else
   ksMessage( 'Äîêóìåíò íå àêòèâèçèðîâàí èëè' +#13#10+ 'íå ÿâëÿåòñÿ ëèñòîì/ôðàãìåíòîì' );

end;

rc файл:
#ifndef __STEP2_RH
#include "step2.rh"
#endif

/////////////////////////////////////////////////////////////////////////////
// меню
//
IDR_LIBID MENU DISCARDABLE //
BEGIN
 MENUITEM "Ïåðåñå÷ü ïðÿìûå",                      1
 MENUITEM "Ïåðåñå÷ü êðèâûå",                      2
 MENUITEM "Ïåðåñå÷ü îòðåçîê è äóãó",              3
 MENUITEM "Êàñàòåëüíàÿ  èç òî÷êè",                4
 MENUITEM "Êàñàòåëüíàÿ  ïîä óãëîì",               5
 MENUITEM "Ïîâîðîò òî÷êè",                        6
 MENUITEM "Ñèììåòðèÿ òî÷êè",                      7
 MENUITEM "Ñîïðÿãàþùèå îêðóæíîñòè ê äâóì ïðÿìûì", 8
 MENUITEM "Ïåðåïåíäèêóëÿ& #240; ê îòðåçêó",             9
END

/////////////////////////////////////////////////////////////////////////////
// Ñòðîêè
//
STRINGTABLE DISCARDABLE
BEGIN
 IDR_LIBID  "Ìàòåìàòèêà"  // Èìÿ áèáëèîòåêè
END

/////////////////////////////////////////////////////////////////////////////
// Èíñòðóìåíòàëü&# 237;ûå ïàíåëè
//

// Îïðåäåëåíèå èìåíè ïàíåëåé
STRINGTABLE
{
 COMPACT_BAR1 "Êîìïàêòíàÿ ïàíåëü Ìàòåìàòèêà"
 BAR_1        "Èíñòðóìåíòàëü& #237;àÿ ïàíåëü 1"
}

// Îïðåäåëåíèå ñîñòàâà
COMPACT_BAR1 RCDATA
{
 BAR_1        // Èíñòðóìåíòàëü&# 237;àÿ ïàíåëü, âõîäÿùàÿ â êîìïàêòíóþ
 END_OF_RESOURCE_TABLE
}

// Îïðåäåëåíèå ñîñòàâà ïàíåëè
BAR_1 RCDATA
{
 1 // Ïåðåñå÷ü ïðÿìûå
 2 // Ïåðåñå÷ü êðèâûå
3 // Ïåðåñå÷ü îòðåçîê è äóãó
4 // Êàñàòåëüíàÿ èç òî÷êè
5 // Êàñàòåëüíàÿ ïîä óãëîì
6 // Ïîâîðîò òî÷êè
7 // Ñèììåòðèÿ òî÷êè
8 // Ñîïðÿãàþùèå îêðóæíîñòè ê äâóì ïðÿìûì
9 // Ïåðåïåíäèêóëÿ&# 240;
END_OF_RESOURCE_TABLE
}

BAR_1 ICON DISCARDABLE "bar1.ico"

// это я знаю что такое
1001 BITMAP "1.bmp"
1002 BITMAP "2.bmp"
1003 BITMAP "3.bmp"
1004 BITMAP "4.bmp"
1005 BITMAP "5.bmp"
1006 BITMAP "6.bmp"
1007 BITMAP "7.bmp"
1008 BITMAP "8.bmp"
1009 BITMAP "9.bmp"

Объясните, что обозначают всякие DISCARDABLE, STRINGTABLE, RCDATA и как они(ресурсы) попадают в нужное место(как их вызывают)?


Юрий Зотов   (2007-02-27 13:33:00) [1]

http://msdn2.microsoft.com/en-us/library/aa381042.aspx


Desdechado   (2007-02-27 13:26:00) [2]

Все ресурсы достаются по типу+имя/номер.

> А это что такое а-ля С?
А это для компилятора ресурсов заголовочные файлы, необходимые для компиляции.


sergeyst   (2007-02-27 13:12:00) [3]


> #ifndef __STEP2_RH
> #include "step2.rh"
> #endif

А это что такое а-ля С?

Вызывающая прога должна как-нибудь запрашивать идентификаторы ресурсов?


Fredy314   (2007-02-27 12:45:00) [4]

DISCARDABLE - ресурс можно выгружать если он не нужен, для освобождения ресурсов РС.


Desdechado   (2007-02-27 12:35:00) [5]

STRINGTABLE - это просто список строк
RCDATA - это двоичные данные без типа


Наверх

Титульная страница Поиск, карта сайта Написать письмо