QueryProperties()
=================

FUNKTION
--------
::

     mapping QueryProperties()

DEFINIERT IN
------------
::

     /std/thing/properties.c

ARGUMENTE
---------
::

     keine

BESCHREIBUNG
------------
::

     Diese Funktion liefert ein Mapping mit allen fuer das Objekt
     definierten Properties zurueck.

RUeCKGABEWERT
-------------
::

     Ein Mapping mit den Properties. Das Mapping hat folgenden Aufbau:
	([ name: wert; flags; set_method; query_method,
	   name2: ... ]);

BEMERKUNGEN
-----------
::

     - diese Funktion wird von restore_object() und save_object()
     - F_QUERY_METHODs und _query_'prop'()-Methoden haben keine Auswirkung
       auf die Wertefelder!

SIEHE AUCH
----------
::

     Aehnliches:	SetProp(L), QueryProp(L), Set(L), Query(L)
     Generell:		SetProperties(L) 
     Konzept:		properties, /std/thing/properties.c

1.Mai 2004 Gloinson

