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