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.