Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Fehlermeldung "zugewiesener Wert wird niemals benutzt"? (https://www.delphipraxis.net/182877-fehlermeldung-zugewiesener-wert-wird-niemals-benutzt.html)

Edgware 23. Nov 2014 18:04

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.

Dejan Vu 23. Nov 2014 18:15

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'.

Aviator 23. Nov 2014 18:17

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:
[DELPHI]
  DeinCode
[/DELPHI]
Oder der griechen Helm über dem Texteditor.

TForm1 23. Nov 2014 20:57

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?

himitsu 23. Nov 2014 21:53

AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
 
Zitat:

Zitat von TForm1 (Beitrag 1280857)
Oder fehlt da ein stück Code?

Wenn nicht, dann hat er den anderen Hinweis "Variable nicht initialisiert" bestimmt übersehn.

Edgware 17. Mai 2015 15:11

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.

Sir Rufo 17. Mai 2015 15:22

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:

J.Jay 17. Mai 2015 15:36

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;

mkinzler 17. Mai 2015 15:45

AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
 
Warum nicht einfach
Delphi-Quellcode:
procedure TForm1.B_LoeschenClick(Sender: TObject);
begin
  Image1.picture:=nil;
end;
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.

Edgware 17. Mai 2015 15:49

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.

mkinzler 17. Mai 2015 15:52

AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
 
OnPaint ist für den Zeichenvorgang, nur für den Zeichenvorgang. Die Animationen haben da nichts zu suchen.

Btw. was hat das mit der ursprünglichen Frage zu tun?

Sir Rufo 17. Mai 2015 16:05

AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
 
Zitat:

Zitat von mkinzler (Beitrag 1301830)
Btw. was hat das mit der ursprünglichen Frage zu tun?

Der Thread-Titel ist einfach falsch und müsste lauten:

Da ich keinen Blog habe, schreibe ich hier einfach mal was rein, jeder ist herzlich eingeladen auch etwas zu schreiben, egal ob es passt oder nicht

:mrgreen:

BTW

Wir haben hier auch
Code:
[DELPHI][/DELPHI]
Tags, damit sieht der Delphi-Quellcode wesentlich schöner aus und ist vor allem besser lesbar.
Code:
procedure foo;
begin
  // do something
end;
vs.
Delphi-Quellcode:
procedure foo;
begin
  // do something
end;
... ok, da hat Aviator schon drauf hingewiesen, scheint aber wohl nicht anzukommen :roll:

Edgware 17. Mai 2015 16:38

AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1301832)
Der Thread-Titel ist einfach falsch und müsste lauten:

Da ich keinen Blog habe, schreibe ich hier einfach mal was rein, jeder ist herzlich eingeladen auch etwas zu schreiben, egal ob es passt oder nicht

Oder so :D
Ich hab gedacht, der Thread ist so alt, dass meine Merkhilfe eh niemand liest :D

Dejan Vu 18. Mai 2015 07:25

AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
 
Code:
250g Mehl, Typ 550
160ml warmes Wasser
1/2 pkg Trockenhefe
1 Teelöffel Salz

Alles vermischen, 10 min Kneten.
20 min ruhen lassen.
For i :=1 to 3 do begin
   Teig zu einem Quadrat ausziehen.
   Die Ecken nach innen klappen.
   Teig wieder in die Schüssel geben.
end;

Teig zu einem Baguette formen, oben schräg einschneiden.
Zudecken, 30 min gehen lassen.
Ofen auf 250°C vorheizen.
Schüssel mit Wasser in den Ofen, Baguette auf Backblech über die Schüssel.
Temperatur auf 180°C runterschalten,
25min backen.
Brot rausnehmen, mit Wasser einpinseln.
3min wieder in den Ofen.
Fertig.
Ich wollte auch mal was sagen.

Chris211183 18. Mai 2015 18:01

AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
 
Zitat:

Zitat von Dejan Vu (Beitrag 1301883)
Code:
250g Mehl, Typ 550
160ml warmes Wasser
1/2 pkg Trockenhefe
1 Teelöffel Salz

Alles vermischen, 10 min Kneten.
20 min ruhen lassen.
For i :=1 to 3 do begin
   Teig zu einem Quadrat ausziehen.
   Die Ecken nach innen klappen.
   Teig wieder in die Schüssel geben.
end;

