Logikproblem bei eigener Funktion

Code:
function UpperCase: string;
var
  chars,i,p:integer;
  temp1,temp2,Text:string;
begin
  For i := 0 to Form1.Memo2.Lines.Count-1 do
    begin
      Text := Form1.Memo2.Lines.Strings[i];
      chars := length(Text);
      temp1 := Text[1]; //Erstes Zeichen holen
      temp2 := StuffString(Text,1,1,AnsiUpperCase(temp1)); //Erstes Zeichen groß
      For p := 1 to chars do
        begin
          If Text[p] = '' then
          temp2 := StuffString(Text,p+1,1,AnsiUpperCase(Text[p+1])); //Setzt alle Anfangsbuchstaben groß
        end;
      result := temp2;
      Form3.Memo1.Lines.Add(result); //Ab ins Memo
      end;
end;

Ja,ich weiß, dass es noch umständlich geschrieben ist,ich hab das gerade auf die Schnelle machen müssen ^^
Also die Funktion soll als erstes den Anfangsbuchstaben eines Strings groß setzen (was sie auch tut) und danach den String nach Leerzeichen durchsuchen (innere For-Schleife), um danach den nächsten Buchstaben groß zu setzen. Das funktioniert leider nicht, da wird gar nix gemacht....

Erkennt jemand den Fehler?
 
Zuletzt bearbeitet:
Hallo!

Ist wirklich nur eine Kleinigkeit, die Verzweigung greift nicht, weil anstelle des leerzeichens ein leerer String dasteht. Wenn du zwischen die Hochkommas noch ein Leerzeichen setzt, klappt es. Übrigens hab ich den Code mal etwas... verkürzt:

PHP:
var
  chars,i,p:integer;
  temp1,temp2,Text:string;
begin
  For i := 0 to Memo2.Lines.Count-1 do
    begin
      Text := Memo2.Lines.Strings[i];
      chars := length(Text);
      text[1]:=AnsiUpperCase(text[1])[1];
      For p := 1 to chars do
        begin
          If Text[p] = ' ' then
          Text[p+1]:= AnsiUpperCase(text[p+1])[1]; //Setzt alle Anfangsbuchstaben groß
        end;
      Memo1.Lines.Add(text); //Ab ins Memo
      end;
end;

Wohl auch noch etwas schmutzig, aber diese Funktion kannte Delphi nicht, deshalb schnell angepasst. Auch was die Memos angeht, wegen testen und so.

lg Hellie
 

Neue Beiträge

Zurück