![]() |
Delphi-Version: 5
Private/Public in Unit mit gesammelten Funktionen ala Math
Hallo,
ich möchte mir eine Unit erstellen, in der ich so alle möglichen Funktionen packen wollte, die ich so gelegentlich brauche. Vllt. werden's auch mehrere Units, thematisch sortiert. Da sollen keine Klassen drin entstehen, sondern wirklich nur Funktionen. Im Prinzip also sowas wie die Unit Math. Sind in so einer Unit alle Funktionen public? Oder kann man da auch Funktionen zum internen Gebrauch in der Unit ablegen, die aus anderen Units heraus nicht aufgerufen werden können? In der Unit Math, die ich mir als Beispiel angeguckt habe, stand im Interface-Bereich nirgendwo was von private und public... |
AW: Private/Public in Unit mit gesammelten Funktionen ala Math
Alle Funktionen, deren Funktionsköpfe im interface-Teil stehen, sind von außen erreichbar. Alle anderen nicht.
Delphi-Quellcode:
unit Dings;
interface uses ...; function Func1: integer; //von außen aufrufbar implementation function Func1: integer; begin ... end; function Func2: integer; //nur Unit-intern benutzbar begin ... end; |
AW: Private/Public in Unit mit gesammelten Funktionen ala Math
Alles was im "interface" veröffentlicht wird, ist puclic.
Alles was nur in der "implementation" auftaucht, ist quasi private. [edit] Ich wünschte mir eine rote Box. |
AW: Private/Public in Unit mit gesammelten Funktionen ala Math
Eine Methode, die im Imterface-Teil deklariert wird, ist public. Es hindert dich aber niemand daran, eine Methode nur im Implementation-Teil zu platzieren - dann ist die private. In der Unit Math bei D5 sind das z.B. die Methoden Annuity2, ArgError, CoshSinh, PaymentsParts, PolyX, RaiseOverflowError, RelSmall und der Record TPoly.
|
AW: Private/Public in Unit mit gesammelten Funktionen ala Math
Wer will nochmal, wer hat noch nicht? :lol:
|
AW: Private/Public in Unit mit gesammelten Funktionen ala Math
Zitat:
Zitat:
Diese "Utility"-Units in denen querbeet alles Mögliche enthalten ist sind Müll. Aber bevor du deine eigenen Units erstellst wäre es ratsam zu schauen, ob es das was du brauchst nicht irgendwo schon gibt. Und was soll ich sagen - natürlich gibt es das schon. ![]() |
AW: Private/Public in Unit mit gesammelten Funktionen ala Math
Zitat:
|
AW: Private/Public in Unit mit gesammelten Funktionen ala Math
Für sowas nehme ich mir auch gerne Klassen, die ausschließlich "static" Methoden ("class function" etc.) beinhalten. Dadurch ist man angenehm gezwungen thematisch sinnvoll in diesen Klassen zu gruppieren, hat Felder (statt globals), und hat bei der Verwendung gleich einen hübsch qualifizierten Namen.
|
AW: Private/Public in Unit mit gesammelten Funktionen ala Math
Zitat:
|
AW: Private/Public in Unit mit gesammelten Funktionen ala Math
Delphi 6 sollte doch auch schon Klassenfunktionen unterstützen?
Delphi-Quellcode:
Mit Static ist es vom Funktionsaufruf her, wie eine ganz billige Function/Prozedur, nur daß man auf diese Weise auch Mehreres in einer Unit unterbringen und gruppieren kann.
type
TUtilityXyz = class // in neueren Delphis "class abstract" oder als Record class function Max(x, y: Integer): Integer; static; // wenn static noch nicht geht, dann weglassen class function Min(x, y: Integer): Integer; static; overload; class function Min(x, y: Double): Double; static; overload; end; (Klassenname als Namespace, anstatt mehrere Units/Unitnamen) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 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