Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Hinweis bei Aufruf einer Funktion (https://www.delphipraxis.net/198104-hinweis-bei-aufruf-einer-funktion.html)

Ghostwalker 4. Okt 2018 10:23

Delphi-Version: 10.2 Tokyo

Hinweis bei Aufruf einer Funktion
 
Moinsen,

ich werkel gerade an einer recht umfangreichen Lib. Dabei steh ich vor dem Problem, das ich dem Anwender (Programmierer einer App), einen Hinweis ausgeben möchte.

Delphi-Quellcode:
{$MESSAGE HINT 'Hinweis'}
gibt die Meldung immer aus, egal ob Funktion aufgerufen wird oder nicht.

Ich möchte den Hinweis aber ausgeben, wenn die Funktion von der App auch wirklich genutzt wird.

Kennt jemand da eine Möglichkeit sowas zu bewerkstelligen ?

Der schöne Günther 4. Okt 2018 10:32

AW: Hinweis bei Aufruf einer Funktion
 
Du kannst eine Methode
Delphi-Quellcode:
experimental
oder
Delphi-Quellcode:
deprecated
(mit zusätzlicher Meldung) markieren.

Luckie 4. Okt 2018 11:27

AW: Hinweis bei Aufruf einer Funktion
 
Beides würde mich als Entwickler aber davon abhalten diese Funktion produktiv einzusetzen. Und das ist wohl nicht im Sinne von Ghostwalker.

Bernhard Geyer 4. Okt 2018 11:48

AW: Hinweis bei Aufruf einer Funktion
 
Was soll mit diesem Hinweis bezweckt werden?
Was für eine Problem gibt es wenn diese Funktion genutzt wird?

Mein Erfahrung ist das solche Hinweise fast immer Ignoriert werden.

Aviator 4. Okt 2018 12:02

AW: Hinweis bei Aufruf einer Funktion
 
Wenn es ein Hinweis auf irgendeine Vorbereitung sein soll, dann würde ich das in dieser Funktion überprüfen und eine entsprechende aussagekräftige Exception werden.

Ghostwalker 4. Okt 2018 12:20

AW: Hinweis bei Aufruf einer Funktion
 
@Bernhard

Sinn und Zweck der Meldung sind 2 Dinge. Zum einen einfach als Info, das sich der Anwenderprogrammierer nicht wundert, wenn "Äpfel + Birnen" tatsächlich funktioniert. Zum anderen aber auch als Hinweis, das man hier, je nach Anwendung, ggf. Optimierungspotenzial hat.

Im konkreten Fall gehts um Operatoren mehrer Typen, die untereinander via Basistyp verknüpft sind.

Beispiel:

Delphi-Quellcode:
Type
  Seconds = Record
  private
    fvalue : int64;
  public
    Class Operator Add(const left:Seconds;const right:int64):Seconds
  end;

  Minutes = Record
  private
   fvalue : int64;
  public
  Class Operator Add(const Left:Seconds;right:Minutes):Seconds //<-- hier würde beim Aufruf ein Hinweis kommen
end;
Beim Aufruf von Minutes.Add würd ich gern einen Hinweis ausgeben, das die Minuten quasi umgerechnet werden, um die Operation durch zu führen.

So wie es aussieht ist deprecaded wohl die einzige Alternative, da man hier einen eigenen Text angeben kann (library usw. erlauben das nicht).

Im prinzip bräuchte ich was wie:

Delphi-Quellcode:
{$MESSAGE HINT CALL 'Mein Hinweis'}
oder

Delphi-Quellcode:
function Blubb:boolean;CMESSAGE HINT CALL 'Mein Hinweis';
Der 1.Parameter gibt an, um was es sich handelt (HINT|WARNING|ERROR). Der zweite gibt an, wann das ganze
ausgegeben werden soll (CALL = Aufruf der Funktion/Prozedur/Operator oder COMPILE beim compilieren der Funktion. Schließlich die Nachricht, die ausgegeben werden soll.

himitsu 4. Okt 2018 12:31

AW: Hinweis bei Aufruf einer Funktion
 
Help-Insight / Documentaion-Insight
Delphi-Quellcode:
    ///   <summary>
    ///     bla bla bla
    ///   </summary>
    Class Operator Add(const left:Seconds;const right:int64):Seconds
Da man Klassenoperatoren aber nicht direkt aufruft (der Methodenname steht nicht im aufrufenden Quelltext),
würde dieser Hilfetext wohl nirgendwo zu sehen sein. (hier also nur zur Dokumentaion beim Ansehen des Quellcodes)

Der schöne Günther 4. Okt 2018 15:18

AW: Hinweis bei Aufruf einer Funktion
 
Hätte ich auch gesagt. API-Dokumentation und/oder ein Wiki. Wer die Anleitung nicht liest, Quelltext in den Editor wirft und dann sagt "Hurra, er kompiliert. Wir liefern aus" ist selber schuld 8-)

Sherlock 4. Okt 2018 15:29

AW: Hinweis bei Aufruf einer Funktion
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1414880)
Hätte ich auch gesagt. API-Dokumentation und/oder ein Wiki. Wer die Anleitung nicht liest, Quelltext in den Editor wirft und dann sagt "Hurra, er kompiliert. Wir liefern aus" ist selber schuld 8-)

Das kann ich so nicht akzeptieren. Mann muss ja schon Delphi Korrektur lesen, außerdem 3rd Party Komponenten, den eigenen Code und jetzt noch das Framework von Kollegen? Kann man dafür nicht irgendwen rausdeuten, so wie im Freeware-Bereich Horden von Menschen nur darauf warten den Linux Kernel zu reviewen und zu debuggen?

:stupid:


Sherlock

Bernhard Geyer 4. Okt 2018 15:33

AW: Hinweis bei Aufruf einer Funktion
 
Zitat:

Zitat von himitsu (Beitrag 1414865)
Help-Insight / Documentaion-Insight
Delphi-Quellcode:
    ///   <summary>
    ///     bla bla bla
    ///   </summary>
    Class Operator Add(const left:Seconds;const right:int64):Seconds

Hätte ich jetzt auch vorgeschlagen.

Gut Dokumentieren das der Nutzer gleich sieht was er nutzt.
Evtl. den Methodennamen passend wählen das man sowas schon aus dem Namen ableiten könnte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:39 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz