Einzelnen Beitrag anzeigen

thepaine91

Registriert seit: 29. Okt 2009
Ort: Neckarsulm
36 Beiträge
 
Delphi 6 Enterprise
 
#10

Re: Geschriebenes Programm stürzt ab

  Alt 11. Dez 2009, 09:58
Da hier keiner mehr Antwortet und mir langweilig war:
Delphi-Quellcode:
private
  procedure Pyramide_paint(grundflaeche, anzahl_ebenen: Integer);

procedure TForm1.Pyramide_paint(grundflaeche, anzahl_ebenen: Integer);
var i, i2, hoehe, grundflaeche_halb: integer;
begin
//Bug entfernt.
  if frac(grundflaeche / 2) <> 0 then
    grundflaeche := grundflaeche -1;
  hoehe := trunc((grundflaeche * sqrt(3)) /2);
  grundflaeche_halb := grundflaeche / 2;
  with Form1 do
  begin
    Canvas.Pen.Color := clBlack;
    for i := 0 to anzahl_ebenen -1 do
    begin
      Canvas.MoveTo(0 + grundflaeche_halb * i, hoehe * (anzahl_ebenen - i));
      for i2 := 0 to (anzahl_ebenen -1) - i do
      begin
        Canvas.MoveTo(Canvas.PenPos.X + grundflaeche, Canvas.PenPos.Y);
        Canvas.LineTo(Canvas.PenPos.X - grundflaeche_halb, Canvas.PenPos.Y - hoehe);
        Canvas.LineTo(Canvas.PenPos.X - grundflaeche_halb, Canvas.PenPos.Y + hoehe);
        Canvas.LineTo(Canvas.PenPos.X + grundflaeche, Canvas.PenPos.Y);
      end;
    end;
  end;
end;

// Aufruf könnte so aussehen:
  Pyramide_paint(100, 3);
Form1 kann durch beliebige Komponenete ersetzt werden solange diese .Canvas beherscht.
Ich würde empfehlen mich mal über die richtige Methode zum Konvertieren von Double in int zu informieren und es entsprechend zu ändern.
Unter umständen wird es dir auch ein erfahrenes Mitglied verraten.

mfg nic
  Mit Zitat antworten Zitat