Teig zu einem Baguette formen, oben schräg einschneiden.
Zudecken, 30 min gehen lassen.
Ofen auf 250°C vorheizen.
Schüssel mit Wasser in den Ofen, Baguette auf Backblech über die Schüssel.
Temperatur auf 180°C runterschalten,
25min backen.
Brot rausnehmen, mit Wasser einpinseln.
3min wieder in den Ofen.
Fertig.
Ich wollte auch mal was sagen.

EInvalidError, Brot verbrannt....

Edgware 19. Mai 2015 17:25

AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
 
Hat mir echt gut gefallen, Delphi mochte das nur leider nicht, Dejan Vu... Naja, neuer Versuch :D

Delphi-Quellcode:
procedure TForm1.B_StartClick(Sender: TObject);

var i, rAnzahl, rVerzogerung, x,y, rDicke :integer;

begin

randomize ;

    rAnzahl:= StrToInt (E_Anzahl.Text);
    rVerzogerung:= StrToInt (E_Pause.Text);

 For i:=1 To rAnzahl do
  begin
      x:= random (800);
      y:= random (800);
      rDicke:= random (30);

      IF C_blau.Checked then
        begin
        Canvas.Brush.Color:= clblue or random (8000000);
        end

        ELSE
        begin
        IF C_Gelb.Checked then
        begin
        Canvas.Brush.Color:= clyellow or random (8000000);
        end
     

        ELSE
        begin
        IF C_gruen.Checked then
        begin
        Canvas.Brush.Color:= clgreen or random (8000000);
        end

        ELSE
        IF C_blau.Checked then
        begin
        Canvas.Brush.Color:= clblue or random (8000000);
        end


        ELSE
        begin
        IF C_pink.Checked then
        begin
        Canvas.Brush.Color:= clfuchsia or random (8000000);
        end

        ELSE
        begin
        IF C_red.Checked then
        begin
        Canvas.Brush.Color:= clred or random (8000000);
        end

        ELSE
        begin
        IF C_ighlight.Checked then
        begin
        Canvas.Brush.Color:= clskyblue or random (800000);
        end

        ELSE
        begin
        IF C_teal.Checked then
        begin
        Canvas.Brush.Color:= clteal or random (8000000);
        end

        ELSE
        begin
        IF C_navy.Checked then
        begin
        Canvas.Brush.Color:= clteal or random (8000000);
        end




        ELSE
        begin
        Canvas.Brush.Color:= clblack;
        end;
        end;
        end;
        end;
        end;
        end;
        end;
        end;


      Canvas.Ellipse(x,y, x+rDicke, y+rDicke) ;
      sleep (rVerzogerung);
    end;

end;

procedure TForm1.B_ClearClick(Sender: TObject);
begin
 refresh;
 E_Anzahl.Text:= ' ';
 E_Pause.Text:= ' ';
end;

end.
-------------------------
Delphi-Quellcode:

procedure TForm1.B_DrawClick(Sender: TObject);
begin

Randomize;


  If rbW.checked = true Then
   Form1.Image1.Canvas.Pen.Color:=clWhite

  Else If rbB.Checked = true Then
   Form1.Image1.Canvas.Pen.Color:=clBlack

  Else If rbY.Checked = true Then
   Form1.Image1.Canvas.Pen.Color:=clYellow

  Else If rbG.Checked = true Then
   Form1.Image1.Canvas.Pen.color:=clGreen

  Else If rbBl.Checked = true Then
   Form1.Image1.Canvas.Pen.Color:=clNavy

  Else If rbR.Checked = true Then
   Form1.Image1.Canvas.Pen.Color:=clRed;

  If RadioButton2.Checked = true Then
   Form1.Image1.Canvas.Brush.Color:= Form1.Image1.Canvas.Pen.Color;


  x:= (Random(Form1.Image1.ClientWidth));
  y:= (Random(Form1.Image1.ClientHeight));

  a:= (Random(Image1.ClientWidth-x));
  b:= (Random(Image1.ClientHeight-y));


  Form1.Image1.Canvas.Rectangle(x,y,x+a,y+b);





end;



procedure TForm1.B_EmtptyClick(Sender: TObject);
begin

Image1.Picture:= nil;

end;

