
ShowPropList()
**************


FUNKTION
========

   void ShowPropList(string *props);


DEFINIERT IN
============

   /std/thing/util.c


ARGUMENTE
=========

   props
        Array von Strings mit den Namen der Properties, die ausgegeben
        werden sollen.


BESCHREIBUNG
============

   Gibt die Inhalte der in props angegebenen Properties aus.


RUeCKGABEWERT
=============

   keiner


BEISPIELE
=========

   Sei test.c folgendes Programm:

   inherit "std/thing";
   inherit "std/thing/util";

   create() {
     ::create();

     SetProp(P_SHORT, "Kurz");
     SetProp(P_NAME, ({ "Name", "Namens", "Namen", "Namen" }));
     SetProp("me", this_object() );
   }

   Mit xcall test->ShowPropList( ({ P_SHORT, P_NAME, "me" }) ); erhielte
   man dann folgende Ausgabe:

   *short: "Kurz"
   *name: ({ "Name", "Namens", "Namen", "Namen" })
   *me: OBJ(/players/wargon/test#12345)


BEMERKUNGEN
===========

   Mit dem Befehl xprops des MGtools lassen sich uebrigens saemtliche
   Properties eines Objekte auf einen Schlag ausgeben.


SIEHE AUCH
==========

   /std/ting/util.c

Last modified: Wed May 8 10:25:26 1996 by Wargon
