Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#12

AW: Funktion/Prozedur abbrechen?

  Alt 20. Apr 2015, 14:01
Sowas ist nicht nötig:
Delphi-Quellcode:
  begin
    if Edit2.Text > Edit1.Text then ShowMessage('Invalide Eingabe');
  end;
Dafür braucht man keinen Begin End Block. Das reicht:
Delphi-Quellcode:
  if Edit2.Text > Edit1.Text then ShowMessage('Invalide Eingabe');
  //
Auch hier ist es unnötig:
Delphi-Quellcode:
  begin
    if Edit2.Text <= Edit1.Text then
        maxpunktzahl:=StrToInt(Edit1.Text);
        schülerpunkte:=StrToInt(Edit2.Text);
        Minpunkte[1]:=(maxpunktzahl/100)*96;
        Minpunkte[2]:=(maxpunktzahl/100)*80;
        Minpunkte[3]:=(maxpunktzahl/100)*60;
        Minpunkte[4]:=(maxpunktzahl/100)*40;
        Minpunkte[5]:=(maxpunktzahl/100)*20;
        Minpunkte[6]:=(maxpunktzahl/100)*0;
        StringGrid1.Cells[1,1]:=FloatToStr(Ceil(Minpunkte[1]));
        StringGrid1.Cells[1,2]:=FloatToStr(Ceil(Minpunkte[2]));
        StringGrid1.Cells[1,3]:=FloatToStr(Ceil(Minpunkte[3]));
        StringGrid1.Cells[1,4]:=FloatToStr(Ceil(Minpunkte[4]));
        StringGrid1.Cells[1,5]:=FloatToStr(Ceil(Minpunkte[5]));
        StringGrid1.Cells[1,6]:=FloatToStr(Ceil(Minpunkte[6]));

  begin
Geht man davon aus, dass die Einrückung nach maxpunktzahl:=StrToInt(Edit1.Text); nicht zufällig ist, sondern die anderen Zeilen mit bei der Abfrage einbezogen werden sollen, dann sollte das so aussehen:
Delphi-Quellcode:
    if Edit2.Text <= Edit1.Text then
      begin
        maxpunktzahl:=StrToInt(Edit1.Text);
        schülerpunkte:=StrToInt(Edit2.Text);
        Minpunkte[1]:=(maxpunktzahl/100)*96;
        Minpunkte[2]:=(maxpunktzahl/100)*80;
        Minpunkte[3]:=(maxpunktzahl/100)*60;
        Minpunkte[4]:=(maxpunktzahl/100)*40;
        Minpunkte[5]:=(maxpunktzahl/100)*20;
        Minpunkte[6]:=(maxpunktzahl/100)*0;
        StringGrid1.Cells[1,1]:=FloatToStr(Ceil(Minpunkte[1]));
        StringGrid1.Cells[1,2]:=FloatToStr(Ceil(Minpunkte[2]));
        StringGrid1.Cells[1,3]:=FloatToStr(Ceil(Minpunkte[3]));
        StringGrid1.Cells[1,4]:=FloatToStr(Ceil(Minpunkte[4]));
        StringGrid1.Cells[1,5]:=FloatToStr(Ceil(Minpunkte[5]));
        StringGrid1.Cells[1,6]:=FloatToStr(Ceil(Minpunkte[6]));
      end;
Und was die Abfragen angeht, aus dem:
Delphi-Quellcode:
    if (schülerpunkte >= Minpunkte[1]) then Edit3.Text:='1else
    begin
      if (schülerpunkte >= Minpunkte[2]) then Edit3.Text:='2else
      begin
        if (schülerpunkte >= Minpunkte[3]) then Edit3.Text:='3else
        begin
          if (schülerpunkte >= Minpunkte[4]) then Edit3.Text:='4else
          begin
            if (schülerpunkte >= Minpunkte[5]) then Edit3.Text:='5else
            begin
              if (schülerpunkte >= Minpunkte[6]) then Edit3.Text:='6else
            end;
          end;
        end;
      end;
    end;
mach das:
Delphi-Quellcode:
    if (schülerpunkte >= Minpunkte[1]) then Edit3.Text:='1
    else if (schülerpunkte >= Minpunkte[2]) then Edit3.Text:='2
    else if (schülerpunkte >= Minpunkte[3]) then Edit3.Text:='3
    else if (schülerpunkte >= Minpunkte[4]) then Edit3.Text:='4
    else if (schülerpunkte >= Minpunkte[5]) then Edit3.Text:='5
    else if (schülerpunkte >= Minpunkte[6]) then Edit3.Text:='6
    else
    begin

    end;
  Mit Zitat antworten Zitat