procedure TForm1.B_BackroundClick(Sender: TObject);
begin

  If rbW.checked = true Then
   Form1.Image1.Canvas.Brush.Color:=clWhite

  Else If rbB.Checked = true Then
   Form1.Image1.Canvas.Brush.Color:=clBlack

  Else If rbY.Checked = true Then
   Form1.Image1.Canvas.Brush.Color:=clYellow

  Else If rbG.Checked = true Then
   Form1.Image1.Canvas.Brush.color:=clGreen

  Else If rbBl.Checked = true Then
   Form1.Image1.Canvas.Brush.Color:=clNavy

  Else If rbR.Checked = true Then
   Form1.Image1.Canvas.Brush.Color:=clRed;

   Form1.Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);

end;

end.

Edgware 19. Mai 2015 17:29

AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
 
Delphi-Quellcode:
implementation
var   Farbe: tColor;
       Hg  : tBrushStyle;
       Art : tPenMode;

{$R *.dfm}

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;

end.

Stevie 19. Mai 2015 17:52

AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
 
Zitat:

Zitat von Edgware (Beitrag 1301838)
Ich hab gedacht, der Thread ist so alt, dass meine Merkhilfe eh niemand liest :D

http://pastebin.com/ ;)

Popov 19. Mai 2015 18:02

AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
 
Nennt mich altmodisch, nicht mehr zeitgemäß, analfixiert, aber ein unformatierter Code tut mir in den Augen weh. Wie soll man da verstehen was das Programm macht?
Delphi-Quellcode:
procedure TForm1.B_StartClick(Sender: TObject);
var
  i, rAnzahl, rVerzogerung, x, y, rDicke :integer;
begin
  randomize ;

  rAnzahl:= StrToInt (E_Anzahl.Text);
  rVerzogerung:= StrToInt (E_Pause.Text);

  For i:=1 To rAnzahl do
  begin
    x:= random (800);
    y:= random (800);
    rDicke:= random (30);

    IF C_blau.Checked then
    begin
      Canvas.Brush.Color:= clblue or random (8000000);
    end
    ELSE
    begin
      IF C_Gelb.Checked then
      begin
      Canvas.Brush.Color:= clyellow or random (8000000);
      end
      ELSE
      begin
        IF C_gruen.Checked then
        begin
          Canvas.Brush.Color:= clgreen or random (8000000);
        end
        ELSE IF C_blau.Checked then
        begin
          Canvas.Brush.Color:= clblue or random (8000000);
        end
        ELSE
        begin
          IF C_pink.Checked then
          begin
            Canvas.Brush.Color:= clfuchsia or random (8000000);
          end
          ELSE
          begin
            IF C_red.Checked then
            begin
              Canvas.Brush.Color:= clred or random (8000000);
            end
            ELSE
            begin
              IF C_ighlight.Checked then
              begin
                Canvas.Brush.Color:= clskyblue or random (800000);
              end
              ELSE
              begin
                IF C_teal.Checked then
                begin
                  Canvas.Brush.Color:= clteal or random (8000000);
                end
                ELSE
                begin
                  IF C_navy.Checked then
                  begin
                    Canvas.Brush.Color:= clteal or random (8000000);
                  end
                  ELSE
                  begin
                    Canvas.Brush.Color:= clblack;
                  end;
                end;
              end;
            end;
          end;
        end;
      end;
    end;

    Canvas.Ellipse(x,y, x+rDicke, y+rDicke) ;
    sleep (rVerzogerung);
  end;
end;

procedure TForm1.B_ClearClick(Sender: TObject);
begin
  refresh;
  E_Anzahl.Text:= ' ';
  E_Pause.Text:= ' ';
end;
Oder noch anders. Wozu die nagen Begins und Ends?
Delphi-Quellcode:
procedure TForm1.B_StartClick(Sender: TObject);
var
  i, rAnzahl, rVerzogerung, x, y, rDicke :integer;
