Hallo Danilo,
schön dich hier wieder aktiver zu sehen.
Die Umwege über Macros bzw. einem Include etc. brauchst du eigentlich nicht mehr. Solche Wege der Klassenerstellung hatten hier schon einige wie z.B. Hellhound66 oder auch andere mal geposted.
Mittlerweile geht das besser über einen Preprozessor, der neben der eigentlichen Klassenerstellung auch Vererbung, Polymorphie!, Einkapselung und auch abstrakte Klassen beherrscht.
http://pb-oop.origo.ethz.ch/wiki/main
Ich habe den Preprozessor so aufgebaut, dass er final im User/Temp Ordner den übersetzten, nativen PB Code abgelegt, der sodann zum eigentlichen PB Compiler gesendet wird. Diesen Code kann man auch sodann nutzen um ihn in Foren etc. zu posten. Probier's mal aus und schaue ihn dir an, ... was dort an Code intern erstellt wird, ist sehr übersichtlich und auch nachvollziehbar
Bedeutet, du kannst den Preprozessor nutzen und dennoch deine Projekte/Codeschnipsel mit anderen Teilen, die den Preprozessor nicht nutzen möchten.
OOP...
Danke, inc. - mir ging es aber mehr darum auszuloten was Macros können.inc. hat geschrieben:Die Umwege über Macros bzw. einem Include etc. brauchst du eigentlich nicht mehr. Solche Wege der Klassenerstellung hatten hier schon einige wie z.B. Hellhound66 oder auch andere mal geposted.
Dabei ist dann mein Beispiel rausgekommen...etwas besseres ist mir gerade
nicht eingefallen zum testen. Ich bitte um Verzeihung.

Was ich suchte ist sowas wie define + undefine oder so, um etwas über
mehrere Macros 'mitzunehmen' (z.B. den Klassenname).
Oder auch unbekannte Argumentzahl für Macros, da in der Hilfe was mit '...' stand,
so wie in C (printf etc.). Oder mit Parameterrotation wie in NASM.
Code: Alles auswählen
Macro longdata( x, ... )
Data.l x, ...
EndMacro
longdata(12,15,99)
longdata(1,2,3,147,798,16,9,56)
Macro HiHi( name )
define __hehe__ name
EndMacro
Macro yo( name )
Procedure __hehe__#name
EndMacro
Macro EndHihi
EndProcedure
undefine __hehe__
EndMacro
Hihi( Hello )
yo( World )
EndHihi
Hihi( Hallo )
yo( Welt )
EndHihi
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Hi Danilo,
Beide Dinge (unbekannte Argumentzahl, Name merken) hatte ich mal als Feature Request ins englische Forum gestellt:
==> unbekannte Argumentzahl: http://www.purebasic.fr/english/viewtopic.php?t=19743
==> Name merken (Named Macro Variables): http://www.purebasic.fr/english/viewtopic.php?t=21124
Das war vor zwei Jahren!
cu, guido
Beide Dinge (unbekannte Argumentzahl, Name merken) hatte ich mal als Feature Request ins englische Forum gestellt:
==> unbekannte Argumentzahl: http://www.purebasic.fr/english/viewtopic.php?t=19743
==> Name merken (Named Macro Variables): http://www.purebasic.fr/english/viewtopic.php?t=21124
Das war vor zwei Jahren!
cu, guido
Windows 10
PB Last Final / (Sometimes testing Beta versions)
PB Last Final / (Sometimes testing Beta versions)
OK, Danke... dann ist es wie immer nur noch eine Frage der Zeit.helpy hat geschrieben:Beide Dinge (unbekannte Argumentzahl, Name merken) hatte ich mal als Feature Request ins englische Forum gestellt:
==> unbekannte Argumentzahl: http://www.purebasic.fr/english/viewtopic.php?t=19743
==> Name merken (Named Macro Variables): http://www.purebasic.fr/english/viewtopic.php?t=21124
Das war vor zwei Jahren!
Entweder Freds Liste ist so groß, oder aber Dinge mit niedriger Priorität
kommen nie nach oben.

cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Wäre doch was für einen Preprozessor was "Define" und "Undefine" von Konstanten angeht, genauso jene Idee mit Wildcats "*" als Argument in Macros ...
Ich hatte eh vor den OOP Preprozessor mehr "modular" aufzubauen. Bedeutet, neben den OOP Fähigkeiten können PlugIns erstellt werden, die in den Parsing & Converting Prozess mit eingebunden würden.
Die Anzahl der Möglichkeiten wäre richtig lecker.
Ich hatte eh vor den OOP Preprozessor mehr "modular" aufzubauen. Bedeutet, neben den OOP Fähigkeiten können PlugIns erstellt werden, die in den Parsing & Converting Prozess mit eingebunden würden.
Die Anzahl der Möglichkeiten wäre richtig lecker.
Hier gibts die OOP Option für PureBasic.
Das kannst Du natürlich machen, aber das ändert nichts daran das PureBasic esinc. hat geschrieben:Wäre doch was für einen Preprozessor was "Define" und "Undefine" von Konstanten angeht, genauso jene Idee mit Wildcats "*" als Argument in Macros ...
Ich hatte eh vor den OOP Preprozessor mehr "modular" aufzubauen. Bedeutet, neben den OOP Fähigkeiten können PlugIns erstellt werden, die in den Parsing & Converting Prozess mit eingebunden würden.
Die Anzahl der Möglichkeiten wäre richtig lecker.
nicht kann. Es ist dann nur für Programmierer nutzbar die Dein (Zusatz-)Produkt
nutzen, nicht mit plain PB.
Alles ist möglich. Du kannst auch PureBasic nach C++ oder C# übersetzen oder
andersrum. Inwiefern das sinnvoll ist, ist Ansichtssache.
Dann könnte man gleich aufhören Verbesserungsvorschläge und -wünsche für
PureBasic selbst zu machen und alles selbst mit externen Tools machen.
Ich denke das ist nicht der Sinn der Sache.
Du kannst gerne bauen was Du möchtest, das ist ja auch gut was Du da machst!
Nur sollte es trotzdem für andere Programmierer möglich sein sich neue Features
für PB selbst zu wünschen, auch wenn es extern schon von jemandem umgesetzt
wurde (als LIB oder Preprozessor etc.).
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck