AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Verständnisfrage Vorwärtsdeklaration

Ein Thema von Delbor · begonnen am 6. Dez 2017 · letzter Beitrag vom 8. Dez 2017
 
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

Verständnisfrage Vorwärtsdeklaration

  Alt 6. Dez 2017, 12:33
Delphi-Version: XE8
Hi zusammen

Folgende Deklaration im PDFiumFrame:
Delphi-Quellcode:
  TPDFiumFrame = class(TFrame)
  private
// protected
    { Déclarations privées }
    type
      // One point is 1/72 inch (around 0.3528 mm).
      TPointsSize = record
        cx : Double;
        cy : Double;
      end;
 
      TRectD = record
        Left : Double;
        Top : Double;
        Right : Double;
        Bottom : Double;
      end;

      TPDFPage = class; // Sollte die Vorwärtsdeklaration sein
 
// TPDFPage = class
// Index : Integer;
// Handle : HPDFPage;
// Top : Double;
// Rect : TRect;
// Text : HPDFTextPage;
// NoText : Boolean;
// Visible : Integer;
// SelStart : Integer;
// SelStop : Integer;
// Selection: TArray<TRectD>;
// destructor Destroy; override;
// function HasText: Boolean;
// function CharIndex(x, y, distance: Integer): Integer;
// function CharCount: Integer;
// function Select(Start: Integer): Boolean;
// function SelectTo(Stop: Integer): Boolean;
// function ClearSelection: Boolean;
// procedure DrawSelection(DC, BMP: HDC; const Blend: TBlendFunction; const Client: TRect);
// end;

 private
// protected
    FDocument : HPDFDocument;
    FError : Integer;
    FPageCount: Integer;
    FPageSize : TArray<TPointsSize>;
...
Die Deklaration der Klasse TPDFPage habe ich in den public-Abschnitt verschoben, um von der Mainform aus darauf zugrreifen zu können. Da jedoch einige Felder des Frames vom Typ dieser Klasse sind, muss iich diese per Vorwärtsdeklaration bekannt machen, bevor die entsprechenden Felder eingeführt werden. Das Problem ist nur: Delphi meint:

Zitat:
[dcc32 Fehler] PDFium.Frame.pas(48): E2086 Typ 'TPDFiumFrame.TPDFPage' ist nicht vollständig definiert
Ich hab schonmal versucht, diese Deklaration in den public-Teil zu verschieben, wasaber zu sehr seltsamen Konstrukten führte - im Anhang zeigt ein Jpeg, wie das ausgesehen hat. Man beachte Zeile 5 und folgende unterhalb der blau markierten Zeile.
Das Embarcadero-Wiki hat mir dann verraten, das ich die Vorwärzsdeklaration mit einem Semikolon hätte abschliessen müssen.
Was nun diesmal der Grund für Delphis Meckerei ist, hab ich schlicht keine Ahnung.

Das Jpeg 'Vorwärtsdeklaration zeigt, wo ich diese anbringen wollte. Wenn ich ein end darunter schreibe, ist der Bezeichner TPDFPage unbekannt, ohne dieses end ist die Deklaration unvollständig...

Was, zum Kuckuck, mache ich falsch? Nach dieser Seite offenbar nichts. Und trotzdem meckert Delphi!

Gruss
Delbor
Angehängte Grafiken
Dateityp: jpg 16_54_37-SynPDF-master_PDFium.Frame.pas.jpg (83,8 KB, 20x aufgerufen)
Dateityp: jpg 13_18_55-SynPDF-master_PDFium.Frame - Vorwärtsdeklaration.jpg (25,9 KB, 20x aufgerufen)
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
 


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 01:34 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