Error: Identifier redeclared
Portál: | amos.ukf.sk |
Kurz: | Programovanie 1 |
Kniha: | Error: Identifier redeclared |
Vytlačil(a): | Guest user |
Dátum: | piatok, 4 októbra 2024, 06:12 |
1. Identifier redeclared: 'i'
Pôvodný zdrojový kód unit Unit1; interface uses type var implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); for i:= 1 to length(ret) do Label1.Caption:= 'Pocet malych pismen: ' + IntToStr(male); { [Error] Unit1.pas(33): Identifier redeclared: 'i' Viacnásobná deklarácia identifikátoru i. PREČO? Premennú i sme deklarovali dvakrát. RIEŠENIE Jednu z deklarácií odstránime. POZNÁMKA Premenná ret je tiež deklarovaná dva razy. Raz ako globálna, raz ako lokálna Upravený zdrojový kód -------------------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); for i:= 1 to length(ret) do Label1.Caption:= 'Pocet malych pismen: ' + IntToStr(male); -------------------------------------------------------------------------------- } end. Stiahnuť vzorový príklad (zdrojové kódy v Delphi) |
2. Identifier redeclared: 'fakt'
Pôvodný zdrojový kód unit fakt; interface uses type var implementation {$R *.dfm} function faktorial(n: integer): integer; procedure TForm1.Button1Click(Sender: TObject); begin { [Error] fakt.pas(23): Identifier redeclared: 'fakt' Viacnásobná deklarácia identifikátora fakt. PREČO? Súbor so zdrojovým kódom sme pomenovali rovnako ako globálnu premennú. RIEŠENIE Premennú fakt deklarujeme ako lokálnu premennú v procedúre, kde ju používame. alebo Zmeníme meno premennej alebo meno unitu, tak, aby boli rôzne. Upravený zdrojový kód -------------------------------------------------------------------------------- var implementation function faktorial(n: integer): integer; procedure TForm1.Button1Click(Sender: TObject); begin -------------------------------------------------------------------------------- } end. Stiahnuť vzorový príklad (zdrojové kódy v Delphi) |
3. Identifier redeclared: 'x'
Pôvodný zdrojový kód unit Unit1; interface uses type procedure Shape1MouseDown(Sender: TObject; Button: TMouseButton; private var implementation {$R *.dfm} procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton; var x, y: integer; Shape1.Left:= x; end; { [Error] Unit1.pas(33): Identifier redeclared: 'x' Viacnásobná deklarácia identifikátoru x. PREČO? Formálne parametre a lokálne premenné procedúry majú rovnaké mená. RIEŠENIE Lokálnu premennú premenujeme. alebo Pokiaľ lokálna premenná nie je potrebná, tak ako v tomto príklade, nepoužijeme ju. Upravený zdrojový kód -------------------------------------------------------------------------------- procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton; begin Shape1.Left:= random(Form1.Width-Shape1.Width); end; -------------------------------------------------------------------------------- }
end. Stiahnuť vzorový príklad (zdrojové kódy v Delphi) |