Thema: Delphi Unit Aufbau

Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#14

Re: Unit Aufbau

  Alt 21. Mär 2006, 18:10
Zitat von ichbins:
achja, NIEMALS die Prozedur einfach so in die Unit schreiben sondern IMMER auch im Interface-Bereich reinschreiben. Sonst kann die Prozedur von anderen Prozeduren, die über der einen stehen, nicht aufgerufen werden etc.
Sorry, aber das stimmt so auch nicht. Wie bereits erwähnt kannst du Prozeduren auch nur im Implementationteil benutzen, wenn es Prozeduren sind, die eben nie von aussen aufgerufen werden sollen. Sagen wir mal (ganz stupide) du baust einen Rechner (wie kreativ). Deine Idee wäre es jetzt, dass deine Unit eine Methode Compute hat, die bekommt 3 Strings (eingegebene Zahlen + Rechenzeichen). Compute gibt dir den String zurück, der das Ergebnis repräsentiert.
Jetzt überlegst du dir, du möchtest als erstes mal die Strings auf Gültigkeit prüfen (deshalb sind's hier auch erstmal Strings). Dazu möchtest du entscheiden ob die Zahlen gültig sind und du das Rechenzeichen kennst. Nehmen wir nun an, du entscheidest dich das in Methoden auszulagern, dann könnte es zu folgendem kommen:

Delphi-Quellcode:
interface
  function compute(const Number1, Number2, Operator : String) : String;

implementation
  
  // forwarded, da die Implementierung nach dem ersten Aufruf folgt
  function isValidNumber(const Number : String) : Boolean; forward;
  function isValidOperator(const Operator : String) : Boolean; forward;

  function compute(const Number1, Number2, Operator : String) : String;
    begin
      // testen ob gültige Nummern und Operator
      if isValidNumber(Number1) and isValidNumber(Number2) and isValidOperator(Operator) then
        begin
          ...
        end; // if isValidNumber(Number1) and isValidNumber(Number2) and isValidOperator(Operator)
    end; // function compute(const Number1, Number2, Operator : String) : String;

  function isValidNumber(const Number : String) : Boolean;
    begin
      ...
    end;
Wichtig ist halt nur, dass Methoden die folgen mit forward deklariert oder halt vor dem ersten Aufruf implementiert werden müssen. Es macht aber durchaus Sinn Methoden nur im Implementationteil zu halten.
  Mit Zitat antworten Zitat