@Harry Stahl:
Mir fällt nur eine Lösung ein, nicht ganz was du willst aber ...
Erstelle eine
Unit, die du in allen Units unter Uses aufführst und schreibe in diese
Unit Prozeduren/Funktionen mit den Namen, die Dir gefallen.
Und diese Funktionen rufen dann die Routinen mit den Dir zu langen Namen auf.
Ich hab mal etwas ähnliches gemacht, allerdings mit einer anderen Zielsetzung.
Bei mir war das die Prozedur ShowMessage.
Ich nutze die oft (so wie vermutlich jeder), um irgendwelche Rechenergebnisse, auszugeben.
Irgendwann war ich es leid immer zu schreiben
ShowMessage(IntToStr(A)+', '+IntToStr(B)+', '+IntToStr(C));
oder
ShowMessage(IntToStr(A)#13+IntToStr(B)+#13+IntToStr(C));
Also schuf ich solch eine
Unit die u.A. zwei Prozeduren enthielt konnte dann schreiben
Mess([A,B,C]);
oder
Mess([A,B,C], #13);
oder auch
Mess(IntToStr(A)+' '+IntToStr(B)+' '+IntToStr(C));
Delphi-Quellcode:
interface
uses
Vcl.Dialogs;
PROCEDURE Mess(
const Args:
array of const;
const Delimiter:String='
, ');
overload;
PROCEDURE Mess(
const S:
String);
overload;
implementation
PROCEDURE Mess(
const Args:
array of const;
const Delimiter:String='
, ');
var I:Integer; S:
String;
begin
for I:=0
to High(Args)
do
with Args[I]
do begin
case VType
of
vtInteger : S:=S+IntToStr(VInteger);
vtBoolean : S:=S+BoolToStr(VBoolean);
vtChar : S:=S+VChar;
vtExtended : S:=S+FloatToStr(VExtended^);
vtString : S:=S+VString^;
vtPointer : S:=S+IntToHex(NativeInt(VPointer),SizeOf(Pointer)*2);
vtPChar : S:=S+VPChar;
vtObject : S:=S+VObject.ClassName;
vtClass : S:=S+VClass.ClassName;
vtWideChar : S:=S+VWideChar;
vtPWideChar : S:=S+VPWideChar;
vtAnsiString: S:=S+
string(VAnsiString);
vtCurrency : S:=S+CurrToStr(VCurrency^);
vtVariant : S:=S+
string(VVariant^);
vtInterface : S:=S+
String(VInterface);
vtInt64 : S:=S+IntToStr(VInt64^);
else Continue;
end;
S:=S+delimiter;
end;
if S<>'
'
then SetLength(S,Length(S)-Length(Delimiter));
ShowMessage(S);
end;
PROCEDURE Mess(
const S:
String);
begin
ShowMessage(S);
end;
end.