HSG |
|
Hat man eine Prozedur wie z.B. berechneQuadGlei, die gut durchdacht und dokumentiert eine Klasse von Problemen löst, so möchte man sie natürlich in vielen Projekten wiederverwenden. Einfach den Quellcode zu kopieren, wäre eine ausgesprochen schlechte Lösung. Man stelle sich nur vor, es wird ein Fehler in der Prozedur entdeckt und man muss jetzt an allen Anwendungsstellen den Quellcode ändern. Hier stellt das Unit-Konzept eine gute Lösung dar. Eine Unit stellt in ihrem Interface-Teil Klassen, Prozeduren, Funktionen, Konstanten, Typen, ... zur Verfügung, die im Implementation-Teilimplementiert ('ausprogrammiert') sind. Der direkte Zugriff auf den Implementationteil ist dabei nur innerhalb der Unit möglich. Die Nutzung einer Unit geschieht dabei über das Schlüsselwort uses.
...
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, uMyStuff;
...
Delphi verfügt - wie man schon am Beispiel sieht - über eine große Zahl vordefinierter Units, die eine mannigfache Funktionalität zur Verfügung stellen.
unit uMyStuff; interface type TFall = (null,eins,zwei,alle); procedure berechneQuadGlei(a,b,c : real; var fall : TFall; var x1,x2 : real); implementation procedure berechneQuadGlei(a,b,c : real; var fall : TFall; var x1,x2 : real); var d,wd : real; begin if a = 0 then if b = 0 then if c = 0 then fall := alle else fall := null else begin fall := eins; x1 := -c/b; x2 := x1; end else begin d := b*b-4*a*c; if d > 0 then begin fall := zwei; wd := sqrt(d); x1 := (-b-wd)/2/a; x2 := (-b+wd)/2/a; end else if d = 0 then begin fall := eins; x1 := -b/2/a; x2 := x1; end else fall := null; end; end; end.
Man nennt übrigens den Kopf einer Prozedur zusammen mit der Parameterliste die Signatur der Prozedur.