Thema: Delphi Noten als enum auslegen

Einzelnen Beitrag anzeigen

Amateurprofi
Online

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.060 Beiträge
 
Delphi XE2 Professional
 
#23

AW: Noten als enum auslegen

  Alt 17. Apr 2018, 02:39
Zitat:
Ja, wenn man denn einen der vielen richtigen Wege geht.
Seltsam nur das bei mir die richtigen Ergebnisse ausgegeben werden.

Siehe shot

oben A ,B genau das was erwartet wird.

Delphi-Quellcode:
for k = 0 to xx do
begin

end
Result := bla; // und hier das result. dort wird ausgewertet wenn die schleife beendet wird auf welchen weg auch immer.
Keine Ahnung was du willst?
Zitat:
Die Zeile Result := sResult wird nicht ausgeführt.
Wird immer ausgeführt.

Zitat:
Eine Zeile tiefer steht ein "end;", und unter die Zeile mit dem "end;" soll es gebracht werden, also 1 + 1 = 2 Zeilen tiefer.
Keine Ahnung was du da rechnest oder meinst zu sehen.
Wie ich schon sagte 1 zeile tiefer.

Delphi-Quellcode:
function TransposeChord(sChord: string; Pitch: Integer): string;
var
  sResult: string;
  K, MaxK, Found: Integer;
begin

  sResult := sChord;
  MaxK := 12;

  for K := 0 to (MaxK - 1) do
  begin
    if cTranspose[TTranspose(K)] = sChord then
    begin
      Found := (K + Pitch) mod MaxK;
      if Found < 0 then
        inc(Found, MaxK);

      sResult := cTranspose[TTranspose(Found)];
      break;
    end;
  end;
  Result := sResult;
end;
EIne Zeile tiefer vergleiche es!
Vorher stand es über den End nun drunter.

gruss
Ich hatte mich auf die Funktion in deinem Beitrag #10 bezogen.
In der stand das Result:=sResult; innerhalb der For-Schleife, wurde also nicht ausgeführt, wenn die For-Schleife mit Break verlassen wird.
Ich hatte dann u.A. vorgeschlagen das Result:=sResult; 2 Zeilen nach unten, also hinter die For-Schleife zu verschieben.
Zu diesem Vorschlag hattest du in #19 gesagt
Zitat:
Na ja eine Zeile tiefer.

Wird aber in jedem fall aufgerufen auch wenn ich es so belassen würde.
er Wert wird also in jedem fall richtig übergeben.
Und hierzu hatte ich angemerkt, dass das nicht richtig ist.

Hierzu sagst du
Zitat:
Seltsam nur das bei mir die richtigen Ergebnisse ausgegeben werden.

Siehe shot

oben A ,B genau das was erwartet wird.
Welcher "Shot" ?
Und ja klar bringt die von dir jetzt gezeigte Funktion richtige Ergebnisse, denn sie enthält ja auch die von mir vorgeschlagenen Korrekturen, insbesondere die, das Result:=sResult; hinter die For-Schleife zu verschieben.
Mein Einwand bezog sich aber auf deinen Kommentar, dass auch dann wenn man das Result:=sResult; so belässt (also innerhalb der For-Schleife), die richtigen Werte übergeben werden.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat