Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Namespaces
Symbroson - Mo 25.09.17 18:01
Titel: Namespaces
Hallo,
Ich möchte für die Lesbarkeit meiner Programme sogenannte 'Namespaces' (mir bekannt durch C/C++) anlegen. Von Delphi kenne ich bisher aber nur Klassen, die ich als Typ verwenden kann. Welche Möglichkeiten gibt es also in Delphi diesbezüglich?
Vorteil dessen: Ich muss die im Namespace enthaltenen Variablen/Funktionen nur ein mal deklarieren
Nutzen: Zusammenfassen von Variablen/Funktionen
Zur Verständlichkeit ein beispiel:
aufgrund meiner bisherigen Delphi-Kenntnisse:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| type TDrawAPI = class procedure Render; function Distance(a,b:TPoint):float; end;
var DrawAPI:TDrawAPI; ... procedure DrawAPI.Render; begin ... end;
function DrawAPI.Distance(a,b:TPoint):float; begin ... end; ... DrawAPI.Render; |
gewünscht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| type DrawAPI = namespace procedure Render; begin ... end;
function Distance(a,b:TPoint):float; begin ... end; end; ... DrawAPI.Render; |
Anmerkungen:
1. Ich garantiere nicht für die Richtigkeit des obigen Codes, mir geht es ums Prinzip.
2. Bin neu in dem Forum - bin offen für Hinweise bzgl der Nutzung des Forums hier als pm :)
Danke im Vorraus :)
Moderiert von Christian S.: Delphi-Tags hinzugefügt
Mathematiker - Mo 25.09.17 21:32
Hallo Symbroson und :welcome: !
@EE: Da ich keine Ahnung habe von dem Thema, habe ich unseren "Neuen" auf die Entwickler-Ecke "gelenkt"; mit dem Hinweis, dass dort die Profis gern, schnell und kompetent helfen.
Eine große Bitte: Irgendeiner wird doch wissen worum es geht. Wir wollen doch die neuen Hilfesuchenden hier behalten.
LG Steffen
Narses - Mo 25.09.17 22:07
Moin und :welcome: in der EE!
Irgendwie kann ich deinem Beispiel noch nicht so richtig folgen. :lupe: Das, was deiner Vorstellung von einem "Namespace" am nächsten in Delphi kommt, ist (vermutlich) eine Unit. Hier kannst du die gewünschten Deklarationen, Definitionen, Typisierungen, etc.pp. "sammeln" und dann später mit vorangestelltem Unit-Namen ansprechen. Schau dich einfach mal unter diesem Stichwort um.
Mir scheint aber eher, du hast noch Probleme die automatisch in einer GUI-Form-Klasse erzeugten Inhalte von der Funktion zu trennen (also die Oberfläche von der Funktion). :idea: Das hat so gesehen nichts mit Namespaces zu tun. :nixweiss:
Vielleicht hab ich dich aber auch falsch verstanden. Dann müsstest du nochmal genauer erklären, was du eigentlich hast und wie genau du es "anders" haben willst. :les:
cu
Narses
Symbroson - Mo 25.09.17 22:21
Stimmt, als Unit müsste das funktionieren. Das muss dann aber eine extra Datei sein wenn ich mich nicht irre.
Danke :)
Ps: die Zeichenfunktionen waren nur ein Beispiel - mir ist grad nix besseres eingefallen wie eben zB. eine Zeichenbibliothek. Sinn des Namespaces wäre eben die Funktionen, Variablen und Konstanten die in dieser Bobliothek definiert sind zusammenzufassen.
Narses - Mo 25.09.17 22:24
Moin!
Symbroson hat folgendes geschrieben : |
Das muss dann aber eine extra Datei sein wenn ich mich nicht irre. |
Jap. ;)
Symbroson hat folgendes geschrieben : |
Danke :) |
:beer:
cu
Narses
Symbroson - Fr 27.04.18 21:02
Eine andere Lösung wären Klassen mit class procedures bzw functions - damit kann man ein Namespace generieren was dem c++ Namespace ziemlich nahe kommt :)
darauf bin ich letztens erst gestoßen
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!