AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Abkürzungen für RTL-Funktionen möglich?
Thema durchsuchen
Ansicht
Themen-Optionen

Abkürzungen für RTL-Funktionen möglich?

Ein Thema von Harry Stahl · begonnen am 4. Okt 2018 · letzter Beitrag vom 5. Okt 2018
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.534 Beiträge
 
Delphi 11 Alexandria
 
#1

Abkürzungen für RTL-Funktionen möglich?

  Alt 4. Okt 2018, 19:04
Ist es eigentlich irgendwie möglich, dem Compiler irgendwelche selbst definierten Abkürzungen (Alias) für lange Funktionsnamen beizubringen?

Mich ärgern so Sachen wie

IncludeTrailingPathDelimiter

oder auch nur ExtractFileName.

Es macht die Zeilen lang und versperrt die Sicht auf eigentliche Funktionalität.

So könnte man Abkürzungen definieren etwa wie EFN (für ExtractFilename ) oder (ITPD)

Bin mir selber nicht ganz sicher, ob das sinnvoll wäre, aber mich würde vor allem interessieren, ob das technisch möglich wäre.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: Abkürzungen für RTL-Funktionen möglich?

  Alt 4. Okt 2018, 19:12
Klingt irgendwie nach einem XY-Problem.

Zitat:
Es macht die Zeilen lang und versperrt die Sicht auf eigentliche Funktionalität.
Deutet für mich auf sowieso unübersichtlichen Code hin, in dem nicht nur bisschen Dateipfade oder so zusammengetüftelt werden sondern noch anderes Zeugs.
Ansonsten könnt man die eigentliche Funktionalität nämlich am Methodennamen ablesen.

