Hallo,
gibt es eine Möglichkeit, dass der Compiler eine Warnung ausgibt, wenn eine Variable noch einmal deklariert wird, obwohl eine gleichnamige im Elternobjekt schon vorhanden ist?
Beispiel:
Unit1
TParent=class(TObject)
protected
ABool:Boolean;
public
property BoolVal:boolean read ABool;
end;
Unit2
TChild=class(TParent)
privat
ABool:Boolean;
public
procedure aproc;
end;
procedure TChild.aproc;
begin
ABool:= true;
if BoolVal then
....
end;
Das gibt durcheinander!
Ist natürlich stark vereinfacht, aber denke das Problem ist ersichtlich
Warnung: Variable im Elternobjekt schon deklariert
-
- Lazarusforum e. V.
- Beiträge: 3158
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Warnung: Variable im Elternobjekt schon deklariert
Ich erhalte mit FPC 3.3.1 eine Fehlermeldung: Error Duplicate identifier "ABool"
Da ich hier eine Entwicklerversion des FPCs habe, weiß ich nicht, ab welchem Release das so ist.
Da ich hier eine Entwicklerversion des FPCs habe, weiß ich nicht, ab welchem Release das so ist.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: Warnung: Variable im Elternobjekt schon deklariert
Danke für die schnelle Antwort.
Ich habe auch den fpc 3.3.1 svn revision 60422M.
Kann es daran liegen, dass im Original beide im protected sind. Auch sind es zwei units...
Ich probiere es aber auch mal mit einer neueren Version vom fpc aus.
Jo
Ich habe auch den fpc 3.3.1 svn revision 60422M.
Kann es daran liegen, dass im Original beide im protected sind. Auch sind es zwei units...
Ich probiere es aber auch mal mit einer neueren Version vom fpc aus.
Jo
-
- Beiträge: 825
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: Warnung: Variable im Elternobjekt schon deklariert
Wird dein Code in Modus ObjFPC oder Delphi kompiliert? Ersterer ist nämlich strikter und generiert einen Fehler bei deinem Code, bei zweiten gibt es keinen Fehler und auch keine Warnung (weil Delphi das eben auch nicht macht). Du kannst dieses Verhalten auch unabhängig vom Mode mit {$modeswitch DuplicateLocals} ein und mit {$modeswitch DuplicateLocals-} ausschalten (muss hinter dem {$mode ...} gesetzt werden und gilt jeweils für die aktuelle Unit).
Dieses Verhalten existiert übrigens schon lange.
Dieses Verhalten existiert übrigens schon lange.
FPC Compiler Entwickler
Re: Warnung: Variable im Elternobjekt schon deklariert
Ja das war es!
Vielen Dank
Vielen Dank