Structure unter gleichem Namen erweitern? Möglich?

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Beefi
Beiträge: 96
Registriert: 16.01.2017 17:38

Structure unter gleichem Namen erweitern? Möglich?

Beitrag 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
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

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

Beitrag 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
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
mk-soft
Beiträge: 3844
Registriert: 24.11.2004 13:12
Wohnort: Germany

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

Beitrag 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
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

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

Beitrag 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
my pb stuff..
Bild..jedenfalls war das mal so.
Antworten