Version 6.0
SET RESOURCE PROPERTIES (ResTyp; ResNR; ResAttr{; ResDatei})
Parameter | Typ | Beschreibung | |
ResTyp | String | Ressourcentyp mit vier Zeichen | |
ResNR | Numerisch | Kennummer der Ressource | |
ResAttr | Numerisch | Neue Attribute für die Ressource | |
ResDatei | DokRef | Referenznummer der Ressourcendatei, | |
ohne Angabe aktuelle Ressourcendatei |
Beschreibung
Der Befehl SET RESOURCE PROPERTIES ändert die Attribute der Ressource vom Typ ResTyp und mit der Kennummer ResNR.
Gibt es die Ressource nicht, führt der Befehl nichts aus. Die OK Variable wird auf Null (0) gesetzt.
Übergeben Sie in ResDatei eine gültige Referenznummer für die Ressourcendatei, wird die Ressource nur in dieser Datei gesucht. Übergeben Sie ResDatei nicht, wird die Ressource in der aktuellen geöffneten Ressourcendatei gesucht.
Der in ResAttr übergebene numerische Wert ist ein Bit Feldwert, dessen Bits eine spezielle Bedeutung haben. 4D bietet folgende vordefinierte Konstanten:
Konstante | Typ | Wert |
System heap resource mask | Lange Ganzzahl | 64 |
System heap resource bit | Lange Ganzzahl | 6 |
Purgeable resource mask | Lange Ganzzahl | 32 |
Purgeable resource bit | Lange Ganzzahl | 5 |
Locked resource mask | Lange Ganzzahl | 16 |
Locked resource bit | Lange Ganzzahl | 4 |
Protected resource mask | Lange Ganzzahl | 8 |
Protected resource bit | Lange Ganzzahl | 3 |
Preloaded resource mask | Lange Ganzzahl | 4 |
Preloaded resource bit | Lange Ganzzahl | 2 |
Changed resource mask | Lange Ganzzahl | 2 |
Changed resource bit | Lange Ganzzahl | 1 |
Mit diesen Konstanten könne Sie einen beliebigen Wert für Ressourcenattribute einrichten. Siehe dazu folgende Beispiele.
Attribute für Ressourcen und deren Wirkung
System heap
Mit diesem Attribut wird die Ressource in den Systemspeicher anstatt in den 4D Speicher geladen. Verwenden Sie dieses Attribut nur, wenn Sie genau wissen, was Sie tun.
Purgeable
Mit diesem Attribut können Sie die Ressource nach dem Laden aus dem Speicher entfernen, wenn für andere Daten Speicherplatz benötigt wird. Da Sie Ressourcen in 4D BLOBs laden, empfiehlt es sich, alle eigenen Ressourcen entfernbar zu machen, um so den Speicherbedarf gering zu halten. Greifen Sie dagegen während einer Arbeitssitzung häufig auf eine Ressource zu, sollte sie nicht entfernbar sein. So verringern Sie den Zugriff auf die Festplatte, von der eine entfernte Ressource bei jedem Aufruf erneut geladen werden müßte.
Locked
Mit diesem Attribut können Sie die Ressource nach dem Laden in den Speicher nicht erneut setzen. Eine gesperrte Ressource können Sie nicht entfernen, selbst wenn sie entfernbar ist. Das Sperren einer Ressource hat den unerwünschten Nebeneffekt, dass der Speicherplatz fragmentiert wird. Verwenden Sie dieses Attribut nur, wenn Sie genau wissen, was Sie tun.
Protected
Mit diesem Attribut können Sie weder den Namen, noch die Kennummer noch den Inhalt der Ressource ändern. Sie können diese Ressource auch nicht mehr löschen. Dieses Attribut können Sie über den Befehl SET RESOURCE PROPERTIES entfernen; dann läßt sich die Ressource wieder ändern oder löschen. Dieses Attribut benötigen Sie nur selten.
Hinweis: Unter Windows hat dieses Attribut keine Auswirkung.
Preloaded
Mit diesem Attribut wird die Ressource automatisch in den Speicher geladen, wenn die dazugehörige Ressourcendatei geöffnet ist. Mit diesem Attribut optimieren Sie das Laden von Ressourcen bei geöffneter Ressourcendatei. Dieses Attribut benötigen Sie nur selten.
Changed
Mit diesem Attribut wird die Ressource mit "auf Festplatte sichern" markiert, wenn die dazugehörige Ressourcendatei geschlossen ist. Da der 4D Befehl SET RESOURCE das Schreiben und Neuschreiben von Ressourcen intern verwaltet, sollten Sie dieses Attribut nur verwenden, wenn Sie genau wissen, was Sie tun.
Normalerweise verwenden Sie das Attribut purgeable, in wenigen Fällen auch die Attribute Preloaded und Protected.
Warnung: Ändern Sie NICHT die Attribute von Ressourcen, die zu 4D oder anderen Systemdateien gehören. Das kann zu unerwünschten Systemfehlern führen.
Beispiele
1. Siehe Beispiel zum Befehl Get resource name.
2. Folgendes Beispiel macht die Ressource 'STR#' ID=17000 löschbar, und lässt die anderen Attribute unverändert:
$vlResAttr:=Get resource properties ('STR#';17000;$vhResFile) SET RESOURCE PROPERTIES('STR#';17000;$vlResAttr ? + Purgeable resource bit;$vhMyResFile)
3. Folgendes Beispiel macht die Ressource 'STR#' ID=17000 vorladbar und nicht löschbar:
SET RESOURCE PROPERTIES('STR#';17000;Preloaded resource mask;$vhResFile)
4. Folgendes Beispiel macht die Ressource 'STR#' ID=17000 vorladbar und löschbar:
SET RESOURCE PROPERTIES('STR#';17000;Preloaded resource mask +Purgeable resource mask;$vhResFile)
Referenz
Systemvariablen oder Mengen
Ist die Ressource vorhanden, wird OK auf 1 gesetzt, sonst auf 0 (Null).