Seite 1 von 1

Frage zu Structuren und Proceduren

Verfasst: 04.02.2013 14:57
von KeyKon
Ich bin seit langem mal wieder an einem etwas größeren Projekt in PB dran und wollte es recht Übersichtlich halten.
Nun einige Grundlegende Fragen, ich weis nicht ob ich mich blöd anstell oder ob es einfach nicht unterstützt wird:
- Ist es möglich strukturierte Variablen an Prozeduren zu übergeben?
- Ist es möglich eine strukturiere Variable mit ProcedureReturn zurückzugeben?
- Ist es möglich nur Referenzen von Strukturen/Variablen zu übergeben, damit man quasi direkt auf den Variablen arbeiten kann und sie nicht wieder zurückgeben muss?

Mich würde Grundlegend interessieren ob das geht oder wenn nicht, wie ihr solche Sachen regelt.
Hab zuletzt eben viel in OOP Sprachen gemacht, da eignet man sich doch ein etwas anderes denken an was die Strukturierung des Codes angeht^^

LG KeyKon

Re: Frage zu Structuren und Proceduren

Verfasst: 04.02.2013 15:04
von NicTheQuick
Letzteres geht:

Code: Alles auswählen

Structure bla
	a.i
	b.i
EndStructure

Procedure blubb(*var.bla)
	*var\a + *var\b
	*var\b = 2
EndProcedure

Define.bla foo

foo\a = 4
foo\b = 3

blubb(foo)  ;oder blubb(@foo)

Debug foo\a
Debug foo\b

Re: Frage zu Structuren und Proceduren

Verfasst: 04.02.2013 15:08
von ts-soft
- Ist es möglich eine strukturiere Variable mit ProcedureReturn zurückzugeben?
Nein, man kann nur den Pointer zurückgeben.

Die restlichen Fragen sollten mit diesem Beispiel erklärt sein:

Code: Alles auswählen

EnableExplicit

Structure KeyKon
  member1.i
  member2.string
  member3.f
EndStructure

Procedure Foo(*bla.KeyKon)
  Debug *bla\member1
  Debug *bla\member2\s
  Debug *bla\member3
  
  *bla\member1 = 1
  *bla\member2\s = "Text aus Foo"
  *bla\member3 = 2 * #PI
EndProcedure

Define test.KeyKon
test\member1 = 4711
test\member2\s = "Dies ist ein Test"
test\member3 = #PI

Foo(@test)
Debug ""
Debug test\member1
Debug test\member2\s
Debug test\member3

Gruß
Thomas

/ NicTheQuick war schneller

Re: Frage zu Structuren und Proceduren

Verfasst: 04.02.2013 15:19
von KeyKon
Danke euch beiden für die megaschnelle Antwort!
Genau das hab ich gesucht!