begin
  randomize ;

  rAnzahl:= StrToInt (E_Anzahl.Text);
  rVerzogerung:= StrToInt (E_Pause.Text);

  for i:=1 to rAnzahl do
  begin
    x:= random (800);
    y:= random (800);
    rDicke:= random (30);

    if C_blau.Checked then
      Canvas.Brush.Color := clblue or random (8000000)
    else if C_Gelb.Checked then
      Canvas.Brush.Color := clyellow or random (8000000)
    else if C_gruen.Checked then
      Canvas.Brush.Color := clgreen or random (8000000)
    else if C_blau.Checked then
      Canvas.Brush.Color := clblue or random (8000000)
    else if C_pink.Checked then
      Canvas.Brush.Color := clfuchsia or random (8000000)
    else if C_red.Checked then
      Canvas.Brush.Color := clred or random (8000000)
    else if C_ighlight.Checked then
      Canvas.Brush.Color := clskyblue or random (800000)
    else if C_teal.Checked then
      Canvas.Brush.Color := clteal or random (8000000)
    else if C_navy.Checked then
      Canvas.Brush.Color := clteal or random (8000000)
    else
      Canvas.Brush.Color:= clblack;

    Canvas.Ellipse(x,y, x+rDicke, y+rDicke) ;
    sleep (rVerzogerung);
  end;
end;

procedure TForm1.B_ClearClick(Sender: TObject);
begin
  refresh;
  E_Anzahl.Text:= ' ';
  E_Pause.Text:= ' ';
end;

EWeiss 19. Mai 2015 18:23

AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
 
Dann kannst du dir in deinem Beitrag auch alle Else sparen.
Da jeder Checkstatus aktiv sein könnte (anders als bei RadioGroups) erübrigt sich die Else abfrage.
Else = EntwederOder

Davon ab ist die Wahl einer Checkbox dafür unangebracht.
Eine Radio Group wäre dann die optimale Verwendung.

gruss

Popov 19. Mai 2015 22:11

AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
 
EWeiss hat Recht, das könnte man auch so lösen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  Col: array[0..8] of TColor = (clblue, clyellow, clgreen, clblue, clfuchsia,
    clred, clskyblue, clteal, clteal); //Farben
var
  i, rAnzahl, rVerzogerung, x, y, rDicke :integer;
begin
  randomize ;

  rAnzahl:= StrToInt (E_Anzahl.Text);
  rVerzogerung:= StrToInt (E_Pause.Text);

  for i:=1 to rAnzahl do
  begin
    x:= random (800);
    y:= random (800);
    rDicke:= random (30);

    if ColorRadioGroup.ItemIndex > -1 then // In RadioGroup alle 9 Farben auflisten
      Canvas.Brush.Color := Col[ColorRadioGroup.ItemIndex] or random (8000000)
    else
     Canvas.Brush.Color := clBlack;

    Canvas.Ellipse(x,y, x+rDicke, y+rDicke) ;
    sleep (rVerzogerung);
  end;
end;
Nur was soll das bewirken?

Delphi-Quellcode:
... or random (8000000)
...

EWeiss 19. Mai 2015 23:25

AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
 
Zitat:

Nur was soll das bewirken?
Ich denke mal er will dann eine Farbe im Bereich "8000000" ausgeben.
Meine Meinung dazu! Ist völliger Quatsch da kann man direkt Random(8000000) verwenden
und sich den ganzen anderen Kram mit Radio Button und Checkboxen sparen.

Entweder man definiert oder möchte eine feste Farbe festlegen oder man verwendet Random.. für eine beliebige.
Ich sehe zumindest keine Logik hinter der Verwendung "or Random(8000000)"

gruss

himitsu 20. Mai 2015 04:23

AW: Fehlermeldung "zugewiesener Wert wird niemals benutzt"?
 
Bei einer RadioBox/RadioGroup kann man die Else weg lassen, bzw. gleich ein CASE verwenden.

Bei den IFs muß man aufpassen, denn ohne ELSE dreht sich die Auswertungsreihenfolge um, wenn mehr als eine Checkbox aktiviert ist.
Delphi-Quellcode:
if C_blau.Checked then
  Canvas.Brush.Color := clblue or random (8000000)
else if C_Gelb.Checked then
  Canvas.Brush.Color := clyellow or random (8000000)
else if C_gruen.Checked then
  Canvas.Brush.Color := clgreen or random (8000000)
...
else
  Canvas.Brush.Color:= clblack;
Delphi-Quellcode:
Canvas.Brush.Color:= clblack;
...
if C_gruen.Checked then
  Canvas.Brush.Color := clgreen or random (8000000)
if C_Gelb.Checked then
  Canvas.Brush.Color := clyellow or random (8000000)
if C_blau.Checked then
  Canvas.Brush.Color := clblue or random (8000000)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz