<?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=63&amp;t=17962&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-03-28T11:25:37+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=63&amp;t=17962&amp;mode</id>
<entry>
<author><name><![CDATA[Harry]]></name></author>
<updated>2017-03-28T11:25:37+01:00</updated>
<published>2017-03-28T08:42:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185770#p185770</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185770#p185770"/>
<title type="html"><![CDATA[Re: Jak pogodzić szybkość wykonywania i wyświetlanie na ekra]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185770#p185770"><![CDATA[
U mnie na S3 mini przy tym drugim przypadku, przelatuje w około 30 sekund. Wszystko zależy od ustawienia modulo przed lablami. Timer nie odpali przy zatkanej procedurze, ale możesz zrobić tą pętle &quot;do until&quot; jako osobną funkcję i wtedy powinien przyjmować inne eventy,  pomiędzy wywołaniami. DoEvents działa tylko na odświeżenie ekranu, na inne procedury niema wpływu. <br />Możesz zrobić &quot;zamkniętą&quot; pętle, w zasadzie to zmienna &quot;przelot&quot; może być dowolna byle właśnie odświeżał co ileś tam, a nie za każdym odpaleniem &quot;do until&quot;, ja użyłem licznika z for tylko dlatego że była i nie chciało mi się powoływać dodatkowej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14685">Harry</a> — 28 mar 2017, o 08:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[przemo.bundy]]></name></author>
<updated>2017-03-28T08:16:22+01:00</updated>
<published>2017-03-28T08:16:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185768#p185768</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185768#p185768"/>
<title type="html"><![CDATA[Re: Jak pogodzić szybkość wykonywania i wyświetlanie na ekra]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185768#p185768"><![CDATA[
Serdeczne dzięki za &quot;DoEvents&quot;, i poprawki w kodzie. Działa! <br />Zauważyłem, że DoEvents odświeża tylko ekran. Timer dalej nie działa gdy pętla jest zamknięta. no i też nie pobiera danych np: EditText1_EnterPressed.<br />No i przy zamkniętej pętli licznik dalej jest powoli odświeżany, prawdopodobnie DoEvents zwalnia całość bo musi wyświetlić. Tak czy siak. osiągnąłem zamierzony efekt.<br /><br />Dzięki też za podpowiedź &quot;serwisu&quot; mam motywację, żeby to ogarnąć.<br />Więc zabieram się do roboty!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3916">przemo.bundy</a> — 28 mar 2017, o 08:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Harry]]></name></author>
<updated>2017-03-28T02:42:37+01:00</updated>
<published>2017-03-28T02:42:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185761#p185761</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185761#p185761"/>
<title type="html"><![CDATA[Re: Jak pogodzić szybkość wykonywania i wyświetlanie na ekra]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185761#p185761"><![CDATA[
Podejrzewam że też by były problemy z powodu zatkania, na poprzednim nawet timer nie ruszał <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />[syntax=vb]Sub Process_Globals<br />'These global variables will be declared once when the application starts.<br />'These variables can be accessed from all modules.<br />End Sub<br />     <br />Sub Globals<br />'These global variables will be redeclared each time the activity is created.<br />'These variables can only be accessed from this module.<br />     <br />Dim szukana As Int<br />Dim szukana_tmp As Int<br />Dim i As Int<br />Dim x As Int<br />Dim z As Int<br />Dim wyjscie As Boolean<br />           <br />Private Label1 As Label<br />End Sub<br />     <br />Sub Activity_Create(FirstTime As Boolean)<br />'Do not forget to load the layout file created with the visual designer. For example:<br />Activity.LoadLayout(&quot;pierwsze_layout&quot;)<br />szukana=3<br />dupa<br /><br />End Sub<br />     <br /> <br />Sub dupa<br />Dimmax_przelot As Int<br />max_przelot=100000'<br />For przelot=1 To max_przelot<br />i=1<br />wyjscie=False<br />Do Until wyjscie=True 'dlaczego taka składnia nie dziala ---&gt;  Do Until z=szukana Or x=1<br />'pętle przyjmują tylko warunek boolean, nie może być żadnych obliczeń, dlatego nie działa.<br />i=i+1<br />x= szukana/i<br />z= x*i<br />'if z=szukana - to nie pierwsza szukaj dalej<br />'if x=1 - to jest liczba pierwsza<br />If z=szukana Then wyjscie=True<br />If x=1 Then wyjscie=True<br />Loop<br /><br /><br />If x=1 Then 'jezeli pierwsza to przepisz zawartosc<br />szukana_tmp= szukana<br />End If<br />     <br />szukana=szukana +1      'testuj kolejna liczbe<br />        <br />If (przelot Mod 50=0 Or przelot=max_przelot) Then <br />Label1.Text=&quot;&quot;<br />Label1.Text= Label1.Text &amp; &quot;Testowana=&quot; &amp; szukana &amp; CRLF 'wyswietl aktualnie testowana liczbe<br />Label1.Text= Label1.Text &amp; &quot;pierwsza=&quot; &amp; szukana_tmp &amp; CRLF 'wyswietl ostatnia liczbe pierwsza<br />DoEvents<br />End If<br />   <br />If szukana &lt;0 Then 'jezeli skonczy sie zakres zmiennej to wyswietl komunikat<br />Label1.Text=&quot;&quot;<br />Label1.Text= Label1.Text &amp; &quot;ERROR !!&quot;<br />Exit<br />End If<br /><br />Next<br />        <br />Label1.Text= Label1.Text &amp; &quot;FINITO&quot;<br />DoEvents<br /><br />End Sub[/syntax]<br />Sprawdź i pomyśl gdzie leży rozwiązanie problemu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: dzisiaj, o 01:42 ]</span></strong><br /><br />tak działa o wieeele szybciej <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br />[syntax=vb]Sub dupa<br />Dimmax_przelot As Int<br />Dim max_prime As Double<br />max_przelot=1000000<br /><br />For przelot=1 To max_przelot<br />max_prime=Sqrt(szukana) 'pierwiastek<br />i=1<br />wyjscie=False<br />Do Until wyjscie=True 'dlaczego taka składnia nie dziala ---&gt;  Do Until z=szukana Or x=1<br />'pętle przyjmują tylko warunek boolean, nie może być żadnych obliczeń, dlatego nie działa.<br />i=i+1<br />x= szukana/i<br />z= x*i<br />'if z=szukana - to nie pierwsza szukaj dalej<br />'if x=1 - to jest liczba pierwsza<br />If (i-1)&gt;max_prime Then 'jezeli kolejny dzielnik jest wiekszy niz pierwiastek z szukanej liczby, tzn ze to jest liczba pierwsza.<br />x=1<br />wyjscie=True<br />End If<br />If z=szukana Then wyjscie=True<br />If x=1 Then wyjscie=True<br />Loop<br /><br /><br />If x=1 Then 'jezeli pierwsza to przepisz zawartosc<br />szukana_tmp= szukana<br />End If<br />     <br />szukana=szukana +1      'testuj kolejna liczbe<br />        <br />If (przelot Mod 500=0 Or przelot=max_przelot) Then  ' - co 20 przelot petli for oddwieza UI<br />Label1.Text=&quot;&quot;<br />Label1.Text= Label1.Text &amp; &quot;Testowana=&quot; &amp; szukana &amp; CRLF 'wyswietl aktualnie testowana liczbe<br />Label1.Text= Label1.Text &amp; &quot;pierwsza=&quot; &amp; szukana_tmp &amp; CRLF 'wyswietl ostatnia liczbe pierwsza<br />DoEvents<br />End If<br />   <br />If szukana &lt;0 Then 'jezeli skonczy sie zakres zmiennej to wyswietl komunikat<br />Label1.Text=&quot;&quot;<br />Label1.Text= Label1.Text &amp; &quot;ERROR !!&quot;<br />Exit<br />End If<br /><br />Next<br />        <br />Label1.Text= Label1.Text &amp; &quot;FINITO&quot;<br />DoEvents<br /><br />End Sub[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14685">Harry</a> — 28 mar 2017, o 02:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[przemo.bundy]]></name></author>
<updated>2017-03-27T19:37:58+01:00</updated>
<published>2017-03-27T19:37:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185734#p185734</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185734#p185734"/>
<title type="html"><![CDATA[Re: Jak pogodzić szybkość wykonywania i wyświetlanie na ekra]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185734#p185734"><![CDATA[
Dalej bedzie to samo. Mozna przypisac nowa wartosc do label.text ale i tak dopiero po wyjscu z danej procedury. Uaktualni sie ona na ekranie. W tym szkopul. Trzeba by sie wgryzc w miejsce w ktorym B4A czeka na zdarzenie. W takiej wewnetrznej petli, ktora jawnie nie jest przekazana dla uzytkownika. Takie mam przemyslenia. No Chyba zeby uruchomic kolejne activity, ktore by zliczalo w zamknietej petli...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3916">przemo.bundy</a> — 27 mar 2017, o 19:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Harry]]></name></author>
<updated>2017-03-27T19:06:23+01:00</updated>
<published>2017-03-27T19:06:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185731#p185731</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185731#p185731"/>
<title type="html"><![CDATA[Re: Jak pogodzić szybkość wykonywania i wyświetlanie na ekra]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185731#p185731"><![CDATA[
czyli jest tak jak myślałem - nie odświeży formy przy zatkanej pętli.<br />to zrób mu np tak w pętli, bez timera.<br />[syntax=vb]if (szukana mod 100) =0 then label1.text=&quot;hhh&quot;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14685">Harry</a> — 27 mar 2017, o 19:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[przemo.bundy]]></name></author>
<updated>2017-03-27T18:39:40+01:00</updated>
<published>2017-03-27T18:39:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185730#p185730</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185730#p185730"/>
<title type="html"><![CDATA[Re: Jak pogodzić szybkość wykonywania i wyświetlanie na ekra]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185730#p185730"><![CDATA[
y y...<br /><br />Nie działa! <br />Działa jeżeli pętla będzie się kończyć!<br />Nie działa gdy program nie wychodzi z pętli!<br />Jak wyjdę z pętli to później nie ma jak wywołać procedury z tą pętlą (masło maślane)<br />Jeżeli użyje timera do wywołania pętli to najmniejszy czas timera to 1 milisekunda. Więc program będzie kulał.<br />A obliczenia będą &quot;wolne&quot;.<br /><br />Więc jak zbudować licznik który zlicza z pełną prędkością zegara CPU. a inna procedura niech sprawdza co jakiś czas i wyświetla wynik na Labelce?!<br /><br />Czy ktoś ma jeszcze jakieś pomysły ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3916">przemo.bundy</a> — 27 mar 2017, o 18:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Harry]]></name></author>
<updated>2017-03-27T15:33:02+01:00</updated>
<published>2017-03-27T15:33:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185719#p185719</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185719#p185719"/>
<title type="html"><![CDATA[Re: Jak pogodzić szybkość wykonywania i wyświetlanie na ekra]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185719#p185719"><![CDATA[
Nie działa Ci, bo nie może działać, activity_create ma służyć do ładowania formy/ustawień a nie do odpalania programu.<br />Dopiero po jej załadowaniu odpala się reszta(timery też), ale możesz z niej wywołać innego suba np &quot;dupa&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><br />[syntax=vb]Sub Process_Globals<br />        'These global variables will be declared once when the application starts.<br />        'These variables can be accessed from all modules.<br /> Dim timer1 As Timer '&lt;- timery muszą być w &quot;Process_globals&quot; a nie tym drugim.<br />       <br />End Sub<br /> <br />Sub Globals<br />        'These global variables will be redeclared each time the activity is created.<br />        'These variables can only be accessed from this module.<br /> <br />        Dim szukana As Int<br />        Dim szukana_tmp As Int<br />        Dim i As Int<br />        Dim x As Int<br />        Dim z As Int<br />        Dim wyjscie As Boolean<br />       <br />        Private Label1 As Label<br />End Sub<br />Sub Activity_Create(FirstTime As Boolean)<br />        'Do not forget to load the layout file created with the visual designer. For example:<br />        Activity.LoadLayout(&quot;pierwsze_layout&quot;)<br /> <br />        timer1.Initialize (&quot;timer1&quot;,1)<br />        timer1.Enabled=True<br /><br />        szukana=3 ' inicjalizacja twoich zmiennych<br />             <br />dupa '&lt;-odpala następne makro i procedura kończy działanie<br />End Sub<br /><br />Sub dupa()<br />  Do Until szukana = z<br />     'twoja petla<br />  Loop<br /><br />End sub<br /><br />timer1_tick()<br /> 'wywołuje cyklicznie<br />  Label1.text=&quot;twój tekst&quot;<br />end sub[/syntax]<br /><br />mogą być literówki - pisane na kolanie.<br />Jeżeli timer by nie chciał odpalać, to musisz wstawić malutkiego sleepa gdzieś do pętli, albo olać go zupełnie i zmieniać tekst na lablu co jakiś czas, a ne za każdym przelotem pętli.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14685">Harry</a> — 27 mar 2017, o 15:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[przemo.bundy]]></name></author>
<updated>2017-03-27T10:05:03+01:00</updated>
<published>2017-03-27T10:05:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185709#p185709</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185709#p185709"/>
<title type="html"><![CDATA[Re: Jak pogodzić szybkość wykonywania i wyświetlanie na ekra]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185709#p185709"><![CDATA[
Hmmmm.... No tak juz probowalem. Klopot w tym ze dopuki nie opuszcze zdarzenia. Nie mozna wywolac innego zdarzenia. Np. Label.text.... Tzw. Kwadratura kola.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3916">przemo.bundy</a> — 27 mar 2017, o 10:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[przemo.bundy]]></name></author>
<updated>2017-03-24T13:32:22+01:00</updated>
<published>2017-03-24T13:32:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185502#p185502</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185502#p185502"/>
<title type="html"><![CDATA[Re: Jak pogodzić szybkość wykonywania i wyświetlanie na ekra]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185502#p185502"><![CDATA[
A gdzie ma się zaczynać ta główna pętla, skoro tu wszystko opiera się na zdarzeniach. Które to muszą być wpierw wywolane.<br />A wartości są zwracane dopiero po opuszczeniu zdarzenia. hmmmm...<br />Czy ktoś mi może podpowiedzieć co robić, będę wdzięczny.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3916">przemo.bundy</a> — 24 mar 2017, o 13:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[przemo.bundy]]></name></author>
<updated>2017-03-24T09:10:51+01:00</updated>
<published>2017-03-24T09:10:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185490#p185490</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185490#p185490"/>
<title type="html"><![CDATA[Jak pogodzić szybkość wykonywania i wyświetlanie na ekranie?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17962&amp;p=185490#p185490"><![CDATA[
Witam.<br /><br />Napisałem program do generowania liczb pierwszych.<br />Kłopot w tym, że obliczenia wykonują się za wolno.<br />Główną część programu umieściłem w Timer1 który wykonuje się z częstotliwością 1 ms.<br />Programowanie obiektowe stwarza mi kłopot, bo nie można wykonać innego zdarzenia, gdy trwa inne zdarzenie.<br />Gdyby chodziło by tylko o same obliczenia to zamknąłbym je w pętli. Ale co zrobić żeby &quot;procek szalał&quot; i obliczał mi tyle ile fabryka mu dała.<br />a w między czasie co nawet sekundę wyświetlać wynik postępu. Jak zamknę obliczenia w pętli, to nie mogę ich wyświetlić na &quot;Labelce&quot;<br />Dlatego użyłem Timer żeby cyklicznie wychodzić ze zdarzenia. No ale te 1 milisekunda burzy szybkość obliczeń.<br /><br /><br /><br />[syntax=vb]#Region  Project Attributes <br />#ApplicationLabel: B4A Example<br />#VersionCode: 1<br />#VersionName: <br />'SupportedOrientations possible values: unspecified, landscape or portrait.<br />#SupportedOrientations: unspecified<br />#CanInstallToExternalStorage: False<br />#End Region<br /><br />#Region  Activity Attributes <br />#FullScreen: False<br />#IncludeTitle: True<br />#End Region<br /><br />Sub Process_Globals<br />'These global variables will be declared once when the application starts.<br />'These variables can be accessed from all modules.<br /><br />End Sub<br /><br />Sub Globals<br />'These global variables will be redeclared each time the activity is created.<br />'These variables can only be accessed from this module.<br /><br />Dim timer1 As Timer<br /><br />Dim szukana As Int<br />Dim szukana_tmp As Int<br />Dim i As Int<br />Dim x As Int<br />Dim z As Int<br />Dim wyjscie As Boolean<br /><br />Private Label1 As Label<br />End Sub<br /><br />Sub Activity_Create(FirstTime As Boolean)<br />'Do not forget to load the layout file created with the visual designer. For example:<br />Activity.LoadLayout(&quot;pierwsze_layout&quot;)<br /><br />timer1.Initialize (&quot;timer1&quot;,1)<br />timer1.Enabled=True<br /><br />szukana=3<br />End Sub<br /><br /><br />Sub timer1_tick<br /><br />i=1<br />wyjscie=False<br />Do Until wyjscie=True 'dlaczego taka składnia nie dziala ---&gt;  Do Until z=szukana or x=1<br />i=i+1<br />x= szukana/i<br />z= x*i<br />'if z=szukana - to nie pierwsza szukaj dalej<br />'if x=1 - to jest liczba pierwsza<br />If z=szukana Then wyjscie=True<br />If x=1 Then wyjscie=True<br />Loop<br />If x=1 Then 'jezeli pierwsza to przepisz zawartosc<br />szukana_tmp= szukana<br />End If<br /><br />szukana=szukana +1'testuj kolejna liczbe<br /><br />Label1.Text=&quot;&quot;<br />Label1.Text= Label1.Text &amp; &quot;Testowana=&quot; &amp; szukana &amp; CRLF 'wyswietl aktualnie testowana liczbe<br />Label1.Text= Label1.Text &amp; &quot;pierwsza=&quot; &amp; szukana_tmp &amp; CRLF 'wyswietl ostatnia liczbe pierwsza<br /><br />If szukana &lt;0 Then 'jezeli skonczy sie zakres zmiennej to wyswietl komunikat<br />Label1.Text=&quot;&quot;<br />Label1.Text= Label1.Text &amp; &quot;ERROR !!&quot;<br />End If<br /><br />End Sub<br /><br /><br /><br />Sub Activity_Resume<br /><br />End Sub<br /><br />Sub Activity_Pause (UserClosed As Boolean)<br /><br />End Sub[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3916">przemo.bundy</a> — 24 mar 2017, o 09:10</p><hr />
]]></content>
</entry>
</feed>