AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi Namespaces in Delphi 2005
Tutorial durchsuchen
Ansicht
Themen-Optionen

Namespaces in Delphi 2005

Ein Tutorial von sakura · begonnen am 6. Dez 2004 · letzter Beitrag vom 6. Dez 2004
 
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.421 Beiträge
 
Delphi 12 Athens
 
#4

Re: Namespaces in Delphi 2005

  Alt 6. Dez 2004, 10:04
Namespaces in Delphi 2005


Lädt man jetzt das zuvor in Delphi 8 erstellte Package und kompiliert es erneut und schaut sich das Ergebnis in einem Reflektor-Tool an, so wird man feststellen, dass das erstellte Assembly etwas anders strukturiert ist. Es enthält jetzt zwei Namespaces: Sample.Controls und Sample.Controls.Units.

Wenn man den Sample.Controls Namespace näher betrachtet, so findet man dort die Klassen TControl, TListview und TItem. Der Delphi 2005 Compiler hat allen Klassen in einen Namespace platziert!

Der Sample.Controls.Units Namespace ist entsprechend ähnlich aufgebaut und enthält nun zwei Klassen: Base und Listview. Dieses sind die speziellen Klassen jeder Unit, welche wir vorher auch bereits hatten. Im Unterschied zu Delphi 8 wird jetzt nicht mehr für jede Unit ein eigener Namespace erzeugt.

Dieses ist eine großer Erleichterung für andere Entwickler. C# Programmierer benötigen jetzt nur noch ein using Statement, um Zugriff auf alle unsere Klassen zu erhalten. Um jetzt Zugriff auf eine unserer Klassen zu erhalten, reicht folgender Code: Sample.*Controls.*TCon*trol.

Fügt man jetzt dem Package diese dritte Unit hinzu:
Delphi-Quellcode:
unit Sample.Graphics.Screen;

interface

type
  TScreen = class
  end;

implementation

end.
so wird man feststellen, dass das Package jetzt zwei neue Namespaces Sample.Graphics namespace und Sample.Graphics.Units enthält.

Wo kommt diese jetzt her?

Der Delphi Compiler betrachtet jeden Unitnamen genauer. Sind in dem Unitnamen Punkte (.) enthalten, so wird alles, was links vom letzten Punkt steht als Teil des zu generierenden Namespace genutzt. Anders gesagt, wenn eine Unit Sample.Controls.Buttons benannt wird, so werden die darin enthaltenen Klassen in den Namespace Sample.Controls gebracht, heißt eine Unit Sample.*Controls.*Web.*DB.Grid, so werden alle darin enthaltenen Klassen in den Namespace Sample.*Controls.*Web.*DB gebracht.

Für Unitnamen, die keinen Punkt im Namen enthalten, nutzt der Compiler den Standard Namespace aus dem Dialog Projektoptionen:

Wurde in diesem Dialog kein Standard Namespace angegeben, so nutzt der Compiler den Namen der Unit als Namespace. Daher wird eine Unit mit dem Namen Graphics.pas dann auch einen Namespace Graphics erstellen.
Lizbeth W.
 
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz