![]() |
Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
Hallo Leute,
ich versuche grad ein Programm zu erstellen und steh offensichtlich ziemlich auf der Leitung. Es kommt immer die Fehlermeldung, "[Hinweis] Unit1.pas(55): Auf 'rProzentsatz' zugewiesener Wert wird niemals benutzt". Ich komm aber nicht drauf, wo genau jetzt der Fehler liegt, weil ich rProzentsatz ja im Prinzip einen Wert zugewiesen habe, mit zwei Prozent im Rahmen liegt - oder? Vielleicht findet ja wer von euch den Fehler. Vielen Dank!
Delphi-Quellcode:
procedure TForm1.B_BerechneClick(Sender: TObject);
const rEinzelpreis=30; var rMenge, rGesamtpreis, rProzentsatz, rProzentwert, rRechnungsbetrag :real; begin rMenge:= StrToFloat (E_Menge.Text); rGesamtpreis:= rMenge*rEinzelpreis ; E_Gesamtpreis.Text:= FloatToStr (rGesamtpreis); E_Prozentsatz.text:= FloatToStr (rProzentsatz); rProzentwert:= rProzentsatz*rGesamtpreis; E_Prozentwert.text:= FloatToStr (rProzentwert); rRechnungsbetrag:= rGesamtpreis-rProzentwert ; E_Rechnungsbetrag.text:= FloatToStr (rRechnungsbetrag); IF rGesamtpreis >100 THEN begin rProzentsatz:= 0.03 end ELSE begin IF rGesamtpreis<=100 THEN rProzentsatz:=0.02; end; end; end. |
AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
Das ist kein Fehler, sondern ein Hinweis: Der Wert, den Du zuweist, wird nirgens verwendet. Das ist so, als ob Du einen Korb mit Äpfeln füllst, aber niemand isst sie. Dann ist es vollkommen egal, ob Du 3, 5 oder 195 Äpfel in den Korb legst: Deine Mutti wird dir immer sagen:'Die Äpfel isst doch eh keiner'.
|
AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
Das Problem ist nicht der Wert, den du zugewiesen hast, sondern das du die Variable danach nirgends mehr verwendest.
Bitte geh auch das nächste Mal hin und poste deinen Code in Delphi-Code Tags.
Code:
Oder der griechen Helm über dem Texteditor.
[DELPHI]
DeinCode [/DELPHI] |
AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
Die "Fehlermeldung" ist wie gesagt nur ein Hinweis, aber was ich sonst aus deinem Quelltext ersehen kann, ist, dass Du rProzentsatz gleich schon als erstes verwendest, bevor Du die Variable überhaupt initialisiert hast, bzw. ihr einen Wert zugewiesen hast, und das wird später zu Problemen führen, spätestens wenn Du mit dem Wert rechnest.
Oder fehlt da ein stück Code? |
AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
Zitat:
|
AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
Okay, ich hab meinen Fehler gefunden.
Hier mal die überarbeitete Version: 1. Kreisquarder
Code:
procedure TForm1.FormActivate(Sender: TObject);
var Anfang, Ende, J,x,y,I :Integer; begin Anfang:= 0; Ende:= 5; For J:= 1 to 10 do begin y:= (Form1.ClientHeight-50)-J*86; For I:= 1 to Ende do begin x:= I*100; Canvas.ellipse(x+Anfang,y,x+100+Anfang,y+100); Sleep(200) end; Anfang:= Anfang+50; Ende:= Ende-1; end; end; end. |
AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
So kann man Probleme naturlich auch lösen:
Man schreibt ein komplett anderes Programm! Aber was hat das mit deiner ursprünglichen Frage zu tun? :gruebel: |
AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
Dieser Fehler wurde bei mir immer angezeigt, wenn die Syntax im ersten Exzerpt schwächer war als im zweiten. Versuch es mal so:
2. Farbblock
Code:
procedure TForm1.B_ZeichnenClick(Sender: TObject);
var x1, y1 , x2 , y2 :integer; begin with form1.image1.canvas do begin x1:=Random(Width); x2:=Random(Width); y1:=Random(Height); y2:=Random(Height); Canvas.Pen.Color :=Farbe; Canvas.Brush.Color:=Farbe; Canvas.Pen.Mode :=Art; Canvas.Rectangle(x1,y1,x2,y2) end; end; procedure TForm1.B_EndeClick(Sender: TObject); begin close; end; procedure TForm1.R_weissClick(Sender: TObject); begin Farbe:=clWhite; end; procedure TForm1.R_pinkClick(Sender: TObject); begin Farbe:=clfuchsia; end; procedure TForm1.R_schwarzClick(Sender: TObject); begin Farbe:=clBlack ; end; procedure TForm1.R_gruenClick(Sender: TObject); begin Farbe:=clGreen; end; procedure TForm1.R_PurpleClick(Sender: TObject); begin Farbe:=clpurple; end; procedure TForm1.B_LeerClick(Sender: TObject); begin if B_Leer.Caption='leer' then begin Hg:=bsSolid; B_Leer.caption:='gefüllt'; end else begin Hg:=bsClear; B_Leer.caption:='leer'; end end; procedure TForm1.B_NormalClick(Sender: TObject); begin if B_Normal.Caption='normal' then begin Art:=pmNotCopy; B_Normal.caption:='komplementär'; end else begin art:=pmCopy; B_Normal.caption:='normal'; end; end; procedure TForm1.B_LoeschenClick(Sender: TObject); begin with Form1.Image1 do begin picture:=nil; end; end; |
AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
Warum nicht einfach
Delphi-Quellcode:
Das with ist hier total überflüssig. Genauso wie die Verwendung einer benannten Instanz (Form1). Gibt es mehrere Instanzen bzw. wird die vorhandene umbenannt funktioniert der Code falsch oder gar nicht mehr.
procedure TForm1.B_LoeschenClick(Sender: TObject);
begin Image1.picture:=nil; end; |
AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
Hm, @J.Jay, ich seh da jetzt nicht so ganz den Zusammenhang, was genau hätte ich bei mir denn jetzt ändern sollen?
Naja, hab hier erstmal was anderes: 1. Kreis
Code:
procedure TForm1.FormPaint(Sender: TObject);
var rKreis :integer; begin rKreis:=1; while rKreis <=200 do begin canvas.Brush.Style:= bsclear; canvas.MoveTo(400,400); canvas.Ellipse (400+rKreis,400+rKreis,400-rKreis,400-rKreis); rKreis:=rKreis+2; sleep (30); end; end; end. 2.
Code:
procedure TForm1.FormPaint(Sender: TObject);
begin canvas.Pen.Color:= clgreen; canvas.brush.color:= clyellow; canvas.Rectangle(100,300,400,100); Canvas.Pen.Color:= clRed; canvas.Brush.color:= clblue; Canvas.Ellipse(100,300,400,100); canvas.Brush.Style:= bsclear; Canvas.TextOut(20,90, 'Hallo'); end; end. 3. Quadratische Gleichung
Code:
procedure TForm1.B_losClick(Sender: TObject);
var ra, rb ,rc, rx, rx1, rx2 ,rD :real; begin ra:=StrtoFloat(E_a.Text); rb:=StrToFloat(E_b.Text); rc:=StrToFloat(E_c.Text); rD:= (rb)*(rb) - 4*(ra)*(rc); If ra=0 Then If rb=0 Then If rc=0 Then begin E_Menge.Text:= ('Alle reellen Zahlen sind Lösungen'); E_Menge2.Text:= ('-'); end Else begin E_Menge.Text:= ('Keine Lösung'); E_Menge2.Text:= ('-'); end Else begin rx:= -rc/rb; E_Menge.text:= FloatToStr (rx); E_Menge2.Text:= ('-'); end Else If rD>0 Then begin rx1:= (-rb - sqrt (rD) )/(2*ra); rx2:= (-rb + sqrt (rD) )/ (2*ra); E_Menge.Text:= FloatToStr (rx1); E_Menge2.Text:= FloatToStr (rx2); end Else if rD=0 Then begin rx:= -rb/ (2* ra); E_Menge.text:= FloatToStr (rx); E_Menge2.Text:= ('-'); end Else begin E_Menge.text:= ('Keine Lösung'); E_Menge2.Text:= ('-'); end; end; end. 4. Linien
Code:
procedure TForm1.FormPaint(Sender: TObject);
var rZahl :integer; begin for rZahl := 10 downto 1 do begin canvas.MoveTo(100,rZahl*50); canvas.LineTo(700,rZahl*50); sleep (300); end; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz