![]() |
||
| Delphi |
Material
erste Schritte
Variablen
Typen
Datenstruktur
Zuweisung
Komponenten
StyleGuide
Kontrollstrukturen
Fehler
Debuggen
Funktionen
Prozeduren
Grafik
Ereignisse
Programme
OOP
Benutzung einer Klasse
Projektverwaltung
Muster
Format
String-Operationen
Datei
Dialoge
Menü
Datenbank
WinAPI
Zufallszahlen
RE
Exceptions
alte Delphiseite
|
|
|
Unit-Konzept |
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.