Strukturen Globalisieren? [Gelößt]

Anfängerfragen zum Programmieren mit PureBasic.
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Strukturen Globalisieren? [Gelößt]

Beitrag 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?
Zuletzt geändert von Raphi am 04.08.2011 22:27, insgesamt 1-mal geändert.
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

Re: Strukturen Globalisieren?

Beitrag 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 
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
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Re: Strukturen Globalisieren?

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

Re: Strukturen Globalisieren?

Beitrag 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
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
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Re: Strukturen Globalisieren?

Beitrag 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:
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Re: Strukturen Globalisieren? [Gelößt]

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

Re: Strukturen Globalisieren? [Gelößt]

Beitrag 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:
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
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Re: Strukturen Globalisieren? [Gelößt]

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