Thema: Delphi auflisten + Graf

Einzelnen Beitrag anzeigen

playa2kk
(Gast)

n/a Beiträge
 
#30

Re: auflisten + Graf

  Alt 20. Mär 2009, 20:52
Zitat von BAMatze:
Zitat von seim:
Zitat von BAMatze:
Das mit dem Quellcode wäre natürlich möglich, aber die Frage ist, ob du dann nicht der einfachheithalber einfach copy und paste machst
Hör' mal bitte auf mit so nem Schwachsinn..

Ich hab' hauptsächlich durch Quellcode angucken und abändern gelernt wie Delphi funktioniert.. also Tut's hab ich kaum gelesen und wenn alle so handeln würden wie du das da beschreibst "Lerneffekt" dann gäbe es keine Libraries^^
@seim: Da du wie du schon sagtest hier etwas rumgestöbert hast, werden dir sicherlich auch die dementsprechenden Grundsatzdiskusionen bekannt sein. Deswegen äußere ich mich hier auch gar nicht erst auf diesen Einwurf.

@Play: Habe dir den SourceCode angehängt, ich weiße gleich mal darauf hin, dass ich es in 30min zusammengestellt habe und deswegen nicht wirklich ein sauberes Programmierkonzept zugrunde liegt, sondern rein das Augenmerk auf Funktionalität lag. Es gibt ätliches, was noch Verbesserungswürdig ist (z.B. alles Löschen um einen weiteren Graphen anzeigen zu lassen, Beschriftung der Achsen, ...). Wenn du aber Fragen hast dazu, kannst du sie mir natürlich stellen.

MfG
BAMatze
Zunächst einmal Danke für deine Mühen.
Ich muss zugeben, ich wäre nie auf solch eine "komplizierte" Weise zum Ergebnis gekommen.Ich habe mir die Sache schon etwas einfacher vorgestellt.

Wie kann ich denn die Achsenbeschriftung einfügen?

Die Prozedur für die Punktberechnung habe ich komplett verstanden, bei der Zeichnung des Koordinatensystems gibt es bei mir Verständnisprobleme.
Könntest du mir, falls du Zeit und Lust hast, mir die Prozedur Schritt für Schritt erklären?
Delphi-Quellcode:
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
  BitBlt(PaintBox1.Canvas.Handle, 0, 0, Paintbox1.Width, Paintbox1.Height,
  privbmp.Canvas.Handle, 0, 0, SRCCOPY);
end;

procedure TForm1.Line_zeichnen(StartX: Integer; StartY: Integer; EndX: Integer; EndY: Integer);
begin
  privbmp.Canvas.MoveTo(StartX, StartY);
  privbmp.Canvas.LineTo(EndX, EndY);
end;

procedure TForm1.Graph_zeichnen;
var i: integer;
var SkallierungX, SkallierungY: double;
begin
  privbmp.Canvas.Pen.Color := clred;
  SkallierungY := PaintBox1.Height/maxY;
  SkallierungX := PaintBox1.Width/Inter;
  for i := 0 to n-2 do Line_zeichnen(round(10+(SkallierungX*(t[i]-t[0]))),round(PaintBox1.Height-(10+SkallierungY*y[i])),round(10+(SkallierungX*(t[i+1]-t[0]))), round(PaintBox1.Height-(10+SkallierungY*y[i+1])));
  Paintbox1.Refresh;
end;

procedure TForm1.KoordinatenSystem_zeichnen;
var ySchritt, xSchritt, i: integer;
begin
  xSchritt := trunc((PaintBox1.Width-10)/5);
  ySchritt := trunc((PaintBox1.Height-10)/5);
  Line_zeichnen(0,PaintBox1.Height-10, Paintbox1.Width, PaintBox1.Height-10);
  Line_zeichnen(10,0, 10, PaintBox1.Height);
  for i := 1 to 5 do
    begin
      Line_zeichnen(10+i*xSchritt, PaintBox1.Height-15,10+i*xSchritt, PaintBox1.Height-5);
      Line_zeichnen(5,PaintBox1.Height-(+i*ySchritt), 15,PaintBox1.Height-(+i*ySchritt));
    end;
  PaintBox1.Refresh;
end;
Mfg
play
  Mit Zitat antworten Zitat