![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 - это двоичные данные без типа