Listicongadget langsam füllen

Anfängerfragen zum Programmieren mit PureBasic.
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Beitrag 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
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Beitrag 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
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Beitrag 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
Antworten