AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi E2291 Implementierung der Interface-Methode ... fehlt
Thema durchsuchen
Ansicht
Themen-Optionen

E2291 Implementierung der Interface-Methode ... fehlt

Ein Thema von SearchBot · begonnen am 23. Aug 2024 · letzter Beitrag vom 26. Aug 2024
Antwort Antwort
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
305 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

E2291 Implementierung der Interface-Methode ... fehlt

  Alt 23. Aug 2024, 17:16
Hi,

ich habe jetzt Delphi 12 und davor aber Berlin gehabt.

Eine Komponente, die auch für 10.4 gemacht ist (neuere hab ich nicht, daher nehme ich diese Version; die Berlin-Version ließ sich fehlerfrei compilieren) erzählt mir jetzt beim Compilieren:
Zitat:
[dcc32 Fehler] .. E2291 Implementierung der Interface-Methode IDWriteTextRenderer.DrawInlineObject fehlt
Da schau ich dann genau hin:
Delphi-Quellcode:
type
  TTextRendering = class(TInterfacedPersistent, IDWriteTextRenderer) // <- diese Zeile wird bemeckert, das "class" unterwellt
  private
// unter anderen:
    function DrawInlineObject(clientDrawingContext: Pointer; originX: Single;
      originY: Single; var inlineObject: IDWriteInlineObject; isSideways: BOOL;
      isRightToLeft: BOOL; const clientDrawingEffect: IUnknown): HResult; stdcall;
und weiter unten in der Unit
Delphi-Quellcode:
function TTextRendering.DrawInlineObject(clientDrawingContext: Pointer;
  originX: Single; originY: Single; var inlineObject: IDWriteInlineObject;
  isSideways: BOOL; isRightToLeft: BOOL; const clientDrawingEffect: IUnknown): HResult;
begin
  Result := S_OK;
end;
Hä? Ist doch da?!

Und das IDWriteTextRenderer ist in Winapi.D2D1 zu finden, Zeile 5830:
Delphi-Quellcode:
  IDWriteTextRenderer = interface(IDWritePixelSnapping)
// unter anderem
    function DrawInlineObject(clientDrawingContext: Pointer; originX: Single;
      originY: Single; const inlineObject: IDWriteInlineObject; isSideways: BOOL;
      isRightToLeft: BOOL; const clientDrawingEffect: IUnknown): HResult; stdcall;
Was braucht der Compiler denn jetzt?
Wie behebe ich das?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.593 Beiträge
 
Delphi 12 Athens
 
#2

AW: E2291 Implementierung der Interface-Methode ... fehlt

  Alt 23. Aug 2024, 17:54
In Deiner „alten“ Methode ist InlineObject als Var deklariert, im neuen Delphi aber als Const. Daher wird die Methode nicht mehr als zum Interface gehörig erkannt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
305 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: E2291 Implementierung der Interface-Methode ... fehlt

  Alt 26. Aug 2024, 08:26
Aha. Und wie ändere ich das?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.593 Beiträge
 
Delphi 12 Athens
 
#4

AW: E2291 Implementierung der Interface-Methode ... fehlt

  Alt 26. Aug 2024, 09:11
Indem Du in "Deinem" Source den Var- in einen Const-Parameter änderst.
Delphi-Quellcode:
function DrawInlineObject(clientDrawingContext: Pointer; originX: Single;
      originY: Single; {alt: var}const inlineObject: IDWriteInlineObject; isSideways: BOOL;
      isRightToLeft: BOOL; const clientDrawingEffect: IUnknown): HResult; stdcall;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
305 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: E2291 Implementierung der Interface-Methode ... fehlt

  Alt 26. Aug 2024, 09:18
Ah

Beeindruckend, sofort war der Fehler weg. Dankeschön, wieder was gelernt
  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 10:55 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