<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=66&amp;t=19413&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-10-18T22:00:15+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=66&amp;t=19413&amp;mode</id>
<entry>
<author><name><![CDATA[KazioB]]></name></author>
<updated>2017-10-18T22:00:15+01:00</updated>
<published>2017-10-18T22:00:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19413&amp;p=197335#p197335</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19413&amp;p=197335#p197335"/>
<title type="html"><![CDATA[komponent PaintBox]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19413&amp;p=197335#p197335"><![CDATA[
Witam, chciałbym graficznie przedstawic zmiany temperatury w czasie, czy można to zrobic za pomocą komponentu PaintBox.<br />Może ktoś próbował to zrobic i mógł by udzielic paru wskazówek.<br /><br />-- 18 paź 2017, o 22:00 --<br /><br />Witam, poszukałem, poczytałem, pokombinowałem i wyszło to:<br /><br /><a href="https://obrazkiforum.atnel.pl/13570/2d17fde208c599bc3f2c2974977888ba.PNG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/13570/2d17fde208c599bc3f2c2974977888ba.PNG" alt="Obrazek" /></a><br /><br />Chodzi o to że, chciałem przedstawi graficznie zmianę temperatury. Z mikrokontrolera odbieram przez port COM string z datą, godziną i temperaturą. Wyświetlanie danych odbywa się w obsłudze tajmera , tu to Timer3 , poniżej zamieszczam listing moich kombinacji - może się komuś przyda.<br /><br />[syntax=delphi]{$J+}<br />procedure TForm1.Timer3Timer(Sender: TObject);<br />const x: integer=6;<br />      y: integer=6;<br />      krokx: integer=1;<br /> <br />var  wynik: integer;<br /><br />begin<br />   with PaintBox1.Canvas do<br />   begin<br />    wynik := 400 - tempCal; //zmiana wartości temperatury tak aby rysowana linia odpowiadała zmianom góra , dół<br /><br />    x:= x+5;  // współrzędna x odpowiada za przesuwanie w prawo wykresu <br />    y:= wynik; // współrzędna y to wartośc temperatury<br /><br />    Label32.Left := Label32.Left + 5;<br />    Label32.Caption := Panel7.Caption;<br />    Label33.Top := wynik;<br />    Label33.Caption := Panel8.Caption;<br /><br />     Pen.Color:= clRed;  // kolor rysowanej linii wykresu<br /><br />    LineTo(x,y);  // rysowanie linii<br /><br />    if (x&gt;PaintBox1.Width-3) then   // jeśli linia dojdzie do końca obszaru PaintBox<br />    begin                                   // następuje wyzerowanie kroku <br />      krokx:= -krokx;                    // wyczyszczenie pola PaintBox<br />      brush.Color:= clWhite;          // przeniesienie kursora linii na początek obszaru<br />      Pen.Color:= clBlack;<br />      rectangle(0,0,500,200);<br />      x:= 3;<br />      y:= wynik;<br />      MoveTo(x,y);<br />      Label32.Left := 34;<br />      Label34.Caption := Label32.Caption;<br />    end;<br />    if (y&gt;PaintBox1.Height-3) then<br />    begin<br /><br />    TrackBar2.Max := 10000;        // tu można zmienic interval timera, tzn zakres czasu wyświetlania <br />    TrackBar2.Tag := 100;<br />    if (TrackBar2.Position = 0) then TrackBar2.Position := 100; // aby nie wyłączyc timera minimalna wartośc to 100<br />    Timer3.Interval := TrackBar2.Position;<br /><br /><br />    Label35.Caption := 'Interwał: '+ IntToStr(TrackBar2.Position);<br /><br />   end;<br />end;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13570">KazioB</a> — 18 paź 2017, o 22:00</p><hr />
]]></content>
</entry>
</feed>