XTC OOP-PreCompiler-PlugIn
Also für mich sieht das so aus:
1) Da Attribute ein Block ist, geh ich davon aus, daß das Wort die Mehrzahl darstellen soll, daher wäre "Attributes" sicherlich treffender.
2) Methode heißt soweit ich weiß auf Englisch "Method", daher müßten die Befehle Method, EndMethod und MethodReturn heißen, sprich das "e" muß da raus.
1) Da Attribute ein Block ist, geh ich davon aus, daß das Wort die Mehrzahl darstellen soll, daher wäre "Attributes" sicherlich treffender.
2) Methode heißt soweit ich weiß auf Englisch "Method", daher müßten die Befehle Method, EndMethod und MethodReturn heißen, sprich das "e" muß da raus.


ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
- 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
Vielleicht erstmal den lustigen Titel des Threads anpassen, bevor man die Kleinigkeiten korrigiert
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Habe mal in den erzeugten PB nativen Code geschaut.
Diesbezgl.: http://www.purebasic.fr/german/viewtopi ... 9&start=20
http://www.purebasic-lounge.de/viewtopi ... hlight=oop
Code: Alles auswählen
!MOV [p.p_this],Ebp
Schau dir dieses Vorgehen von Hellhound mal an (habe schon weiter oben drauf hingedeutet) damit arbeite ich momentan in einigen Projekten:Fred bzgl. EBP hat geschrieben:It's not safe to assume it will be always that, try to allocate a local string or use a string as parameter and it will be probably trashed.
http://www.purebasic-lounge.de/viewtopi ... hlight=oop
Hier gibts die OOP Option für PureBasic.
@Pelagio
In der überarbeiteten EXE sollte für die Befehle 'Methode' und 'Attribute' jeweils das 'e' am ende weggelassen werden.
@inc.
Nachteil bei diesem Code ist, das da die Klassenhierarchie ins wasser fällt, was du schon selbst gewünscht hast. Ich fand den Code vorher auch praktischer. Dies hab ich wegen der Klassenhierarchie geändert. Algemein gab es ja auch einen nachteil bei der änderung (siehe Update.txt).
In der überarbeiteten EXE sollte für die Befehle 'Methode' und 'Attribute' jeweils das 'e' am ende weggelassen werden.
@inc.
Nachteil bei diesem Code ist, das da die Klassenhierarchie ins wasser fällt, was du schon selbst gewünscht hast. Ich fand den Code vorher auch praktischer. Dies hab ich wegen der Klassenhierarchie geändert. Algemein gab es ja auch einen nachteil bei der änderung (siehe Update.txt).
@ Leonhard
Daher bei "Attribute" NICHT das "e" am Ende weg lassen.
Demnach:
Method / EndMethod
Attribute / EndAttribute
oder ...
Methods / EndMethods
Attributes / EndAttributes
Bookmark setzen!: http://dict.leo.org/
BTW (keine Anmache): Bitte sehe auch mal in deinen Readme's und im Requester Code nach. Bin kein Orthographie-Pingel bei Gott nicht, mache hier und da auch Fehler nur ... in manchen Bereichen scheints dem Benutzer etwas dahingeschmissen zu sein, demnach könnte der Benutzer die Vermutung haben, dass du die Dinge nicht recht gewissenhaft angehst, und das wiederum könnte fälschlich auf die Programmierung schließen.
Meine 2 Cents
Was ansonsten das Plugin angeht, da denke ich mir (ohne dir nahe treten zu wollen), dass wenn du ebenso den EBP Weg beschreitest, einige nicht nicht den rechten Vorteil oder die Alternative darin erkennen.
Und wenn du Probleme in Hellhounds Ansatz siehst wie von dir oben vermerkt, dann frag ihn einfach, denn da stecken bestimmt noch Möglichkeiten drin.
PS: Gebe dem Thread den "wirklichen" Namen deines Plugins, sonst gibt das Verwechslungen mit Edels Plugin.
-> "XTC OOP-PreCompiler-PlugIn"
Nochmal was ZeHa meinte:Leonhard hat geschrieben:@Pelagio
In der überarbeiteten EXE sollte für die Befehle 'Methode' und 'Attribute' jeweils das 'e' am ende weggelassen werden.
Code: Alles auswählen
Deutsch Englisch
-------------------------------
das Attribut = attribute
die Attribute = attributes
die Methode = method
die Methoden = methods
Demnach:
Method / EndMethod
Attribute / EndAttribute
oder ...
Methods / EndMethods
Attributes / EndAttributes
Bookmark setzen!: http://dict.leo.org/
BTW (keine Anmache): Bitte sehe auch mal in deinen Readme's und im Requester Code nach. Bin kein Orthographie-Pingel bei Gott nicht, mache hier und da auch Fehler nur ... in manchen Bereichen scheints dem Benutzer etwas dahingeschmissen zu sein, demnach könnte der Benutzer die Vermutung haben, dass du die Dinge nicht recht gewissenhaft angehst, und das wiederum könnte fälschlich auf die Programmierung schließen.
Meine 2 Cents
Was ansonsten das Plugin angeht, da denke ich mir (ohne dir nahe treten zu wollen), dass wenn du ebenso den EBP Weg beschreitest, einige nicht nicht den rechten Vorteil oder die Alternative darin erkennen.
Und wenn du Probleme in Hellhounds Ansatz siehst wie von dir oben vermerkt, dann frag ihn einfach, denn da stecken bestimmt noch Möglichkeiten drin.
PS: Gebe dem Thread den "wirklichen" Namen deines Plugins, sonst gibt das Verwechslungen mit Edels Plugin.
-> "XTC OOP-PreCompiler-PlugIn"
Hier gibts die OOP Option für PureBasic.
- Pelagio
- Beiträge: 424
- Registriert: 11.11.2004 17:52
- Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem - Wohnort: Bremen
@Leonhard
(PreProcessor meldet Fehler)
PS.:
Public und Private mit End... abzuschliessen fand ich besser.
- In der überarbeiteten EXE sollte für die Befehle 'Methode' und 'Attribute' jeweils das 'e' am ende weggelassen werden.
Code: Alles auswählen
AllowPreCompiling
PreCompiler on
Class IMessageBox
Private
Attribut
Title.s
Text.s
Flag.l
EndAttribut
Public
Method SetTitle(String$)
*this\Title = String$
EndMethod
Method CreateClass()
*this\Title = "Doodle-Standart"
EndMethod
Method SetText(String$)
*this\Text = String$
EndMethod
Method.l FastMessage(Title$,Text$)
*this\SetTitle(Title$)
*this\SetText (Text$)
MethodReturn *this\Show()
EndMethod
Method.l Show()
MethodReturn MessageRequester(*this\Title,*this\Text,*this\Flag)
EndMethod
EndClass
NewObject *MessageBox.IMessageBox
*MessageBox\SetTitle("OOP")
*MessageBox\SetText("Dies ist ein OOP-Ausgabe-Beispiel-Text.")
*MessageBox\Show()
End
PS.:
Public und Private mit End... abzuschliessen fand ich besser.
- Pelagio
- Beiträge: 424
- Registriert: 11.11.2004 17:52
- Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem - Wohnort: Bremen

