Class in PB4

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
fsw
Beiträge: 74
Registriert: 12.09.2004 03:31
Wohnort: North by Northwest

Beitrag von fsw »

Habt ihr euch denn schon das angeschaut?

http://www.purebasic.fr/english/viewtopic.php?t=19416

Seit V4 kann man die DataSection zuhilfe nehmen und der benoetigte code wird kleiner.
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

Beitrag von ts-soft »

Ist aber nicht das, was Leonard sucht :wink:
Vererbung, Kapselung usw., sind damit auch nicht
wirklich möglich.
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
fsw
Beiträge: 74
Registriert: 12.09.2004 03:31
Wohnort: North by Northwest

Beitrag von fsw »

Das stimmt allerdings :cry:
Nur die Zuweisung der Methods wird einfacher.
Benutzeravatar
fsw
Beiträge: 74
Registriert: 12.09.2004 03:31
Wohnort: North by Northwest

Beitrag von fsw »

ts-soft hat geschrieben:Hier findest Du noch ein Beispiel, wie man den Code direkt vorm Compilieren
Parsen kann. Einfach entsprechend anpassen.
http://www.purebasic.fr/german/viewtopic.php?t=7352
Wenn Du es fertig hast, bitte Posten!
Hi,
dieses tool waere, mit modifikation, toll fuer classes zu gebrauchen.

Das bloede an oop sprachen is halt das die groesse der exe fuer kleine programme viel groesser ist als strukturierter code.

Mit deinem tool koennte man sicherlich nicht nur alle Strukturen und Interfaces an den Anfang stellen, sondern auch die erforderlichen Strukturen und Interfaces selbst zusammenstellen.

Beispiel:
eine Window Class hat viele Methods und Properties.
Sagen wir (Methods als beispiel):
GetHandle
GetTitle
GetLeft
GetRight
GetWidth
GetHeight
etc.

All diese Methods werden compiliert - ob sie benutzt werden oder nicht.

Mit einem tool wie deiner koennte man nun die Strukturen/Interfaces so zusammenstellen, dass nur das was wirklich benutzt wird eingebaut wird.
Dadurch hat man mehr kontrolle ueber die exe groesse.

Dazu muessten dann die Strukturen/Interfaces in einer speziellen PBI datei sein wo sie dann zusammengesucht und in eine frische PBI datei (speziell fuer den zu kompilierenden code) geschrieben und verarbeitet wird.

Hoffe mein deutsch ist verstaendlich genug.
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

Beitrag von ts-soft »

Auf jedenfall kann man den Source vorher Parsen und verändern ohne das
Original zu verändern. Lediglich der Debugger springt im Fehlerfall die falsche
Zeile an. So kann man sicherlich überflüssige Codeblöcke entfernen, aber
auch eine eigene Syntax nutzen, die es garnicht gibt. Also das Tool von
Didelphodon wäre schon mal eine Grundlage für die Syntax.

Muß sich nur einer ransetzen und das Umsetzen :wink:
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
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Beitrag von Leonhard »

fsw hat geschrieben:Das bloede an oop sprachen is halt das die groesse der exe fuer kleine programme viel groesser ist als strukturierter code.
Stimmt.
Beispiel: Borland breucht für ein normales Window-Fenster 1,42 MB für die EXE.

Das kommt aber davon, das die alles in Assembler im Hintergrund machen und daher ist der Cod beim Codieren von OOP in C++ bei Borland rund 11800 Zeilen lang.
Benutzeravatar
Daniel P.
Beiträge: 333
Registriert: 06.12.2005 21:49
Kontaktdaten:

Beitrag von Daniel P. »

Man muss ja nicht gleich aus allem ein Objekt machen, was nicht niet- und nagelfest ist. Eine OO-Unterstützung wie sie beispielsweise in PHP5 vorhanden ist, wäre absolut ausreichend. Ich finde das PB eine schöne und vor allem eine einfach zu erlernende und umzusetzende Sprache ist. Dennoch vermisse ich die "Aufgeräumtheit" des Codes wie in PHP, wenn man alles in Klassen verpackt hat. Sicherlich könnte man die Funktionen auch in einzelene Dateien packen und diese dann einbinden, aber OOP ist viel mächtiger und ist darüber hinaus viel flexibler als prozeduraler Code. Also Fred sollte spätestens bei Version 6 darüber nachdenken, OOP in PB einzubauen - aber bitte nur so wie in PHP oder C++, wo man sich "aussuchen" kann, ob man jetzt alles in eine Klasse packt oder doch lieber prozedural arbeiten möchte. OOP, wie es beispielsweise in VB betrieben wird, ist etwas zu viel des Guten...
Gruß, Daniel :? | In der Realität ist die Wirklichkeit ganz anders...

PB 4.10 (Windows XP SP 2)
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Beitrag von Leonhard »

Stimmt voll und ganz.

Java und VB hat das gleiche problem. Da verwendet man OOP bei allem möglichen. Um ein Cod-Scribt zu schreiben muss erst eine Classe erstellt werden, ...

Darum wollte Fred warscheinlich kein OOP einbrinden. Er glaubt wohl, das im Forum dann nur noch OOP geschrieben wird. Aber man glaubt es kaum, viele Hochsprachen benutzen OOP in geschränktem maße und sind zum Teil einer der belibtesten.
Hellhound66
Beiträge: 476
Registriert: 23.03.2005 23:19

Beitrag von Hellhound66 »

Ich hätte es gerne, das man dies so machen könnte:

Code: Alles auswählen

Class Window Extends WindowForm
...
Cod-Text
...
EndClass
Schau dir mal das Plugin von Edel an.

http://www.purebasic.fr/german/viewtopic.php?t=7839
Optimismus ist ein Mangel an Information.
Gesperrt