Da hatte ich doch grad selber schnell was zusammengebaut und du hasts selber...
Delphi-Quellcode:
Procedure TForm1.cmdGoClick(Sender: TObject);
Var i: Integer;
Sl: TStringList;
Begin
Sl := TStringList.Create;
For i := 0 To seLines.Value - 1 Do Begin // seLines.Value = Anzahl der Zeilen
Sl.Append( StringOfChar( #32, ( seLines.Value - 1 ) - i ) + StringOfChar( #42, i*2 + 1 ) );
End;
txtOut.Text := Sl.Text;
End;
Ich würd an deiner Stelle das so machen wich ich das gemacht habe (Mit hilfe einer StringListe) kannst ja mal eine 1000 Zeilen Pyramide erstellen, dann weist warum.
Zitat von
me2u:
Ich weiß ehrlich gesagt nicht genau WIESO das jetzt so funktioniert, aber es sieht gut aus
Warum ist ja einfach zu sagen...
Du brauchst in der ersten zeile einen Stern in jeder weiteren 2 Sterne mehr...
Also ist die Rechnung recht simpel:
(Zeilennummer - 1) * 2 + 1 da bei dir (wie auch bei mir) Zeile 1 eigendlich 0 ist wird ganz simpel daraus:
Zeilennummer * 2 + 1
So damit hätten wir die Sternchen...
Kommen wir zu den Leerzeichen...
die Letzte Zeile benötigt also keins und jede Zeile zuvor jeweils eins mehr...
Daraus folgt, dass wir die Anzahl der Zeilen kennen müssen!
Also ist die Anzahl an Leerzeichen einer Zeile
Zeilenanzahl - Zeilennummer da wir beide aber wieder bei 0 statt bei eins anfangen müssen wir noch eins abziehn:
Zeilenanzahl - Zeilennummer - 1
Bye Christian