Einzelnen Beitrag anzeigen

Rolf Frei

Registriert seit: 19. Jun 2006
647 Beiträge
 
Delphi 11 Alexandria
 
#1

D12: Type mystring = string erzeugt nun imkompatible Parameter bei Events

  Alt 2. Jul 2024, 14:26
Bin gerade am Upgraden meiner Projekte auf D12 und dabei auf einen seltsamen Fehler gestossen. Alle Events die einen Type verewenden, der als type x=y definiert ist, erzeugen nun in der IDE den Fehler "The itrTaskListNodeLoaded method referenced by itrTaskList.OnNodeLoaded has an incompatible parameter list. Remove the reference?". Was ist hier denn nun schon wieder los und wie kann ich das beheben?

Das Folgende ist ein Beispiel, passiert aber auch bei andereren Komponenten, z.B. THtmlViewer, wo Type ThtString=string gesetzt wird.

Folgender Code stammt aus einer verwendeten Komponente:
Delphi-Quellcode:
type
  TBaseInfoNode = dcntree.TDCTreeNode;
  TNodeLoadedEvent = procedure (Sender : TObject; Node : TBaseInfoNode) of object;
In D11 und älter wurde damit folgendes Event erzeugt:
Delphi-Quellcode:
procedure TfrmMain.itrGroupsNodeLoaded(Sender: TObject; Node: TDCTreeNode);
begin
end
D12 erzeugt nun daraus folgendes:
Delphi-Quellcode:
procedure TfrmMain.itrTaskListNodeLoaded2(Sender: TObject; Node: TBaseInfoNode);
begin
end;
Die IDE kommt hiermit nicht mehr zurecht und erzeugt den obigen Fehler, sobald ich kompilieren will. Wenn ich da sage, dass er die Referenz nicht entfernen soll, kompilliert das Programm und alles scheint zur Runtime normal ohne Fehler zu laufen. Die Event funktinoierenren also. Wo liegt hier der Fehler? Ist das ein Bug der IDE oder kann ich die Type Definition irgenwie anders angeben, damit die IDE wieer checkt, dass TDCTreeNode und TBaseInfoNode das selbe sind?
  Mit Zitat antworten Zitat