🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #346595

Re: Scrollowanie bitmapy - c.d.

#346595
From: stchebel
Date: Wed, 09 May 2018 00:30
62 lines
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-mail
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>

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