Seite 2 von 2

Verfasst: 27.12.2005 22:20
von ullmann
@konne

Mit deftype stehen die Variablen in der Autovervollständigen-Liste des Editors drin, das ist für mich ein Vorteil.

Wenn ich anzsuche und loesung nicht im Hauptprogramm, sondern in rechnung() definiere, ist deren Wert innerhalb suche() oder addloesung() korrekt, aber am Ende, in rechnung(), werden diese Variablen in Text gewandelt (Variable statistik) und die Anzeige lautet "0 Bewegungen, 0 Lösungen". Also der Inhalt der Variablen geht verloren, obwohl suche() und addloesung() logisch Subprozeduren von rechnung() sind und ich mit shared den Zugriff freigebe. Beim Compilieren erkennt der Compiler vielleicht die Zusammenhänge nicht, da addloesung() und suche() weiter oben als rechnung() stehen. Und declare (habe ich versuchen wollen) bezieht sich auf Prozedurnamen und Parameter, aber nicht rein auf Variablen. Es klappt also nur so, wie in meinem geposteten Code, obwohl ich nicht weiß, warum.

Rainer

Verfasst: 27.12.2005 22:54
von ts-soft
Ich verstehe sowieso nicht so ganz, was Du da so bezwecken willst. Warum übergibst Du die Variablen nicht als Parameter an die Proceduren, dann kannste Dir das ganze Shared usw. sparen.

Verfasst: 27.12.2005 23:44
von ullmann
@ts-soft

Da es bei einigen Prozeduren recht viele Variablen als Parameter wären, würde mir die Zeile des Aufrufes zu lang, sie ist manchmal schon weit eingerückt, dann der Prozedurname und dann noch die ganzen Variablen (im Listung oben steht ja nur ein kleiner Auszug), das ist mir zu lang.
So sind die Zeilen kürzer und auf die rechte Seite passt noch ein kleiner Kommentar.

Übrigens stimmt beim Weglassen von Shared dann die Rückgabe nicht mehr, da die Prozedur nur einen Rückgabewert haben kann, ich aber mehrere Zähler in den Prozeduren erhöhe.

Rainer

Verfasst: 27.12.2005 23:54
von ts-soft
Dann noch ein Vorschlag:

Code: Alles auswählen

Structure MyVariables
  grafik.b
  loesung.l
  anzsuche.l
EndStructure

Global var.MyVariables
Jetzt haste zwar globale Variabeln, aber durch die Struktur sollten Verwechslungen mit normalen Variablen ausgeschlossen sein.

Verfasst: 28.12.2005 00:06
von ullmann
@ts-soft

Ja, das ist auch eine Idee. Danke. Aber da kann ich auch bei Deftype im Hauptprogramm und Shared in den Prozeduren bleiben, Tippaufwand und Übersichtlichkeit finde ich gleichwertig. Trotzdem danke, deine Variante merke ich mir, falls ich sie mal wirklich brauche.

Rainer