On Fri, 03 Mar 2006 04:52:36 -0300, <[EMAIL PROTECTED]> wrote:
(I sent this mail yesterday but somehow it didn't get trough, therefore a new try) I would like to declare a polymorph class. The class has several properties and it's the read and write specifiers that I want to be virtual abstract. So derived classes override the read and write specifiers. The problem however is that I get an EAbstractError. The property is still considered to be abstract according to the compiler. So what did I wrong? I have added an example below. Is it perhaps not allowed to use this construct? What would then be the best way? Darius <<example>> unit MyTest; {$mode objfpc}{$H+} interface uses Classes, ComCtrls, SysUtils; type TCustomClass = class private //virtual mehods function GetMyProperty: string; virtual; abstract; procedure SetMyProperty(Value: string); virtual; abstract; published property MyProperty: string Read GetMyProperty Write SetMyProperty; end; TMyClass = class(TCustomClass) private FMyProperty: string; function GetMyProperty: string; overload; procedure SetMyProperty(Value: string); overload; published property MyProperty; end; implementation function TMyClass .GetMyProperty: string; begin Result := FMyProperty; end; procedure TMyClass .SetMyProperty(Value: string); begin if Value = FMyProperty then exit; FMyProperty := Value; end; end. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Try override instead of overload -- Rodrigo Palhano --------------------------------- Equipe SpeedCASE _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal