Delphi: EReadError with message ‘Property PageNr does Not Exist’.
- by lyborko
Hi,
I get SOMETIMES error message: EReadError with message 'Property PageNr does Not exist', when I try to run my own project. I am really desperate, because I see simply nothing what is the cause. The devilish is that it comes up sometimes but often. It concerns of my own component TPage. Here is declaration
TPage = class(TCustomControl) //
private
FPaperHeight, FPaperWidth:Integer;
FPaperBrush:TBrush;
FPaperSize:TPaperSize;
FPaperOrientation:TPaperOrientation;
FPDFDocument: TPDFDocument;
FPageNr:integer;
procedure PaintBasicLayout;
procedure PaintInterior;
procedure SetPapersize(Value: TPapersize);
procedure SetPaperHeight(Value: Integer);
procedure SetPaperWidth(Value: Integer);
procedure SetPaperOrientation(value:TPaperOrientation);
procedure SetPaperBrush(Value:TBrush);
procedure SetPageNr(Value:Integer);
protected
procedure CreateParams(var Params:TCreateParams); override;
procedure AdjustClientRect(var Rect: TRect); override;
public
constructor Create(AOwner: TComponent);override;
destructor Destroy;override;
// function GetChildOwner:TComponent; override;
procedure DrawControl(X,Y :integer; Dx,Dy:Double; Ctrl:TControl;NewCanvas:TCanvas);
// procedure GetChildren(Proc:TGetChildProc; Root:TComponent); override;
procedure Loaded; override;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
procedure Paint; override;
procedure PrintOnCanvas(X,Y:integer; rX,rY:Double; ACanvas:TCanvas);
procedure PrintOnPDFCanvas(X,Y:integer);
procedure PrintOnPrinterCanvas(X,Y:integer);
procedure Resize; override;
procedure SetPrintKind(APrintKind:TPrintKind; APrintGroupindex:Integer);
published
property PageNr:integer read FPageNr write SetPageNr;
property PaperBrush: TBrush read FPaperBrush write SetPaperBrush;
property PaperHeight: integer read FPaperHeight write SetPaperHeight;
property PaperWidth: integer read FPaperWidth write SetPaperWidth;
property PaperSize: TPaperSize read FPaperSize write SetPaperSize;
property PaperOrientation:TPaperOrientation read FPaperOrientation write SetPaperOrientation;
property PDFDocument:TPDFDocument read FPDFDocument write FPDFDocument;
property TabOrder;
end;
I thoroughly read the similar topic depicted here:
Delphi: EReadError with message 'Property Persistence does Not exist'
But here it is my own source code. No third party. Interesting: when I delete PageNr property in my dfm file (unit1.dfm), then pops up : EReadError with message 'Property PaperHeight does Not exist'. when I delete PaperHeight then it will claim PaperWidth and so on...
Here is piece of dfm file:
object pg1: TPage
Left = 128
Top = 144
Width = 798
Height = 1127
PageNr = 0
PaperHeight = 1123
PaperWidth = 794
PaperSize = psA4
PaperOrientation = poPortrait
TabOrder = 0
object bscshp4: TBasicShape
Left = 112
Top = 64
Width = 105
Height = 105
PrintKind = pkNormal
PrintGroupIndex = 0
Zooming = 100
Transparent = False
Repeating = False
PageRepeatOffset = 1
ShapeStyle = ssVertical
LinePosition = 2
end
object bscshp5: TBasicShape
Left = 288
Top = 24
Width = 105
Height = 105
PrintKind = pkNormal
PrintGroupIndex = 0
Zooming = 100
Transparent = False
What the hell happens ??????? I have never seen that. I compiled the unit several times... Encoutered no problem. Maybe the cause is beyond this. I feel completely powerless.