Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Berechnungstool 2.1.1

  Alt 24. Jan 2010, 12:49
Ich habe mal kurz in den Sourcecode reingeschaut.
Nix für ungut, aber dass ist das extremste Copy & Paste was ich seit langem gesehen habe.
Eine Grundregel beim Programmieren lautet: "Du sollst Dich nicht selbst wiederholen"
Man darf also nicht Folgendes schreiben:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if RadioButton14.checked = true then
    begin
      spannung := StrToFloat(Edit1.Text);
      widerstand := (spannung-rot_710sp)/rot_710st;
      Label18.Caption := FloatToStr(widerstand);
      Label19.Caption := 'Ohm';
    end;
  if RadioButton15.Checked = true then
    begin
      spannung := StrToFloat (Edit1.Text);
      widerstand := (spannung-rot_3500sp)/rot_3500st;
      Label18.Caption := FloatToStr(widerstand);
      Label19.Caption := 'Ohm';
    end;
  if RadioButton16.Checked = true then
    begin
      spannung := StrToFloat (Edit1.Text);
  // das geht hier noch seitenlang so weiter
  ...
Warum ziehst du die Anweisung spannung:=StrToFloat(Edit1.Text) nicht vor die ganzen If-Abfragen?
Hast du schon mal daran gedacht Label18 und Label19 über eine Prozedure zu setzen?
Delphi-Quellcode:
procedure TForm1.ShowWiderstand(wert:Double);
var
  dim : string;
begin
  if wert >= 1000000 then
  begin
    wert := wert / 1000000.0;
    dim = 'Megaohm';
  end
  else if wert >= 1000 then
  begin
    wert := wert / 1000.0;
    dim = 'Kiloohm';
  end
  else
    dim := 'Ohm';
  Label18.Caption := FloatToSr(wert);
  Label19.Caption := dim;
Sorry für die harten Worte (aber du möchtest doch dazulernen und ausserdem hat jeder mal klein angefangen)
aber dein Sourcecode ist ein einziger Saustall.
Du musst mal kräftig aufräumen und die immer wiederkehrenden Sourcecodefragmente eindampfen.
fork me on Github
  Mit Zitat antworten Zitat