pm Martin wrote 5 lines
TForm1 = class(TForm)
public
FFoo: TFoo;
property Num: Integer read FFoo.FBar;
end;
Just a 'for your info' note: Kylix doesn't allow the above. Nor does it allow accessing the property FFoo.Bar as a parameter to the read. This makes sense to me, though, because FFoo may very well be nil when code tries to read Form1.Num.
Here are my foo and form units, as well as the command line compiler's complaint about them:
~/tmp/k3tests/access_private_class_member $dcc Project1.dpr Borland Delphi for Linux Version 14.5
Copyright (c) 1983,2002 Borland Software Corporation main_unit.pas(13) Error: Record, object or class type required main_unit.pas(25)
Project1.dpr(6) Fatal: Could not compile used unit 'main_unit.pas'
Sorry if this is "old news". :) Here are the files:
unit foo_unit;
interface
uses
Classes;
type
TFoo = class
private
FBar : Integer;
public
property Bar : Integer read FBar write FBar;
end;
implementation
end.
unit main_unit;
interface
uses
SysUtils, Types, Classes, Variants, QTypes, QGraphics, QControls, QForms,
QDialogs, QStdCtrls, foo_unit;
type
TForm1 = class(TForm)
public
Foo : TFoo;
property Num: Integer read Foo.Bar;
end;
var
Form1: TForm1;
implementation
{$R *.xfm}
end.
Best regards,
Pete C.