Hi,
I'm changing from FPC1.0.6 to 2.2.4 and recompiling my project.
(compiling with 1.0.6 works fine)

Compiling with 2.2.4 following error message occures:
"Error: function header doesn't match any method of this class 'constructor TProgrammAuswahl.init( ...)' "

But this is exactly the constructor defined in the object declaration.
Do you have any ideas?

target: go32v2
Compiler mode: object pascal extension on

Reduced file attached: tobs.pas
error: line 212

Regards Peter

unit tobs;

{---------------------------------------------------------------------}
{
  TEST
  warum geht's nicht??

}
{---------------------------------------------------------------------}


interface
{---------------------------------------------------------------------}

uses
  classes,
  objects;

const
  maxPruefPar = 3;

type
  PPruefPar = ^TPruefPar;
  TPruefPar = packed record
    leer : boolean;
    {...}
    end;

  PPruefParArray = ^TPruefParArray;
  TPruefParArray = array[ 1 .. maxPruefPar] of TPruefPar;

type
  FrameChars =  array[1..8] of Char;

  PWinRec = ^WinRec;
  WinRec  =   record
    size : longint;
    {...}
    end;

type
  pString = ^shortString;
  PPStringArray = ^TpStringArray;
  TPStringArray = array[ 1 .. $FFFF div sizeof( pString) ] of pstring;

  PBoolArray = ^TBoolArray;
  TBoolArray = array[ 1 .. $FFFF div sizeof( boolean) ] of boolean;

type
  PBrowser = ^TBrowser;
  TBrowser = object( TObject)
    frameCol, frameBGround : longint;
    titelCol, titelBGround : longint;
    col, bck : longint;
    yTitel : word;
    bx1, by1 : word;
    bZeilen : word;
    bSpalten : word;
    bTitel : shortString;
    bRahmen : frameChars;
    bSafeScreen : boolean;
    bTListe : PPStringArray;
    listenAnfang : smallInt;
    listenEnde : smallInt;
    w, fLine : pWinRec;
    oDirSign : char;

    constructor init(
      x1, y1, zeilen, spalten: word;
      titel : shortString;
      const rahmen : frameChars;
      safeScr : boolean;
      const tListe : array of pstring;
      von, bis : word;
      colframe, backFrame : longint;
      coltitel, backTitel : longint;
      color, back : longint;
      mitFTasten : boolean);

    destructor done; virtual;
    procedure  execute( var code: smallInt; var idx : smallInt); virtual;
    procedure schreiben( z1, z2: smallInt); virtual;
    procedure setDirSign( c : char); virtual;
    procedure doPrint;
    end;

type
  PListBrowser = ^TListBrowser;
  TListBrowser = object( TBrowser)
    selCol, selBGround  : longint;
    aktZeile : smallInt;
    yAkt : smallInt;
    terminateOnKey : boolean;

    constructor init(
      x1, y1, zeilen, spalten: word;
      titel : String;
      const rahmen : frameChars;
      safeScr : boolean;
      const tListe : array of pstring;
      von, bis : word;
      colframe, backFrame : longint;
      coltitel, backTitel : longint;
      colSelect, backSelect : longint;
      color, back : longint;
      mitFTasten : boolean);

    procedure execute( var code: smallInt; var idx: smallInt); virtual;
    procedure schreiben( z1, z2 : smallInt); virtual;
    end;

type
  PProgrammAuswahl = ^TProgrammAuswahl;
  TProgrammAuswahl = object( TListBrowser)
    loeschListe : pBoolArray;
    textLen : smallInt;
    IdxLen  : smallInt;
    flagLen : smallInt;
    fillFlag: string[ 5];
    loeschFlag : string[ 5];
    ppa : PPruefparArray;
    tz1, tz2 : smallInt;

    constructor init(
      x1, y1, zeilen, spalten: word;
      titel : String;
      const rahmen : frameChars;
      safeScr : boolean;
      var tListe : array of pstring;
      var geloeschtListe : array of boolean;
      const programmArray: PPruefParArray;
      von, bis : word;
      colframe, bckframe : longint;
      coltitel, bcktitel : longint;
      colSelect,bckSelect: longint;
      color, back        : longint);

    procedure execute( var code: smallInt; var idx: smallInt); virtual;
    procedure updateList;
    procedure schreiben( z1, z2 : smallInt); virtual;
    end;
{---------------------------------------------------------------------}

implementation
{---------------------------------------------------------------------}

{ TBrowser: }
{---------------------------------------------------------------------------}

constructor TBrowser.init(
  x1, y1, zeilen, spalten: word;
  titel : shortString;
  const rahmen : frameChars;
  safeScr : boolean;
  const tListe : array of pString;
  von, bis : word;
  colframe, backFrame : longint;
  coltitel, backTitel : longint;
  color, back : longint;
  mitFTasten : boolean);

begin {...} end;
{---------------------------------------------------------------------------}

procedure TBrowser.doPrint;
begin {...} end;

procedure TBrowser.execute( var code : smallInt; var idx : smallInt);
begin {...} end;

procedure TBrowser.setDirSign( c : char);
begin {...} end;

procedure TBrowser.schreiben( z1, z2 : smallInt);
begin {...} end;

destructor TBrowser.done;
begin {...} end;
{---------------------------------------------------------------------------}

   { TListBrowser: }
{---------------------------------------------------------------------------}

constructor TListBrowser.init(
  x1, y1, zeilen, spalten: word;
  titel : shortString;
  const rahmen : frameChars;
  safeScr : boolean;
  const tListe : array of pstring;
  von, bis   : word;       { indexGrenzen fr tListe }
  colframe, backFrame : longint;
  coltitel, backTitel : longint;
  colSelect, backSelect : longint;
  color, back : longint;
  mitFTasten : boolean);

begin {...} end;
{---------------------------------------------------------------------------}

procedure TListBrowser.execute( var code : smallInt; var idx : smallInt);
begin {...} end;

procedure TListBrowser.schreiben( z1, z2 : smallInt); { beachtet aktZeile, 
aktIndex }
begin {...} end;
{---------------------------------------------------------------------------}

   { TProgrammAuswahl: }
{---------------------------------------------------------------------------}

///////// hier knallt's !!!

constructor TProgrammAuswahl.init(
  titel : String;
  x1, y1, zeilen, spalten: word;
  const rahmen : frameChars;
  safeScr : boolean;
  var tListe : array of pstring;
  var geloeschtListe : array of boolean;
  const programmArray: PPruefParArray;
  von, bis : word;       { indexGrenzen fr tListe }
  colframe, bckframe : longint;
  coltitel, bcktitel : longint;
  colSelect,bckSelect: longint;
  color, back : longint);

begin {...} end;
{---------------------------------------------------------------------------}

procedure TProgrammAuswahl.execute( var code: smallInt; var idx: smallInt);
begin {...} end;

procedure TProgrammAuswahl.updateList; // neuschreiben der namenliste
begin {...} end;

procedure TProgrammAuswahl.schreiben( z1, z2 : smallInt);
begin {...} end;
{---------------------------------------------------------------------------}

end.
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to