Seite 1 von 1

Structure unter gleichem Namen erweitern? Möglich?

Verfasst: 06.05.2025 20:44
von Beefi
Hi liebe Forengemeinde,

gibt es einen Weg, bereits deklarierte Strukturen unter gleichem Namen zu erweitern?

Das Vorhaben wäre quasi identisch zu folgendem Beispiel:

Code: Alles auswählen


Structure OriginalStruktur
  a.i
  b.i
EndStructure

Structure OriginalStruktur Extends OriginalStruktur
  c.i
EndStructure

Das Beispiel läuft logischerweise nicht, weil PureBasic meckert, dass es die Struktur bereits unter diesem Namen gibt.
Gibt es irgendwie einen Trick der Struktur doch noch ein weiteres Strukturfeld unterzujubeln, ohne dass dabei ein neuer Name verwendet werden muss?
Ich habe auch schon überlegt die erste Deklaration per Compiler-Funktion zur Kompilierzeit umzubennen und dann per Extends wieder zum richtigen Namen zu erweitern :lol: Klappen würde es, nur leider bietet PureBasic meiner Recherche nach keine solche Funktion.

Ein Grund der ganzen Sache ist unter anderem, dass die Struktur in einer externen Include-Datei deklariert ist, die regelmäßig ersetzt/aktualisiert wird. Ich möchte da nicht jedes Mal in der fremden Bibliothek rumwerkeln müssen bzw. diesen Umstand im Hinterkopf haben müssen.

Viele Grüße

Re: Structure unter gleichem Namen erweitern? Möglich?

Verfasst: 06.05.2025 20:57
von STARGÅTE
Aber warum gibst du deiner Struktur nicht einfach einen anderen Namen?

Was ginge wäre ein Macro, allerdings funktioniert dann die Autovervollständigung nicht, weil nur die original Felder angezeigt werden:

Code: Alles auswählen

Structure OriginalStruktur
  a.i
  b.i
EndStructure

Structure OriginalStruktur2 Extends OriginalStruktur
  c.i
EndStructure

Macro OriginalStruktur
	OriginalStruktur2
EndMacro


Define A.OriginalStruktur

A\c = 123
Debug A\c

Re: Structure unter gleichem Namen erweitern? Möglich?

Verfasst: 06.05.2025 21:14
von mk-soft
Macht man so nicht ...

Code: Alles auswählen


Structure BaseStruktur
  a.i
  b.i
EndStructure

Structure MyStruktur Extends BaseStruktur
  c.i
EndStructure

Re: Structure unter gleichem Namen erweitern? Möglich?

Verfasst: 07.05.2025 07:30
von #NULL
Was du da machen willst, macht so keinen Sinn. Aber wenn du nicht bei jeder Änderung an die Includefile ran willst, könntest du der Struktur einmalig eine Art Extension-Feld hinzufügen, vom Typ einer Struktur, die du zuvor in der inkludierenden Datei definierst und dort erweitern/verändern kannst. Die Includefile selbst lässt sich dann aber natürlich nicht mehr alleine compilieren, nur noch aus Main heraus.

Code: Alles auswählen

; main

Structure S_extension
  c.i
EndStructure

; ---------------------------------
; include OriginalStruktur

    Structure OriginalStruktur
      a.i
      b.i
      ext.S_extension
    EndStructure

; ---------------------------------

; back in main
    
Define var.OriginalStruktur
Debug var\ext\c