Variable von der Prozedure übergeben

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Variable von der Prozedure übergeben

Beitrag von RSBasic »

Guten Abend ihr lieben PB-Progger :D
Wenn ich in der Prozedure eine Variable deren Wert geändert hab, wie kann ich das machen, dass dieser Wert zum Main weitergeleitet wird.
Hoffe ihr wisst was ich meine :wink:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
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 »

ProcedureReturn :mrgreen:
Oder Frage deutlicher stellen :wink:
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
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@ts-soft
Vielen Dank :allright:
Ist ja wieder typich RSBasic, ein Befehl, was ich noch nie benutzt habe und es kann auch so einfach sein :wink: <)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

Ich weis nicht was ich da falsch mache, aber es funktioniert nicht.
Was habe ich falsch gemacht?

Code: Alles auswählen

Procedure abc()
  For a=0 To 100
    x+1
    ProcedureReturn x
    Delay(1)
  Next
EndProcedure
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
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 »

Mit ProcedureReturn wird die Procedure verlassen, das Loop also beendet!
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
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

OK :)
Aber wieso wird trotzdem x nicht übergeben? Da gibt es keine Änderung. /:->

Code: Alles auswählen

Procedure abc()
  For a=0 To 100
    x+1
    Delay(1)
  Next
  ProcedureReturn x
EndProcedure
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Also bei mir gehts :?

Code: Alles auswählen

Procedure abc()
  For a=0 To 100
    x+1
    Delay(1)
  Next
  ProcedureReturn x
EndProcedure 


Debug abc()
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@PBprogger
Ne, das Problem ist, dass ich "x"-Wer abfragen möchte, also so funktioniert das nicht:

Code: Alles auswählen

Procedure abc() 
  For a=0 To 100 
    x+1 
    Delay(1) 
  Next 
  ProcedureReturn x 
EndProcedure 

Debug x
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
D@nte
Beiträge: 324
Registriert: 24.04.2007 15:33
Wohnort: Berlin

Beitrag von D@nte »

Code: Alles auswählen

Procedure abc()
  For a=0 To 100
    x+1
    Delay(1)
  Next
  ProcedureReturn x
EndProcedure

xyz = abc()

Debug xyz 
Ich geh ma von Wald und Bäumen aus :twisted:
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

Hi, RSBasic

Du könntest alle Daten in eine LinkedList oder ein Array schreiben und mit ProcedureReturn die Adresse (oder den Pointer?) übergeben. Habe sowas noch nie gemacht und ist auch nur eine Vermutung. Aber ich denke, dass dürfte funktionieren.
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Antworten