Oki,
es läuft schon mal nicht schlecht. Ich habe jetzt eine saubere Trennung der Quelltexte vom Berlin und Athens gemacht - damit es keine Überschneidungen gibt, die seltsame Fehler auslösen.
Jetzt gerade habe ich das Problem - was im Berlin kein Problem war - mit einer Meldung:
Zitat:
[dcc32 Fehler] Unit1.pas(2501): E2251 Doppeldeutiger überladener Aufruf von 'ShowMessage'
Vcl.Dialogs.pas(6764): Verwandte Methode: procedure ShowMessage(const string);
Unit1.pas(1726): Verwandte Methode: procedure ShowMessage(const string; Char; TColor);
Mit dieser Funktion, die ich überall im Quelltext habe, schrieb ich mir eine neue Methode, die ein anders gestaltetes Fenster öffnet.
Ich hätte sie natürlich auch ShowMessage1 oder so nennen können, dann aber an hunderten Stellen es so ändern müssen - so ging es einfach am schnellsten.
Ich habe in der
Unit die Deklaration so gemacht:
Delphi-Quellcode:
procedure ShowMessage(const Msg: string; icon:char='i'; color:TColor = clBlue); overload;
implementation
procedure ShowMessage(const Msg: string;icon:char='i'; color:TColor = clBlue); overload;
//Icon: 0:i 1:? 2:X 3:!
begin
// hier mein modales Fenster konfigurieren und anzeigen
end;
Und obwohl das (für Berlin scheinbar) korrekt deklariert ist, meckert Athens herum.
Lasse ich "zur Deklaration springen" - öffnet es "
Vcl.Dialogs" bei Showmessage.
Es ignoriert also meine lokale Deklaration.
Muss das über einen Compiler-Schalter, der das zulässt/vermeidet, bestimmt werden?