Seite 1 von 1

Strukturen Globalisieren? [Gelößt]

Verfasst: 04.08.2011 22:08
von Raphi
HI ich habe ein kleines Problem mit den Variablen.

Ich habe eine Struktur verwendet.

Code: Alles auswählen

Structure P1
  x.b
  y.b
EndStructure
Dieser wir in einer Prozedur ein Wert zugewiesen.

Code: Alles auswählen

Procedure CheckFolge()
  
  If Squadrat = 1
    
    Point1.P1\x = Check1X
    Point1.P1\Y = Check1Y
    
  EndIf
  
EndProcedure
Und in der nächsten Prozedur wird dieser Wert dann benötigt um einen Weg zu zeichnen.

Aber der Wert wird nicht übernommen und wenn ich versuche die Variable zu globalisieren kommt folgender Fehler:

Variable already decleart with another type: Point1

Was kann ich da tun?

Re: Strukturen Globalisieren?

Verfasst: 04.08.2011 22:17
von ts-soft
Wenn Du mal den Code zeigen würdest, der diese Fehlermeldung ausgibt. Ausserdem möchte ich Dir
EnableExplicit ans Herz legen, dann kannste zumindest mit Variablen nicht mehr so viel verkehrt machen :wink:

Code: Alles auswählen

EnableExplicit

Structure P1
  x.b
  y.b
EndStructure 

Global Point1.P1

Procedure CheckFolge()
  Protected Squadrat, Check1X, Check1Y
  If Squadrat = 1
   
    Point1.P1\x = Check1X
    Point1.P1\Y = Check1Y
   
  EndIf
 
EndProcedure 

Re: Strukturen Globalisieren?

Verfasst: 04.08.2011 22:25
von Raphi
Danke klappt jetzt wunderbar :D :allright:
ts-soft hat geschrieben:Wenn Du mal den Code zeigen würdest, der diese Fehlermeldung ausgibt.

Procedure CheckFolge()
Protected Squadrat, Check1X, Check1Y
If Squadrat = 1

Point1.P1\x = Check1X
Point1.P1\Y = Check1Y

EndIf

EndProcedure
Das Blaue war markiert als die Fehlermeldung kam.

(Werd nächstes mal dran denken)

Re: Strukturen Globalisieren?

Verfasst: 04.08.2011 22:35
von ts-soft
Raphi hat geschrieben:Das Blaue war markiert als die Fehlermeldung kam.

(Werd nächstes mal dran denken)
Das meinte ich nicht, bzw. nutzt nichts, weil:

Code: Alles auswählen

Structure P1
  x.b
  y.b
EndStructure 

Procedure CheckFolge()
  Protected Squadrat, Check1X, Check1Y
  If Squadrat = 1
  
    Point1.P1\x = Check1X
    Point1.P1\Y = Check1Y
  
  EndIf

EndProcedure 
gibt ja ohne enableexplicit keine Fehlermeldung, also der verursachende Teil fehlt irgendwie.

Code immer so weit kürzen, das er ausführbar bleibt und die Fehlermeldung noch kommt!
Ist oft mit Arbeit verbunden, aber das ist meist unbedingt erforderlich und wird dann auch von
Dir so gefordert!

Ich hoffe mal, Du nutzt jetzt immer EnableExplicit, also jede Variable muß deklariert sein,
weil damit tust Du auch Dir einen gefallen.

Gruß
Thomas

Re: Strukturen Globalisieren?

Verfasst: 05.08.2011 08:55
von Raphi
ts-soft hat geschrieben: Ich hoffe mal, Du nutzt jetzt immer EnableExplicit, also jede Variable muß deklariert sein,
weil damit tust Du auch Dir einen gefallen.
Das Werde ich auf jeden fall tun :D

:bounce:

Re: Strukturen Globalisieren? [Gelößt]

Verfasst: 05.08.2011 09:10
von ullmann
Die Variable Point1 war in der Prozedur bekannt, nur nicht als Typ ".P1". Vermutlich war dein
Global-Befehl ohne Typangabe. Damit war die Variable global, aber mit dem Standardtyp ".i".
Da in der Prozedur die Variable auf einmal mit Typ ".P1" angesprochen wurde, kam es zu der
Fehlermeldung.

TS-Soft hat mit dem korrekten Global-Befehl

Code: Alles auswählen

Global Point1.P1
dem Abhilfe geschaffen.

Re: Strukturen Globalisieren? [Gelößt]

Verfasst: 05.08.2011 09:40
von ts-soft
ullmann hat geschrieben:Vermutlich war dein Global-Befehl ohne Typangabe.
Und wenn dann dieser Teil des Sources, der den Fehler verursacht, mitgepostet wird,
sparen wir uns das Geld für die Glaskugel :mrgreen:

Re: Strukturen Globalisieren? [Gelößt]

Verfasst: 05.08.2011 13:57
von Raphi
ullmann hat geschrieben:Die Variable Point1 war in der Prozedur bekannt, nur nicht als Typ ".P1". Vermutlich war dein
Global-Befehl ohne Typangabe. Damit war die Variable global, aber mit dem Standardtyp ".i".
Da in der Prozedur die Variable auf einmal mit Typ ".P1" angesprochen wurde, kam es zu der
Fehlermeldung.

TS-Soft hat mit dem korrekten Global-Befehl

Code: Alles auswählen

Global Point1.P1
dem Abhilfe geschaffen.
Das hatte ich schon versucht, hat aber nicht geklappt weil ich den Global befehlt vor die Strukturierung beschrieben habe :lol: