AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Funktionsname im COde nutzen

Ein Thema von t2000 · begonnen am 21. Mär 2020 · letzter Beitrag vom 23. Mär 2020
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
232 Beiträge
 
Delphi 12 Athens
 
#1

Funktionsname im COde nutzen

  Alt 21. Mär 2020, 19:30
Delphi-Version: 10.3 Rio
Gibt es eine Möglichkeit, in einer function/procedure den Namen der function/procedure im Code zu nutzen?

Folgendes Beispiel:

Delphi-Quellcode:
function MachWas( input: string): integer;
begin
  ShowMessage( 'Die Funktion heißt: '+ function_name);
end;
Anzeigen soll die Funktion dann: "Die Funktion heißt: MachWas"

Gibt es sowas?

Grund: Ich habe bei ganz ganz vielen Funktionen für den Fehlerfall Results, die die Location mitliefern. Z.B. 'Unitname.Class.Methodenname'

Klar. Ich kann das als String 'MachWas' reinschreiben. Ab für ein vielfaches Cut'n Copy wäre soetwas nicht schlecht.

VG
Thomas
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#2

AW: Funktionsname im COde nutzen

  Alt 21. Mär 2020, 20:11
Guck mal da.
How To Get the Name of the Current Procedure/Function in Delphi (As a String)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.075 Beiträge
 
Delphi 12 Athens
 
#3

AW: Funktionsname im COde nutzen

  Alt 21. Mär 2020, 20:16
Mit Assert, würde ich aber nicht empfehlen (sondern abraten).
https://stackoverflow.com/questions/...tion-without-u
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
485 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Funktionsname im COde nutzen

  Alt 22. Mär 2020, 06:03
Kurz und knackig: Es geht allgemein betrachtet nicht. Du kannst über die Debug-Info beispielsweise so etwas machen, nur ist die in der Release-Konfiguration beispielsweise nicht verfügbar.
Dennis
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#5

AW: Funktionsname im COde nutzen

  Alt 22. Mär 2020, 08:28
nur ist die in der Release-Konfiguration beispielsweise nicht verfügbar.
doch

Niemand verbietet dir in dieser Config die MAP-Datei, die externen Debuginfos und/oder Delphi-Debuginfos zu aktivieren.

Es gibt auch einige MAP zu DBG Converter, womit dann auch die Debug-API von Windows zurecht kommt.
https://docs.microsoft.com/en-us/win...help-functions > Symbol Handler
Es wäre natürlich viel zu einfach, wenn Delphi auch die Internen Debug Infos erzeugen würde, so wie jeder andere normale Windows PE-erzeugende Compiler.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (22. Mär 2020 um 08:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.596 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Funktionsname im COde nutzen

  Alt 22. Mär 2020, 10:31
Gibt es nicht seit einer der neuern Delphi-Versionen sowas wie TClass.ImplementationUnit und ähnliche Funktionen? Mein Gedächtnis lässt mich da gerade im Stich, aber irgendwas in der Richtung war da.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#7

AW: Funktionsname im COde nutzen

  Alt 22. Mär 2020, 10:49
TObject.UnitName
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.596 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Funktionsname im COde nutzen

  Alt 22. Mär 2020, 11:38
Ja, das war's. Danke.

Hilft aber bei der Frage des OP leider auch nicht weiter. Ich hatte in Erinnerung, dass es noch weitere solcher Funktionen gab, aber das scheint nicht so zu sein.
Thomas Mueller

Geändert von dummzeuch (22. Mär 2020 um 15:26 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#9

AW: Funktionsname im COde nutzen

  Alt 22. Mär 2020, 12:52
"neuere" ... seit bestimmt schon mindestens über einem dutzend Jahren findet man die Unit und das Modul (EXE/DLL/BPL) in der Typinfo, also von dort wo es deklariert wurde.

Aber Infos der Implementation (Aufrufer/Ersteller und die Position) gibt es nicht.


In uralten Delphis vor D7 war es noch bedingt möglich sich ins PreCompile reinzuhängen und sowas wie eine Makro-Funktion nachrüsten, aber das war einmal.
Jemand hier aus dem Forum hatte da mal das __FILE__, __LINE__, und __FUNCTION__ vom PHP nachgebaut.
https://www.delphipraxis.net/59965-s...__-delphi.html

Einzige Möglichkeit
Weg von Delphi und wechseln zum C++Builder, aber da gibt es bestimmt besserere C++-Compiler.
http://docwiki.embarcadero.com/RADSt...defined_Macros
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (22. Mär 2020 um 13:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
232 Beiträge
 
Delphi 12 Athens
 
#10

AW: Funktionsname im COde nutzen

  Alt 22. Mär 2020, 14:20

Da habe ich ja eine interessante Diskussion losgetreten.
Ich werde für mich jetzt die Namen einfach reinschreiben. Sooo wichtig/dringend ist es für mich nicht. Habe einfach in meinem ErrorMessage-System eine "Location"-String Variable drin, die mir die Position mitteilt. Ist bei einem größeren System mit Error-Klassen sehr hilfreich.
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:22 Uhr.
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