Einzelnen Beitrag anzeigen

ituser

Registriert seit: 31. Mai 2005
Ort: Lohra
9 Beiträge
 
Delphi 7 Personal
 
#8

Re: Fortlaufenden Graph zeichnen lassen

  Alt 6. Nov 2006, 19:21
Klappt irgendwie alles nicht so wirklich, wahrscheinlich liegt dann wohl der Fehler in einem anderen Teil der Prozedur, ich poste mal das gesamte Timerereignis... wahrscheinlich hab ich da wieder was vergessen

@Gausi:

Scheinbar vergesse ich bei deiner Version jedes mal was bestimmtes einzubauen, nur was...

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  Dezimalwert: byte;
  Spannung, Widerstand, Temperatur: double;
  ScrollRect, ClipRect: TRect;
begin

  {if rand=false then} ix:=ix+2;

  //Einlesen von Daten

  {try
    Dezimalwert:=ADEin;
  except
    dezimalwert:=random(30)+1;
  end;}


  //Zufällige DAten
  dezimalwert:=random(10)+90;


  Spannung:=(DezimalWert/255)*5;
  Widerstand:=Spannung/Ik;
  Temperatur:=25+(sqrt(k1*k1-4*k2+4*k2*(Widerstand/2000))-k1)/(2*k2);

  label5.caption:=inttostr(Dezimalwert);
  label6.caption:=floattostrf(Spannung,fffixed,6,2)+' V';
  label7.caption:=floattostrf(Widerstand,fffixed,6,2)+' Ohm';
  label8.caption:=floattostrf(Temperatur,fffixed,6,2)+' °C';

  image1.Canvas.Pen.color:=clred;
  if ix=5 then begin
    image1.canvas.moveto(ix-2,image1.Height);
    image1.Canvas.lineto(ix,image1.Height-trunc(Temperatur*4));
  end else begin
    image1.Canvas.MoveTo(ix-2,ypsilon);
    image1.Canvas.LineTo(ix,image1.Height-trunc(Temperatur*4));
    ypsilon:=image1.Height-trunc(Temperatur*4);
  end;

  //Wenn am Rand angekommen
  if (ix>=image1.Width-2) then begin
    //Einzelne Pixel Methode
    {for i:=2 to image1.Width do begin
      for j:=0 to image1.Height do begin
          image1.Canvas.Pen.Color:=image1.Canvas.Pixels[i+1,j];
          image1.Canvas.Pixels[i-1,j]:=image1.Canvas.Pixels[i+1,j];
          image1.Canvas.Pen.Color:=image1.Canvas.Pixels[i,j];
          image1.Canvas.Pixels[i-2,j]:=image1.Canvas.Pixels[i,j];
      end;
    end;}


    //Andere
   ScrollRect:=image1.BoundsRect;
   ClipRect:=image1.BoundsRect;
   ScrollDC(image1.Canvas.Handle, -2, 0, ScrollRect, ClipRect, 0, nil);


  end;



end;
Markus
  Mit Zitat antworten Zitat