Article View: pl.comp.lang.delphi
Article #346595Re: Scrollowanie bitmapy - c.d.
From: stchebel
Date: Wed, 09 May 2018 00:30
Date: Wed, 09 May 2018 00:30
62 lines
4025 bytes
4025 bytes
W dniu wtorek, 8 maja 2018 16:13:57 UTC+2 użytkownik J-23 napisał: > W dniu 08.05.2018 o 11:23, stchebel@gmail.com pisze: > > W dniu wtorek, 8 maja 2018 09:28:17 UTC+2 użytkownik danielma...@gmail.com napisał: > >> W jakim evencie rysujesz na canvasie? > > > > ButtonxClick. Kod wygląda tak: > > > > procedure TForm1.Button10Click(Sender: TObject); > > var > > k,ftresult,Write_Result,Read_Result,Marker:integer; > > EchoL,Wynik:TablicaEcho; > > Found:boolean; > > begin > > CT_START:=not CT_START; > > if CT_START then begin > > Button10.Caption:='CT_STOP'; > > // UstawBit(Port_8,3); > > end; > > if (not CT_START) then begin > > Button10.Caption:='CT_START'; > > // ZerujBit(Port_8,3); > > end; > > //ZapiszPort(8,Port_8); > > > > repeat > > UstawBit(Port_8,3); > > ZapiszPort(8,Port_8); > > ZerujBit(Port_8,3); > > ZapiszPort(8,Port_8); > > > > > > > > // Prezentacja 1D > > > > k:=16384; > > ftresult:=FT_Read(FT_HANDLE,@EchoL,k,@Read_Result); > > ZnajdzMarker(EchoL,Marker,Found); > > if Found then Label27.Caption:=IntToStr(Marker) else Label27.Caption:='Not Found'; > > RysujPrzebieg(ObrazGorny,Marker,8000,EchoL,Wykres); > > Image6.Canvas.Draw(0,0,Wykres); > > > > Application.ProcessMessages; > > until (not CT_START); > > end; > > > > Po kliknięciu guzika Button10 zmienna globalna CT_START zmienia wartość na true i wszystko zaczyna się kręcić w pętli repeat... until. W procedurze RysujPrzebieg zmienna ObrazGorny to bitmapa z "siatką" ekranu oscyloskopu, EchoL to tablica danych do namalowania, a wykres to gotowa bitmapa do wyświetlania. > > > > Procedury UstawBit, ZerujBit, ZapiszPort służą do wyzwalania akwizycji. Ot, taki trigger. FT_Read służy do odczytu danych z urządzenia zewnętrznego. > > > > Kolejne kliknięcie na ten guzik powoduje zmianę zmiennej CT_START na false i pętla przestaje się kręcić. > > > > Ja bym to podzielił na wątki, bo tak jak masz teraz to robisz wszystko w > wątku głównym i dlatego staje to dęba przy przesuwaniu. > > Będziesz miał trochę pracy z odpowiednią synchronizacją ale to jest do > ogarnięcia > > Pozdrawiam > J-23 Też tak podejrzewałem. Problem w tym, że nigdy nie pisałem programów wielowątkowych. Programuję w zasadzie w sytuacjach wyjątkowych, więc marny ze mnie programista. Jak na razie mam pilniejsze tematy związane z przetwarzaniem sygnału, więc ten temat zostawiam na deser bo nie jest to sprawa krytyczna. Nie mniej jednak, dzięki za podpowiedź.
Technical Details
Message-ID:
<0fafecd4-6e8d-4881-80ea-4c18034a10a5@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin3!goblin.stu.neva.ru!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!v8-v6no775741itc.0!news-out.google.com!f20-v6ni928itd.0!nntp.google.com!v8-v6no775740itc.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<f9f5ee0a-edd6-441b-bebd-96a2ba231076@googlegroups.com> <d28dc90f-ecd3-4ea0-8401-be0ddb42c55e@googlegroups.com> <6c9dff71-e7cd-47a8-b11a-691e61a4df2f@googlegroups.com> <5af1b09b$0$687$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
X-Received: by 2002:a24:49a6:: with SMTP id e38-v6mr3601235itd.48.1525825848480; Tue, 08 May 2018 17:30:48 -0700 (PDT) X-Received: by 2002:a9d:5a0a:: with SMTP id v10-v6mr2788621oth.13.1525825848275; Tue, 08 May 2018 17:30:48 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin3!goblin.stu.neva.ru!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!v8-v6no775741itc.0!news-out.google.com!f20-v6ni928itd.0!nntp.google.com!v8-v6no775740itc.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.delphi Date: Tue, 8 May 2018 17:30:47 -0700 (PDT) In-Reply-To: <5af1b09b$0$687$65785112@news.neostrada.pl> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=185.234.91.174; posting-account=67yd9woAAAAHUu8VHyA7Js47M98NE3m3 NNTP-Posting-Host: 185.234.91.174 References: <f9f5ee0a-edd6-441b-bebd-96a2ba231076@googlegroups.com> <d28dc90f-ecd3-4ea0-8401-be0ddb42c55e@googlegroups.com> <6c9dff71-e7cd-47a8-b11a-691e61a4df2f@googlegroups.com> <5af1b09b$0$687$65785112@news.neostrada.pl> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <0fafecd4-6e8d-4881-80ea-4c18034a10a5@googlegroups.com> Subject: Re: Scrollowanie bitmapy - c.d. From: stchebel@gmail.com Injection-Date: Wed, 09 May 2018 00:30:48 +0000 Lines: 79 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit