Autor Beitrag
Symbroson
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: Mo 25.09.17 17:01 
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:

ausblenden 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:

ausblenden 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 user profile iconChristian S.: Delphi-Tags hinzugefügt
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Quizmaster
Beiträge: 2615
Erhaltene Danke: 1421

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mo 25.09.17 20: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

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10119
Erhaltene Danke: 1226

W2k .. W7pro .. W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 25.09.17 21: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

_________________
There are 10 types of people - those who understand binary and those who don´t.

Für diesen Beitrag haben gedankt: Mathematiker
Symbroson Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: Mo 25.09.17 21: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10119
Erhaltene Danke: 1226

W2k .. W7pro .. W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 25.09.17 21:24 
Moin!

user profile iconSymbroson hat folgendes geschrieben Zum zitierten Posting springen:
Das muss dann aber eine extra Datei sein wenn ich mich nicht irre.
Jap. ;)

user profile iconSymbroson hat folgendes geschrieben Zum zitierten Posting springen:
Danke :)
:beer:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.

Für diesen Beitrag haben gedankt: Symbroson
Symbroson Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: Fr 27.04.18 20: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

_________________
most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)