Stichwort: Single Level of Abstraction
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie ( 4. Okt 2018 um 19:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Abkürzungen für RTL-Funktionen möglich?

  Alt 4. Okt 2018, 20:11
Für Typen kann man Aliase erstellen,
bei Variablen kann man sie überdecken (absolute),
aber für Funktionen kann man nur pointern oder inlinen.

Nur für Interfaces kann man bei der Implementation eine "Umleitung" auf andere Methodennamen definieren.

Für verschobene/zentralisierte Funktionen hatte ich mir aber auch schon ein/zwei Mal eine Alias-Behandlung oder Umleitung gewünscht.
z.B. in der alten Unit weiterhin den Aufruf im Interface, aber die Implementierung in der neuen Unit. (ohne das durch eine neue Inline-Methode schieben zu müssen, was z.B. bei Array-Property oftmals sich nicht inlinen lässt)

Delphi-Quellcode:
var kurz: procedure(....);

kurz := @gaaaaaaaaaaanzlang;
Die Variablen kann man auch hinter einem readonly Property oder eventuell auch hinter einer writeable Konstante verstecken.

Delphi-Quellcode:
procedure kurz(...); inline;
begin
  gaaaaaaaaaaanzlang(...);
end;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 4. Okt 2018 um 20:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.534 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Abkürzungen für RTL-Funktionen möglich?

  Alt 4. Okt 2018, 20:37
@ Stevie: Nö, weder XY-Problem, noch Single Level ob abstraction.

Während sich das XY-Problem ja auf den Fragesteller bezieht, wie nennt man es eigentlich, wenn der Antwortende nicht auf die eigentliche Frage eingeht (technische Machbarkeit), sondern statt dessen Vermutungen über Intentionen des Fragestellers oder gegebene Umstände ("sowieso unübersichtlicher Code") anstellt?
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#5

AW: Abkürzungen für RTL-Funktionen möglich?

  Alt 4. Okt 2018, 20:42
@Harry

Du programmierst doch nicht erst seit gestern und du hast bestimmt schon mal eine procedure oder function geschrieben.

Die Lösung ist so naheliegend (siehe himitsu), dass man echt ins Grübeln kommt, was du eigentlich wirklich fragen willst.

Wenn du nur wissen willst, wie man eine procedure oder function mit einem kurzen Namen schreibt, die dann eine procedure oder function mit langem Namen aufruft, dann kann ich irgendwie nur ungläubig mit dem Kopfe schütteln
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.534 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Abkürzungen für RTL-Funktionen möglich?

  Alt 4. Okt 2018, 20:57
@Schokohase: Hast Du die Frage genau gelesen?

Ich habe gefragt:

"Ist es eigentlich irgendwie möglich, dem Compiler irgendwelche selbst definierten Abkürzungen (Alias) für lange Funktionsnamen beizubringen?"

Und: Nicht für eigene, sondern für RTL-Funktionen.

Ich wollte da keine Umwege über Pointer oder Aufruf von anderen Funktionen gehen.

Es geht doch z.B.

Type
str = string;

Daher fragte ich mich, ob es so etwas ähnliches nicht auch für Funktionen gibt. Es geht also eher um eine Art Makro-Funktionalität.

Und nein, ich bin mir nicht zu schade, um im Zweifel auch mal eine Frage zu stellen, wo jemand meinen könnte, den Kopf schütteln zu müssen.

Eine alte chinesische Weisheit sagt da:

Wer fragt, ist vielleicht ein Narr für fünf Minuten. Wer nicht fragt, bleibt ein Narr für immer.
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#7

AW: Abkürzungen für RTL-Funktionen möglich?

  Alt 4. Okt 2018, 21:06
Wenn du mir noch erklären könntest, wodurch sich die RTL Funktionen technisch von den eigenen Funktionen unterscheiden?

Mir ist da nämlich kein technischer Unterschied bekannt. (ja, werden mitgeliefert, sind vorkompiliert, ... alles eher organisatorischer Krams) oder kannst du an dem Code erkennen ob diese nun RTL oder eigen ist?

Zur Frage selber:

Einen Type-Alias gibt es.
Einen procedure/function Alias gibt es nicht.

Das was im weitesten Sinne dem nahe kommen würde, ist das, was man bei einem Interface machen kann.
Delphi-Quellcode:
type
  IFoo = interface
    procedure DoFoo();
  end;

  TFooImplementer = class( TInterfacedObject, IFoo )
    procedure IrgenEinName();
    procedure IFoo.DoFoo = IrgendEinName;
  end;

procedure TFooImplementer.IrgendEinName();
begin
end;
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.534 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Abkürzungen für RTL-Funktionen möglich?

  Alt 4. Okt 2018, 21:21
Der Unterschied zwischen RTL-Funktionen und meinen ist ganz einfach: Meine eigenen Funktionen kann ich umbenennen und im Zweifel einen kurzen aber prägnanten Namen geben, bei RTL-Funktionen geht das eben nicht, die sind namentlich fix und vorgegeben.

Aber Deine Aussage "Einen procedure/function Alias gibt es nicht." wäre dann ja schon eine mir weiter helfende Antwort auf meine Frage.

Wie gesagt, ich habe ja geschrieben, dass ich Zweifel habe, ob das überhaupt Sinn machen würde, aber es interessierte mich einfach.
Und da ich inzwischen weiß, obwohl ich schon lange mit Delphi programmiere, dass es immer noch was zu entdecken gibt, was ich noch nicht kenne, kann man so eine Frage ja mal stellen.

Aber evtl. hätte ich mir noch ein wenig mehr Mühe mit der Frage machen und sie noch präziser formulieren sollen...
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Abkürzungen für RTL-Funktionen möglich?

  Alt 4. Okt 2018, 21:35
Zitat:
So könnte man Abkürzungen definieren etwa wie EFN (für ExtractFilename )
Dir steht frei eine Helfer-Unit anzulegen die sich vom Original Ableitet.
Delphi-Quellcode:
function EFN(const FileName: string): string;
begin
 Result := ExtractFileName(FileName);
end;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#10

AW: Abkürzungen für RTL-Funktionen möglich?

  Alt 4. Okt 2018, 21:52
Der Unterschied zwischen RTL-Funktionen und meinen ist ganz einfach: Meine eigenen Funktionen kann ich umbenennen und im Zweifel einen kurzen aber prägnanten Namen geben, bei RTL-Funktionen geht das eben nicht, die sind namentlich fix und vorgegeben.
Das ist ein organisatorischer und kein technischer Grund.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 22:15 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