PDA

Vollständige Version anzeigen : Schreibgeschützte Variable


smartic
17.03.2003, 09:26
Hallo Welt.

Gibt es die möglichkeit nachträglich eine Variable gegen Überschreibung zu schützen. Bedingung ist aber, dass beim ersten mal die Variable beschreibar ist. Danach sollte sie nicht mehr beschreiben werden können.

Ich danke

Alexander Jan Peters
17.03.2003, 10:54
<p>Hallo,

das geht nur, in dem Du die Variable kapselst, also nur einen Weg anbietest, um die Variable zu füllen. Dort prüfst Du dann, ob sie bereits gesetzt wurde.
Am Besten wird das wohl über eine Klasse (speichern als Klassenmodul DeineVariable) funktionieren:</p>
<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Option</span> <span class="TOKEN">Explicit</span>
<span class="TOKEN">Private</span> m_sDeineVariable <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Private</span> m_fGesetzt <span class="TOKEN">As</span> <span class="TOKEN">Boolean</span>
<span class="REM">'// Zum Testen:</span>
<span class="REM">'// Public Sub TestDeineVariable()</span>
<span class="REM">'// Dim clsDeineVariable As New DeineVariable</span>
<span class="REM">'// With clsDeineVariable</span>
<span class="REM">'// .Wert = &quot;1. Wert&quot;</span>
<span class="REM">'// Debug.Print .Wert</span>
<span class="REM">'// .Wert = &quot;2. Wert&quot;</span>
<span class="REM">'// Debug.Print .Wert</span>
<span class="REM">'// End With</span>
<span class="REM">'// End Sub</span>
<span class="TOKEN">Public</span> <span class="TOKEN">Property Get</span> Wert() <span class="TOKEN">As</span> <span class="TOKEN">String</span>
Wert = m_sDeineVariable
<span class="TOKEN">End</span> <span class="TOKEN">Property</span>
<span class="TOKEN">Public</span> <span class="TOKEN">Property Let</span> Wert(<span class="TOKEN">ByVal</span> sWert <span class="TOKEN">As</span> <span class="TOKEN">String</span>)
<span class="TOKEN">If</span> <span class="TOKEN">Not</span> m_fGesetzt <span class="TOKEN">Then</span>
m_sDeineVariable = sWert
m_fGesetzt = <span class="TOKEN">True</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">End</span> <span class="TOKEN">Property</span></pre></div>
<p>
Gruß

Alex</p>

smartic
17.03.2003, 11:28
Danke.