Habe meinen Fehler im Code gefunden, anbei der "funktionierende" Code.
Code: Alles auswählen
AllowPreCompiling
PreCompiler on
Class IMessageBox
Private
Attribute
Title.s
Text.s
Flag.l
EndAttribut
Public
Methode SetTitle(String.s)
*this\Title = String
EndMethod
Methode CreateClass()
*this\Title = "Doodle-Standart"
EndMethod
Methode SetText(String$)
*this\Text = String$
EndMethod
Methode.l FastMessage(Title$,Text$)
*this\SetTitle(Title$)
*this\SetText (Text$)
MethodReturn *this\Show()
EndMethod
Methode.l Show()
MethodReturn MessageRequester(*this\Title, *this\Text, *this\Flag)
EndMethod
EndClass
NewObject *MessageBox.IMessageBox
*MessageBox\SetTitle("OOP")
*MessageBox\SetText("Dies ist ein OOP-Ausgabe-Beispiel-Text.")
*MessageBox\Show()
End
Code: Alles auswählen
Procedure __IMessageBox_Public_SetTitle(String.s)
Protected *this.IMessageBox
!MOV [p.p_this],ebp
Protected *pthis.IMessageBox_Private = *this\IPrivate
*this\Title = String
EndProcedure
Procedure.l __IMessageBox_Public_FastMessage(Title$,Text$)
Protected *this.IMessageBox
!MOV [p.p_this],ebp
Protected *pthis.IMessageBox_Private = *this\IPrivate
*this\SetTitle(Title$)
*this\SetText (Text$)
ProcedureReturn *this\Show()
EndProcedure
Code: Alles auswählen
Procedure __IMessageBox_Public_SetTitle(String.s)
Protected *this.IMessageBox
!MOV [p.p_this],ebp
Protected *pthis.IMessageBox_Private = *this\IPrivate
*pthis\Title = String
EndProcedure
Procedure.l __IMessageBox_Public_FastMessage(Title$,Text$)
Protected *this.IMessageBox
!MOV [p.p_this],ebp
Protected *pthis.IMessageBox_Private = *this\IPrivate
*this\SetTitle(Title$)
*this\SetText (Text$)
ProcedureReturn *this\Show()
EndProcedure
Ich hoffe ich habe dies richtig erkannt.!
