AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Method Resolution Clause --> Undeclared Identifier
Thema durchsuchen
Ansicht
Themen-Optionen

Method Resolution Clause --> Undeclared Identifier

Ein Thema von Aviator · begonnen am 16. Jan 2017 · letzter Beitrag vom 16. Jan 2017
Antwort Antwort
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Method Resolution Clause --> Undeclared Identifier

  Alt 16. Jan 2017, 16:55
Wieso geht stdcall nicht was meckert wer da?
Fritz Westermann
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Method Resolution Clause --> Undeclared Identifier

  Alt 16. Jan 2017, 17:07
Wieso geht stdcall nicht was meckert wer da?
Kommando zurück mit dem stdcall . Da hat bei mir bei der Interface Deklaration noch etwas gefehlt. Aber der andere Fehler bleibt leider weiterhin.
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Method Resolution Clause --> Undeclared Identifier

  Alt 16. Jan 2017, 17:10
Ich denke da musst Du noch mal alles genau anschauen. Das hier funktioniert einwandfrei,
nehme ich aber ein stdcall weg zb bei I2Init bekomme ich Deinen beschrieben Fehler

Delphi-Quellcode:
unit Unit24;

interface

type

  IInterface1 = interface
    function Init: Boolean; stdcall;
  end;

  IInterface2 = interface
    function Init: Boolean; stdcall;
  end;

  IInterface3 = interface
    function Init: Boolean; stdcall;
  end;

  TTestClass = class(TInterfacedObject, IInterface1, IInterface2, IInterface3)
  private
    function I2Init: Boolean; stdcall;
    function I3Init: Boolean; stdcall;

  public
    function Init: Boolean; stdcall; // Init aus IInterface1
    function IInterface2.Init = I2Init;
    function IInterface3.Init = I3Init;
  end;

implementation

{ TTestClass }

function TTestClass.I2Init: Boolean;
begin
  result := false;
end;

function TTestClass.I3Init: Boolean;
begin
  result := false;
end;

function TTestClass.Init: Boolean;
begin
  result := false;
end;

end.
Fritz Westermann
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Method Resolution Clause --> Undeclared Identifier

  Alt 16. Jan 2017, 17:24
Hallo FritzeW,

hab nochmal über alles drübergschaut und schlussendlich auch den Fehler gefunden.

Der Fehler kam daher, dass ich bei einem anderen Interface in dem ich schon Method Resolution Clauses verwenden musste das stdcall vergessen habe und daher dachte, dass das nicht funktioniert. Deshalb habe ich das auch bei den neuen Methoden weggelassen und dadurch auch den Fehler an der falschen Stelle gesucht.

Dumme Fehler müssen bestraft werden.

Danke das du meine Kugel mit deinem ersten Beitrag schon ins Rollen gebracht hast. Deinen letzten Beitrag habe ich übrigens erst gesehen, als ich meine Lösung posten wollte.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Method Resolution Clause --> Undeclared Identifier

  Alt 16. Jan 2017, 17:30
Ach noch eins. Wenn wir schon bei dem Thema sind.

Ist es sinnvoll, alle Methoden auf die gleiche Methode umzubiegen wenn alle das gleiche ausführen sollen? Also in etwa so?

Delphi-Quellcode:
unit Unit24;

interface

type

  IInterface1 = interface
    function Init: Boolean; stdcall;
  end;

  IInterface2 = interface
    function Init: Boolean; stdcall;
  end;

  IInterface3 = interface
    function Init: Boolean; stdcall;
  end;

  TTestClass = class(TInterfacedObject, IInterface1, IInterface2, IInterface3)
  private
    function DoInit: Boolean; stdcall;
  public
    function IInterface1.Init = DoInit;
    function IInterface2.Init = DoInit;
    function IInterface3.Init = DoInit;
  end;
Theoretisch könnte man dann auch ein Basis-Interface machen, aber in dem Fall habe ich das nicht. Könnte ich theoretisch mal noch umbauen. Aber nur so aus Prinzip. Gibt es hier irgendwelche Nachteile? Kompilieren tut es nämlich.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Method Resolution Clause --> Undeclared Identifier

  Alt 16. Jan 2017, 17:38
Ist es sinnvoll, alle Methoden auf die gleiche Methode umzubiegen wenn alle das gleiche ausführen sollen? Also in etwa so?
Wenn die eh das Selbe machen, wozu dann umbiegen?
Delphi-Quellcode:
  IInterface1 = interface
    function Init: Boolean; stdcall;
  end;

  IInterface2 = interface
    function Init: Boolean; stdcall;
  end;

  IInterface3 = interface
    function Init: Boolean; stdcall;
  end;

  TTestClass = class(TInterfacedObject, IInterface1, IInterface2, IInterface3)
  public
    function Init: Boolean; stdcall;
  end;
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Method Resolution Clause --> Undeclared Identifier

  Alt 16. Jan 2017, 17:42
Ist es sinnvoll, alle Methoden auf die gleiche Methode umzubiegen wenn alle das gleiche ausführen sollen? Also in etwa so?
Wenn die eh das Selbe machen, wozu dann umbiegen?
Delphi-Quellcode:
  IInterface1 = interface
    function Init: Boolean; stdcall;
  end;

  IInterface2 = interface
    function Init: Boolean; stdcall;
  end;

  IInterface3 = interface
    function Init: Boolean; stdcall;
  end;

  TTestClass = class(TInterfacedObject, IInterface1, IInterface2, IInterface3)
  public
    function Init: Boolean; stdcall;
  end;
Hi, ja in dem Moment wo du es gesagt hast ist mir das auch gerade eingefallen. Man muss die Methode dann ja nicht 3x implementieren sondern kann die einfach nur mit dem Namen direkt einbinden und nutzen. War Schwachsinn ...
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz