Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mehrfach vorkommende Programmzeilen vereinfachen (https://www.delphipraxis.net/115150-mehrfach-vorkommende-programmzeilen-vereinfachen.html)

sx2008 7. Jun 2008 13:42

Re: Mehrfach vorkommende Programmzeilen vereinfachen
 
Ein Universallösung gibt es nicht - in keiner Programmiersprache.
Aber es gibt bestimmte Lösungswege:
1.) wann immer möglich, die Funktionen der VCL & RTL benützen um daraus etwas Grösseres aufzubauen
2.) mehrfach benötigten Code in eigene Units auslagern - ganz besonderns dann, wenn man den Code auch in anderen Anwendungen brauchen könnte
3.) Objekt-orientiert Programmieren! ermöglicht die Wiederverwendung von Code
4.) Funktionen in Funktionen schachteln. Das ist eine Besonderheit von Pascal & Delphi, dass man in einer Funktion/Procedure eigene Hilfsfunktionen deklarieren kann.
Dies stellt auch einen teilweisen Ersatz der aus C/C++ bekannten Makros dar.
Delphi-Quellcode:
procedure BerechneIrgendWas(a, b : double);
var
  h10proz, h90proz : double;
  function Unterberechnung(x:double):double;
  begin
    result := a * x + (1-x) * b; // Zugriff auf die Variablen der umschl. Prozedure
  end;
begin
  h10proz := Unterberechnung(0.1);
  h90proz := Unterberechnung(0.9);
Das ist auch ein Ersatz für die gerade eben vorgeschlagenen Refinements.
Aber VORSICHT: nicht zu viel in eine Funktion/Procedure packen, sonst wird's unübersichtlich
5.) externe Biblitheken verwenden; nicht immer das Rad neu erfinden!!
sehr empfehlenswert ist die JCL: http://sourceforge.net/projects/jcl/

Avicenna 7. Jun 2008 15:27

Re: Mehrfach vorkommende Programmzeilen vereinfachen
 
Ich bedanke mich für eure Antworten, besonders für die ausführliche von sx2008. Es handelt sich um eine schöne Auflistung der Möglichkeiten.

Ich sehe nun ein, dass sich mein Programm nicht weiter vereinfachen lässt (ich hatte bereits objekt-orientiert programmiert).

Viele Grüße,
Avicenna


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:30 Uhr.
Seite 2 von 2     12   

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