Seite 1 von 1

Verfasst: 12.01.2007 14:07
von winduff
Ich denke das könnte schon der Übersicht dienen... sofern es so funktioniert wie es soll :)

Kann man auch (optional) variablen aus der CodeSection ans Hauptprogramm übergeben?

Verfasst: 12.01.2007 14:09
von AND51
Sirhc.ITI hat geschrieben:Wen man z.B. nicht so viel verschiedene variablen benutzen will und nur mal eben eine "temporäre Variable" brauch ohne eine procedure aufzurufen/erstellen.
Sirhc.ITI hat geschrieben:

Code: Alles auswählen

Procedure CodeSection_0() 
...
EndProcedure
Ich dachte, du wolltest das ohne Procedures lösen?

Verfasst: 12.01.2007 15:20
von NicTheQuick
@AND51:
Immer noch nicht ausgeschlafen? :)

Sirhc.ITI hat einen kleinen Precomiler geschrieben, der automatisch
Procedures schreibt, damit man sie nicht selbst umständlich schreiben muss.

@Sirhc.ITI:
Allerdings hab ich ein Problem entdeckt. Ich hab es aber nicht getestet.
Vielleicht ist es auch keins.

Include-File blubb.pbi

Code: Alles auswählen

Test = 12345

!CodeSection
   Test.l = 9999
   Debug "Test.l in der CodeSection: "+Str(Test)
!EndCodeSection
main.pb

Code: Alles auswählen

Global Test.l
IncludeFile "blubb.pbi"
Debug "Test.l ausserhalb der CodeSection: "+Str(Test)
Das ist natürlich ein blödes Beispiel. Aber ich will dich nur darauf
hinweisen, dass du den Code innerhalb deiner CodeSections nach
Variablen, Arrays und LinkedLists scannen und diese dann als Protected
deklarieren solltest, damit blubb.pbi später so aussieht:

Code: Alles auswählen

Procedure CodeSection_0()
   Protected Test.l ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
   Test = 9999
   Debug "Test.l in der CodeSection: "+Str(Test)
EndProcedure

Test.l = 12345

CodeSection_0()

Verfasst: 12.01.2007 15:25
von AND51
Etwas zu tun ohne eine Procedure zu erstellen sagt mir persönlich so viel wie: "Mach das, aber ohne das du ein einziges mal 'Procedure/EndProcedure' verwendest!"

Trotzdem ist die Idee sehr gut!
Ich wollte früher auch mal sowas haben, zu Zeiten, als man Variablen nicht direkt beim definieren Werte zu weisen konnte.

"BeginGlobal" und "EndGlobal" wäre für mich sehr praktisch gewesen.

Verfasst: 12.01.2007 18:51
von Leonhard
Funzt das auch mit Pointern?