Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Das kleine Einmaleins OHO
Rafa - Do 15.11.07 19:04
Titel: Das kleine Einmaleins OHO
Hi alle,
Ich, Delphiexperte, wurde damit beauftragt ein Delphiprogrmam über das kleine Einmaleins zu schreiben. Ich glaube, dass die Schleifen soweit stimmen. Der Fehler sollte bei der "str" Ausgabe liegen. Letztendlich ist das auch nicht von mir, d.h., ich habe mir das bei einem Klassenkameraden angeguckt und wollte es ähnlich ausgeben, was leider nicht geglückt ist. Bin für jeden hilfreichen Tip dankbar :]
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TForm1.Rechne1Click(Sender: TObject); begin for I:=1 to 10 do begin zeile:=zeile+1; For A:=1 to 10 do begin summe:=I*A; end;
str:=I 'x' A '=' summe; stringgrid1.cells [0, zeile]:=str (string); end; end;
end. |
Logikmensch - Fr 16.11.07 07:22
Hi.
Mach's Dir doch nicht so schwer, Du "Delphi-Experte":
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| With StringGrid1 do begin rowcount:=11; colcount:=11; fixedrows:=1; fixedcols:=1; for spalte:=1 to 10 do Cells[0,spalte]:=inttostr(spalte-1); for zeile:=1 to 10 do Cells[zeile,0]:=inttostr(zeile-1); for zeile:=1 to 10 do for spalte:=1 to 10 do Cells[zeile,spalte]:=inttostr((zeile-1)*(spalte-1)); end; |
oder noch eleganter:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| With StringGrid1 do begin rowcount:=11; colcount:=11; fixedrows:=1; fixedcols:=1; for spalte:=1 to 10 do Cells[0,spalte]:=inttostr(spalte-1); for zeile:=1 to 10 do Cells[zeile,0]:=inttostr(zeile-1); value:=1; for zeile:=1 to 10 do for spalte:=1 to 10 do begin Cells[zeile,spalte]:=inttostr(value); inc(value); end; end; |
Ist aus dem Kopf programmiert - Fehler nicht 100%ig ausgeschlossen, aber so würde ich das 1x1 demonstrieren.
Kann schon in einem FormCreate untergebracht werden, dann ist nicht einmal ein Mausklick nötig. :-)
Miri - Fr 16.11.07 08:32
Guten Morgen!
Erstmal so am Rande: es ist unglaublich hilfreich, wenn man zu seinem Problem auch noch dazu sagt, wann es auftaucht, bzw. was für ein Fehler gemeldet wird, das erleichtert das Rätselraten ein wenig!
Ich würde aber mal tippen, dass dein Fehler da liegt:
Rafa hat folgendes geschrieben: |
Delphi-Quelltext 1: 2:
| str:=I 'x' A '=' summe; stringgrid1.cells [0, zeile]:=str (string); | |
Wenn man Strings zusammensetzen will, muss man die einzelnen Teile mit + verbinden!
Und was auch immer du mit str(string) erreichen wolltest, lass es einfach weg *g*
Versuchs mal so:
Delphi-Quelltext
1: 2:
| str:=I + 'x' + A + '=' + summe; stringgrid1.cells [0, zeile]:=str; |
Viele Grüße,
Miri
jasocul - Fr 16.11.07 09:51
Delphiexperte? :roll:
Ich nehme an, das sollte Ironie sein. Das solltest Du dann wenigstens in Anführungszeichen schreiben. :wink:
Delphi-Quelltext
1: 2:
| str:=I 'x' A '=' summe; stringgrid1.cells [0, zeile]:=str (string); |
Das ist natürlich völliger Blödsinn.
Korrekt muss es so aussehen:
Delphi-Quelltext
1: 2:
| str:= IntToStr(I) + 'x' + IntToStr(A) + '=' + IntToStr(summe); stringgrid1.cells [0, zeile]:= str; |
Wie
Miri schon schrieb, werden Strings mit "+" verknüpft. Beim Mischen von Zahlen und Strings, müssen die Zahlen natürlich vorher in Strings umgewandelt werden (IntToStr). In Deinem Beispiel bin ich davon ausgegangen, dass die Variablen I, A und summe vom Typ Integer sind. Falls sie Real, Double o.ä (also Float-Typen) sind, dann musst Du FloatToStr verwenden.
Was Du mit der letzten Zeile erreichen wolltest, verschließt sich mir.
Miri - Fr 16.11.07 09:56
jasocul hat folgendes geschrieben: |
Beim Mischen von Zahlen und Strings, müssen die Zahlen natürlich vorher in Strings umgewandelt werden (IntToStr). |
Verdammt, ich mach in letzter Zeit einfach zu viel Java :mrgreen:
Rafa - Fr 16.11.07 22:30
Danke für die Tips :D. Es hat letztendlich mit einigen Fehlern funktioniert. "Delphiexperte" war natürlich mein purer Ernst :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!