Hallo und sorry für die wahrscheinlich recht unnötige Frage.. ^^
in meinem Schulprojekt hat sich eine Fehlermeldung eingeschlichen, auf die ich keine Antwort weiß.
Die entsprechende Stelle sieht wie folgt aus:
IF Z1>Z2 THEN
begin
Lvergleich.caption:='Systemvariante 1 überwiegt in '+FloatToStr(Z1)+' Punkten!';
end;
Dabei wird das Label Lvergleich nicht gefunden und die Fehlermeldung (uprojekt.pas(283,13) Error: Identifier not found "Lvergleich") ausgegeben.
Das Label ist definitiv vorhanden und auch im Quelltext deklariert. Bin der Meinung, dass es was mit der IF-Funktion zu tun hat aber vielleicht kann mir ja einer von euch weiterhelfen.
Schonmal Danke im Vorraus,
Arcadion
Label wird nicht gefunden
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2807
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Label wird nicht gefunden
Wahrscheinlich befindet sich dein Quellcode außerhalb des Gültigkeitsbereiches von Lvergleich. Ein Blick in meine Glaskugel lässt vermuten:
- Lvergleich ist in einem Form deklariert.
- Dein obige Code befindet sich in einer Prozedur/Funktion die nicht zu diesem Form gehört.
if ist übrigens keine Funktion, das aber nur am Rande.Arcadion hat geschrieben:Bin der Meinung, dass es was mit der IF-Funktion zu tun hat...
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
Re: Label wird nicht gefunden
Also hier mal das gesamte Programm. Sorry falls ich es in irgendeinen Spoiler hätte packen sollen^^
Und ja, ich bin mir bewusst, dass einiges sicherlich einfacher oder besser hätte umgesetzt werden können aber whatever .. ^^
Und ja, ich bin mir bewusst, dass einiges sicherlich einfacher oder besser hätte umgesetzt werden können aber whatever .. ^^
Code: Alles auswählen
unit uprojekt;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
ExtCtrls, Grids;
type
{ TFWindow }
TFWindow = class(TForm)
Ierderechts: TImage;
Isonderechts: TImage;
Iwasserlinks: TImage;
Ierdelinks: TImage;
Isondelinks: TImage;
Iwasserrechts: TImage;
Lauswahl: TLabel;
Lergebnis: TLabel;
Lvergleich: TLabel;
Lueberschrift: TLabel;
Lak: TLabel;
Lbk: TLabel;
Leg: TLabel;
Lsa: TLabel;
Lpb: TLabel;
Rvariante1: TRadioGroup;
Rvariante2: TRadioGroup;
TAB: TStringGrid;
procedure Rvariante1Click(Sender: TObject);
procedure Rvariante2Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
FWindow: TFWindow;
implementation
{$R *.lfm}
{ TFWindow }
var AK1,BK1,EG1,GK1,X1,SG1,S1,Z1,P1,AK2,BK2,EG2,GK2,X2,SG2,S2,Z2,P2:real;
procedure TFWindow.Rvariante1Click(Sender: TObject);
begin
IF Rvariante1.itemindex=0 THEN
begin
Ierdelinks.visible:=false;
Isondelinks.visible:=false;
Iwasserlinks.visible:=true;
X1:=0;
GK1:=15000;
SG1:=9000*0.26;
Repeat
X1:=X1+1;
GK1:=GK1+400;
S1:=SG1*X1;
until
S1>GK1;
AK1:=15000;
BK1:=400;
EG1:=9000;
P1:=2;
TAB.Cells[0,0]:=FloatToStr(AK1)+' €';
TAB.Cells[0,1]:=FloatToStr(BK1)+' €/Jahr';
TAB.Cells[0,2]:=FloatToStr(EG1)+' kWh/Jahr';
TAB.Cells[0,3]:='Nach '+FloatToStr(X1)+' Jahren';
TAB.Cells[0,4]:='Mittel';
end;
IF Rvariante1.itemindex=1 THEN
begin
Isondelinks.visible:=false;
Iwasserlinks.visible:=false;
Ierdelinks.visible:=true;
X1:=0;
GK1:=11000;
SG1:=7000*0.26;
Repeat
X1:=X1+1;
GK1:=GK1+500;
S1:=SG1*X1;
until
S1>GK1;
AK1:=11000;
BK1:=500;
EG1:=7000;
P1:=3;
TAB.Cells[0,0]:=FloatToStr(AK1)+' €';
TAB.Cells[0,1]:=FloatToStr(BK1)+' €/Jahr';
TAB.Cells[0,2]:=FloatToStr(EG1)+' kWh/Jahr';
TAB.Cells[0,3]:='Nach '+FloatToStr(X1)+' Jahren';
TAB.Cells[0,4]:='Hoch';
end;
IF Rvariante1.itemindex=2 THEN
begin
Ierdelinks.visible:=false;
Iwasserlinks.visible:=false;
Isondelinks.visible:=true;
X1:=0;
GK1:=13000;
SG1:=7500*0.26;
Repeat
X1:=X1+1;
GK1:=GK1+600;
S1:=SG1*X1;
until
S1>GK1;
AK1:=13000;
BK1:=600;
EG1:=7500;
P1:=1;
TAB.Cells[0,0]:=FloatToStr(AK1)+' €';
TAB.Cells[0,1]:=FloatToStr(BK1)+' €/Jahr';
TAB.Cells[0,2]:=FloatToStr(EG1)+' kWh/Jahr';
TAB.Cells[0,3]:='Nach '+FloatToStr(X1)+' Jahren';
TAB.Cells[0,4]:='Niedrig';
end;
end;
procedure TFWindow.Rvariante2Click(Sender: TObject);
begin
IF Rvariante2.itemindex=0 THEN
begin
Ierderechts.visible:=false;
Isonderechts.visible:=false;
Iwasserrechts.visible:=true;
X2:=0;
GK2:=15000;
SG2:=9000*0.26;
Repeat
X2:=X2+1;
GK2:=GK2+400;
S2:=SG2*X2;
until
S2>GK2;
AK2:=15000;
BK2:=400;
EG2:=9000;
P2:=2;
TAB.Cells[1,0]:=FloatToStr(AK2)+' €';
TAB.Cells[1,1]:=FloatToStr(BK2)+' €/Jahr';
TAB.Cells[1,2]:=FloatToStr(EG2)+' kWh/Jahr';
TAB.Cells[1,3]:='Nach '+FloatToStr(X2)+' Jahren';
TAB.Cells[1,4]:='Mittel';
end;
IF Rvariante2.itemindex=1 THEN
begin
Isonderechts.visible:=false;
Iwasserrechts.visible:=false;
Ierderechts.visible:=true;
X2:=0;
GK2:=11000;
SG2:=7000*0.26;
Repeat
X2:=X2+1;
GK2:=GK2+500;
S2:=SG2*X2;
until
S2>GK2;
AK2:=11000;
BK2:=500;
EG2:=7000;
P2:=3;
TAB.Cells[1,0]:=FloatToStr(AK2)+' €';
TAB.Cells[1,1]:=FloatToStr(BK2)+' €/Jahr';
TAB.Cells[1,2]:=FloatToStr(EG2)+' kWh/Jahr';
TAB.Cells[1,3]:='Nach '+FloatToStr(X2)+' Jahren';
TAB.Cells[1,4]:='Hoch';
end;
IF Rvariante2.itemindex=2 THEN
begin
Ierderechts.visible:=false;
Iwasserrechts.visible:=false;
Isonderechts.visible:=true;
X2:=0;
GK2:=13000;
SG2:=7500*0.26;
Repeat
X2:=X2+1;
GK2:=GK2+600;
S2:=SG2*X2;
until
S2>GK2;
AK2:=13000;
BK2:=600;
EG2:=7500;
P2:=1;
TAB.Cells[1,0]:=FloatToStr(AK2)+' €';
TAB.Cells[1,1]:=FloatToStr(BK2)+' €/Jahr';
TAB.Cells[1,2]:=FloatToStr(EG2)+' kWh/Jahr';
TAB.Cells[1,3]:='Nach '+FloatToStr(X2)+' Jahren';
TAB.Cells[1,4]:='Niedrig';
end;
end;
begin
Z1:=0;
Z2:=0;
IF AK1>AK2 THEN
begin
Z1:=Z1+1;
end;
IF AK1<AK2 THEN
begin
Z2:=Z2+1;
end;
IF BK1>BK2 THEN
begin
Z1:=Z1+1;
end;
IF BK1<BK2 THEN
begin
Z2:=Z2+1;
end;
IF EG1>EG2 THEN
begin
Z1:=Z1+1;
end;
IF EG1<EG2 THEN
begin
Z2:=Z2+1;
end;
IF X1>X2 THEN
begin
Z1:=Z1+1;
end;
IF X1<X2 THEN
begin
Z2:=Z2+1;
end;
IF P1>P2 THEN
begin
Z1:=Z1+1;
end;
IF P1<P2 THEN
begin
Z2:=Z2+1;
end;
IF Z1>Z2 THEN
begin
Lvergleich.caption:='Systemvariante 1 überwiegt in '
+FloatToStr(Z1)+' Punkten!';
end;
IF Z1<Z2 THEN
begin
Lergebnis.caption:='Systemvariante 2 überwiegt in '
+FloatToStr(Z2)+' Punkten!';
end;
end.
Zuletzt geändert von Lori am Mi 23. Apr 2014, 15:52, insgesamt 1-mal geändert.
Grund: Bitte den Highlighter nutzen.
Grund: Bitte den Highlighter nutzen.
Re: Label wird nicht gefunden
Das liegt hauptsächlich an Deiner Formatierung! Würdest Du einmal Deinen Code falten (auf das [-] klicken bei den einzelnen "Begin"s) könntest Du selber ganz schnell den Fehler finden.
Deine Procedure
der nachfolgende Code ist nicht mehr Bestandteil Deiner Klasse TTFWindow und wird deshalb nicht gefunden -> entferne das eine "end;" das sollte diesen "Fehler" beheben. Deinen Code ansich habe ich nicht geprüft.
Deine Procedure
Code: Alles auswählen
procedure TTFWindow.Rvariante2Click(Sender: TObject);
...
TAB.Cells[1,2]:=FloatToStr(EG2)+' kWh/Jahr';
TAB.Cells[1,3]:='Nach '+FloatToStr(X2)+' Jahren';
TAB.Cells[1,4]:='Niedrig';
end;
end; //endet hier
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Label wird nicht gefunden
Vielen Dank, Michl! Ich hab echt ewig nach dem Fehler gesucht und jetzt wo du es gesagt hast erscheint es mir wie so oft total offensichtlich
...
