Variablentyp in Structure

Anfängerfragen zum Programmieren mit PureBasic.
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Variablentyp in Structure

Beitrag von ullmann »

Mal nur so interessehalber:

Man kann einer Variablen vom Typ .a eine Zufallszahl zuweisen.

Code: Alles auswählen

Zufallszahl.a = Random(255)
Debug Zufallszahl
Steht aber die Variable innerhalb einer Struktur, geht das nicht (Syntaxfehler):

Code: Alles auswählen

Structure Farben
  Rot.a
EndStructure

With Farben
  /Rot = Random(255)
EndWith
Und hier gibts einen Division durch Null Fehler:

Code: Alles auswählen

Structure Farben
  Rot.a
EndStructure

Farben/Rot = Random(255)
Habe ich hier etwas übersehen, oder gibt es eine Konvertierungsfunktion von .l (Long) (welchen Typ liefert
eigentlich Random() zurück?) auf .a oder ist das ein Bug?
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: Variablentyp in Structure

Beitrag von ts-soft »

Code: Alles auswählen

EnableExplicit

Structure Farben
  Rot.a
EndStructure

Define Farben.Farben
With Farben
  \Rot = Random(255)
  Debug \Rot
EndWith 
Ich denke damit sind alle Fragen auf einem schlag beantwortet <)
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
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Re: Variablentyp in Structure

Beitrag von ullmann »

Gut, danke. Dumm von mir, nur den Typ zu definieren, aber keine Variable anzulegen.

Aber nun noch etwas:

Code: Alles auswählen

EnableExplicit

Structure Farben
  Rot.a
EndStructure

Define Farben.Farben

Farben/Rot = Random(255)
Fehler: Bei EnableExplicit müssen Variablen definiert werden: Rot.

Ich denke With:EndWith ist optional? Auszug aus der Hilfe:
Bei der Verwendung vieler Strukturfelder können Sie den Umfang einzugebenden Codes vereinfachen und seine Lesbarkeit erhöhen, wenn Sie die With : EndWith Schlüsselwörter benutzen.
EnableExplicit ist doch auch optional? Lasse ich es weg, kommt "Fehler: Kann einer Struktur keinen Wert zuweisen". Irgendwas ist hier faul.
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: Variablentyp in Structure

Beitrag von ts-soft »

EnableExplicit ist leider Optional, es gäbe hier weniger Fragen, wenn dem nicht so wäre, dann würde man
sehr viele Fehler selber finden, wie auch in Deinem Beispiel.

With - EndWith ist ein Makro, das nur die Schreibarbeit vermindert, indem es den Variablennamen autom.
vor dem Backslash setzt.

Slash ist zum teilen und Backslash für Strukturen!
Durch Rot möchte der Compiler nicht teilen, da im diese Variable nicht bekannt ist.
Wenn EnableExplicit nicht wäre, wäre rot = 0 und es wäre trotzdem falsch :mrgreen:

Ich hoffe das hilft erstmal.
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
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Re: Variablentyp in Structure

Beitrag von ullmann »

Ja danke. Der Backslash wars.
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: Variablentyp in Structure

Beitrag von ts-soft »

ullmann hat geschrieben:Ja danke. Der Backslash wars.
Ich weiß :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
Benutzeravatar
jojo1541
Beiträge: 431
Registriert: 15.09.2007 17:12
Wohnort: Irgendwo im Nirgendwo

Re: Variablentyp in Structure

Beitrag von jojo1541 »

ts-soft hat geschrieben:
ullmann hat geschrieben:Ja danke. Der Backslash wars.
Ich weiß :mrgreen:
Du weißt eben einfach alles, was? :lol:
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
Antworten