resfactory.xml 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <fpdoc-descriptions>
  3. <package name="fcl-res">
  4. <!--
  5. ====================================================================
  6. resfactory
  7. ====================================================================
  8. -->
  9. <module name="resfactory">
  10. <short>Contains a factory class for resources</short>
  11. <descr>
  12. <p>This unit contains a factory class that provides an easy way to create resources of the right class.</p>
  13. <p>Resource classes can be registered with <link id="TResourceFactory"/> so that the class knows how to create a resource of a specific type.</p>
  14. </descr>
  15. <!-- unresolved type reference Visibility: default -->
  16. <element name="Classes">
  17. </element>
  18. <!-- unresolved type reference Visibility: default -->
  19. <element name="SysUtils">
  20. </element>
  21. <!-- unresolved type reference Visibility: default -->
  22. <element name="resource">
  23. </element>
  24. <!-- object Visibility: default -->
  25. <element name="EResourceFactoryException">
  26. <short>Base class for resource factory-related exceptions</short>
  27. </element>
  28. <!-- object Visibility: default -->
  29. <element name="EResourceClassAlreadyRegisteredException">
  30. <short>A resource class for a given type has already been registered</short>
  31. <descr>
  32. <p>This exception is raised by class method <link id="TResourceFactory.RegisterResourceClass">RegisterResourceClass</link> of <link id="TResourceFactory"/> when an attempt is made to register a class for an already registered type.</p>
  33. </descr>
  34. <seealso>
  35. <link id="TResourceFactory.RegisterResourceClass"/>
  36. </seealso>
  37. </element>
  38. <!-- resource string Visibility: default -->
  39. <element name="SAlreadyRegistered">
  40. </element>
  41. <!-- object Visibility: default -->
  42. <element name="TResourceFactory">
  43. <short>Factory class for resources</short>
  44. <descr>
  45. <p>Resources are represented by descendants of <link id="resource.TAbstractResource">TAbstractResource</link>. Some applications don't need specialized resource classes, and a <link id="resource.TGenericResource">TGenericResource</link> can be enough. On the other hand, sometimes it is required that a resource of a specific type is created with a more specialized class. This class provides a centralized point for the creation of resources.</p>
  46. <p><link id="TResourceFactory"/> holds a list of registered classes with an associated resource type. When it is requested to create a resource for a given type, it creates a resource of the class associated with that type. If no class matching that type is found, <link id="resource.TGenericResource">TGenericResource</link> is used.</p>
  47. <p>Usually each resource class registers itself in the <var>initialization</var> section of the unit in which it is implemented.</p>
  48. </descr>
  49. <seealso>
  50. <link id="TResourceFactory.RegisterResourceClass"/>
  51. <link id="TResourceFactory.CreateResource"/>
  52. <link id="resource.TAbstractResource">TAbstractResource</link>
  53. <link id="resource.TGenericResource">TGenericResource</link>
  54. </seealso>
  55. </element>
  56. <!-- procedure Visibility: public -->
  57. <element name="TResourceFactory.RegisterResourceClass">
  58. <short>Registers a resource class</short>
  59. <descr>
  60. <p>This class method registers a resource class for the given resource type.</p>
  61. </descr>
  62. <errors>
  63. <p>If a class has already been registered for the given resource type, an <link id="EResourceClassAlreadyRegisteredException"/> exception is raised.</p>
  64. </errors>
  65. <seealso>
  66. <link id="TResourceFactory"/>
  67. </seealso>
  68. </element>
  69. <!-- argument Visibility: default -->
  70. <element name="TResourceFactory.RegisterResourceClass.aType">
  71. <short>The type associated to the resource class</short>
  72. </element>
  73. <!-- argument Visibility: default -->
  74. <element name="TResourceFactory.RegisterResourceClass.aClass">
  75. <short>The resource class to register</short>
  76. </element>
  77. <!-- function Visibility: public -->
  78. <element name="TResourceFactory.CreateResource">
  79. <short>Creates a new resource</short>
  80. <descr>
  81. <p>This class method creates a new resource of the class associated with the given type, and sets its name and type based on the values passed as parameters.</p>
  82. <p>If no class matching the given type is found, the resource is created with <link id="resource.TGenericResource">TGenericResource</link> class.</p>
  83. </descr>
  84. <seealso>
  85. <link id="TResourceFactory"/>
  86. <link id="TResourceFactory.RegisterResourceClass"/>
  87. <link id="resource.TGenericResource">TGenericResource</link>
  88. </seealso>
  89. </element>
  90. <!-- function result Visibility: default -->
  91. <element name="TResourceFactory.CreateResource.Result">
  92. <short>A new resource</short>
  93. </element>
  94. <!-- argument Visibility: default -->
  95. <element name="TResourceFactory.CreateResource.aType">
  96. <short>The type of the resource to create</short>
  97. </element>
  98. <!-- argument Visibility: default -->
  99. <element name="TResourceFactory.CreateResource.aName">
  100. <short>The name of the resource to create</short>
  101. </element>
  102. </module> <!-- resfactory -->
  103. </package>
  104. </fpdoc-descriptions>