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 fr 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 fr 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