<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Edit-Feld nach 500 ms updaten]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte in einem Edit-Feld eine Variable anzeigen lassen. Diese Variable wir in einer Schleife incrementiert. Damit man das auch am Bildschirm sieht, dachte ich, dass die Schleife bei jedem Durchlauf 500ms warten soll. Für die Zeit soll die aktualisierte Variable sichtbar sein. Wenn ich aber sleep einsetze dauert zwar die Abarbeitung der Schleife länger, aber der Wert wird nicht am Bildschirm angezeigt</p>
<p>Hier der Code der das realiseren soll</p>
<pre><code class="language-cpp">//Sendernamen und Frequnezen initialisieren
	int sendfreq[8]={902, 933, 945, 963, 977, 989, 1024, 1051};
	CString sendnam[8]={&quot;Bayern 2&quot;, &quot;Energy&quot;, &quot;Bayern 1&quot;, &quot;Gong&quot;, &quot;B5&quot;, &quot;Bayern 3&quot;, &quot;Antenne&quot;, &quot;Klassik&quot;};
	int anzahl= sizeof(sendfreq)/sizeof(sendfreq[0]);
	//Variable für gefundene Senderstation
	int found=-1;
	do 
	{
		freqcount++;
		Sleep(500);

		m_frequenz=(double)freqcount/10;
		UpdateData(FALSE);

		for (int i=0; i&lt;=anzahl;i++)
		{
			if (freqcount==sendfreq[i])
			{
				found=i;

			}
		}
		if(freqcount&gt;1075)
			freqcount=877;

	}while (found==-1);

	m_sendername=sendnam[found];
	UpdateData(FALSE);
</code></pre>
<p>weiss jemand warum mein Edit-Feld nicht aktualisiert wird</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/76844/edit-feld-nach-500-ms-updaten</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Apr 2026 15:56:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/76844.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 15 Jun 2004 13:03:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Edit-Feld nach 500 ms updaten on Tue, 15 Jun 2004 13:03:09 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte in einem Edit-Feld eine Variable anzeigen lassen. Diese Variable wir in einer Schleife incrementiert. Damit man das auch am Bildschirm sieht, dachte ich, dass die Schleife bei jedem Durchlauf 500ms warten soll. Für die Zeit soll die aktualisierte Variable sichtbar sein. Wenn ich aber sleep einsetze dauert zwar die Abarbeitung der Schleife länger, aber der Wert wird nicht am Bildschirm angezeigt</p>
<p>Hier der Code der das realiseren soll</p>
<pre><code class="language-cpp">//Sendernamen und Frequnezen initialisieren
	int sendfreq[8]={902, 933, 945, 963, 977, 989, 1024, 1051};
	CString sendnam[8]={&quot;Bayern 2&quot;, &quot;Energy&quot;, &quot;Bayern 1&quot;, &quot;Gong&quot;, &quot;B5&quot;, &quot;Bayern 3&quot;, &quot;Antenne&quot;, &quot;Klassik&quot;};
	int anzahl= sizeof(sendfreq)/sizeof(sendfreq[0]);
	//Variable für gefundene Senderstation
	int found=-1;
	do 
	{
		freqcount++;
		Sleep(500);

		m_frequenz=(double)freqcount/10;
		UpdateData(FALSE);

		for (int i=0; i&lt;=anzahl;i++)
		{
			if (freqcount==sendfreq[i])
			{
				found=i;

			}
		}
		if(freqcount&gt;1075)
			freqcount=877;

	}while (found==-1);

	m_sendername=sendnam[found];
	UpdateData(FALSE);
</code></pre>
<p>weiss jemand warum mein Edit-Feld nicht aktualisiert wird</p>
]]></description><link>https://www.c-plusplus.net/forum/post/540759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/540759</guid><dc:creator><![CDATA[Mr_Groove]]></dc:creator><pubDate>Tue, 15 Jun 2004 13:03:09 GMT</pubDate></item><item><title><![CDATA[Reply to Edit-Feld nach 500 ms updaten on Tue, 15 Jun 2004 13:20:29 GMT]]></title><description><![CDATA[<p>in welcher funktion machst du das?<br />
meiner meinung nach wird das Editfeld erst upgedatet, wenn die Funktion verlassen wird.</p>
<p>Hab dein Prog mal ausprobiert und es funkt auch. dauert nur ziemlich lange bis die schleife durchlaufen ist, weil du jedesmal eine halbe Sekunde wartest</p>
]]></description><link>https://www.c-plusplus.net/forum/post/540787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/540787</guid><dc:creator><![CDATA[Horst2]]></dc:creator><pubDate>Tue, 15 Jun 2004 13:20:29 GMT</pubDate></item><item><title><![CDATA[Reply to Edit-Feld nach 500 ms updaten on Tue, 15 Jun 2004 13:29:05 GMT]]></title><description><![CDATA[<p>Servus,</p>
<p>ich kenne bei dem Prob 2 Möglichkeiten.<br />
1. Im Thread laufen lassen<br />
2. Die Msg weiterleiten</p>
<p>Wir nehmen mal die 2te Variante:</p>
<pre><code class="language-cpp">void CDeinDlg::PumpMessages()
{
    ASSERT(GetSafeHwnd() != NULL);
    MSG msg;

    while (PeekMessage(&amp;msg, NULL, 0, 0, PM_REMOVE))
    {
        if (!IsDialogMessage(&amp;msg))
        {
            ::TranslateMessage(&amp;msg);
            ::DispatchMessage(&amp;msg);
        }
    }
}

void CDeinDlg::ZiehderKatzeAmSchwanz()
{
//Sendernamen und Frequnezen initialisieren 
    int sendfreq[8]={902, 933, 945, 963, 977, 989, 1024, 1051}; 
    CString sendnam[8]={&quot;Bayern 2&quot;, &quot;Energy&quot;, &quot;Bayern 1&quot;, &quot;Gong&quot;, &quot;B5&quot;, &quot;Bayern 3&quot;, &quot;Antenne&quot;, &quot;Klassik&quot;}; 
    int anzahl= sizeof(sendfreq)/sizeof(sendfreq[0]); 
    //Variable für gefundene Senderstation 
    int found=-1; 
    do 
    { 
        freqcount++; 
        //Sleep(500); 
        PumpMessages();

        m_frequenz=(double)freqcount/10; 
        UpdateData(FALSE); 

        for (int i=0; i&lt;=anzahl;i++) 
        { 
            if (freqcount==sendfreq[i]) 
            { 
                found=i; 

            } 
        } 
        if(freqcount&gt;1075) 
            freqcount=877; 

    }while (found==-1); 

    m_sendername=sendnam[found]; 
    UpdateData(FALSE); 
}
</code></pre>
<p>Du rufst dann in der Schleife Pumpmessages auf und die Msg werden weitergeleitet bzw. weiterverarbeitet, danach läuft er ganz normal durch die Schleife weiter.</p>
<p>Trotzdem rate ich dir dich mal über Threads kundig zu machen. Kann dir später viel nützen: MSDN -&gt; AfxBeginThread()</p>
<p>*winke*<br />
Hellsgore</p>
<p>EDIT:<br />
Damit hat sich das dann auch erledigt -&gt; <a href="http://www.c-plusplus.net/forum/viewtopic.php?t=76842" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic.php?t=76842</a><br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/540795</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/540795</guid><dc:creator><![CDATA[Hellsgore]]></dc:creator><pubDate>Tue, 15 Jun 2004 13:29:05 GMT</pubDate></item><item><title><![CDATA[Reply to Edit-Feld nach 500 ms updaten on Tue, 15 Jun 2004 13:28:26 GMT]]></title><description><![CDATA[<p>Hab grad nochmal nachgeschaut.<br />
Du hast so was ähnliches doch schon mal gefragt.</p>
<p>Mach dir einfach mit dem Klassenassistenten eine Controlvariable auf dein Editfeld (frequenz) und rufe dann dauernd m_Edit_frequenz.RedrawWindow() auf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/540799</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/540799</guid><dc:creator><![CDATA[Horst2]]></dc:creator><pubDate>Tue, 15 Jun 2004 13:28:26 GMT</pubDate></item><item><title><![CDATA[Reply to Edit-Feld nach 500 ms updaten on Tue, 15 Jun 2004 13:39:28 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>hat mit deinem eigentlichen Problem nichts zu tun:<br />
Ich glaube es ist besser deine Frequenz und den Sendernamen in eine Struktur zu packen..</p>
<pre><code class="language-cpp">struct struct_test 
{ 
  double frequenz;
  CString sendername;
}; 

// Speicher anfordern 
struct_test *test = new struct_test; 

CPtrArray carr; 
carr.Add(test); 

// Speicher wieder freigeben 
for(int i = 0; i &lt; carr.GetSize(); i++) 
{ 
      delete carr.GetAt(i); 
}
</code></pre>
<p>Dann ist es auch leicht die Anzahl der Radiostationen zu ermitteln:</p>
<pre><code class="language-cpp">int anzahl = carr.GetSize();
</code></pre>
<p>Nur ein Vorschlag, schaust mal..</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/540810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/540810</guid><dc:creator><![CDATA[EdiRitter]]></dc:creator><pubDate>Tue, 15 Jun 2004 13:39:28 GMT</pubDate></item><item><title><![CDATA[Reply to Edit-Feld nach 500 ms updaten on Tue, 15 Jun 2004 14:17:17 GMT]]></title><description><![CDATA[<p>Warum postest du doppelt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>Ich lösche mal den anderen.</p>
<p>Wenn du in einem Programm Sleep einbaust dann wird der Thread angehalten.<br />
Sollte es sich dabei um den Hauptthread handeln reagiert dein Programm nicht auf eingaben da auch die Nachrichten warteschlange nicht abgearbeitet. Wird.</p>
<p>3. Möglichkeiten:</p>
<p>Bauen eine Timer ein.<br />
Nachricht: WM_TIMER</p>
<p>Erstelle einen Thread</p>
<p>Zeichen das Fenster nach dem Update neu.<br />
UpdateWindows();</p>
<p>Die 3te ist dabei die schlechtestet da dein Programm immer nooch nicht reagiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/540862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/540862</guid><dc:creator><![CDATA[Unix-Tom]]></dc:creator><pubDate>Tue, 15 Jun 2004 14:17:17 GMT</pubDate></item><item><title><![CDATA[Reply to Edit-Feld nach 500 ms updaten on Tue, 15 Jun 2004 14:26:32 GMT]]></title><description><![CDATA[<p>also ich sag nochmal</p>
<p>BAU EINEN TIMER ( bevor du noch 10 posts zum selben prob aufmachst! )</p>
<p>bau einen timer ( vorsicht wenig arbeit !! )</p>
<p>grob ueberblick wieviel arbeit das tatsaechlich ist</p>
<p>bei recourcen view<br />
rechte maustaste -&gt; rescoursen symblo dann namen geben ( z.b. ID_COUNT_TIMER )</p>
<p>wenn du den timer aufrufen mochtest ( egal wo, z.b. oninit oder so )<br />
SetTimer(ID_COUNT_TIMER,120,NULL); 120 = 120 ms ich nimm immer bissle mehr</p>
<pre><code class="language-cpp">in der .cpp
void xxxDlg::OnTimer(UINT nIDEvent)
{

	if ( nIDEvent == ID_COUNT_TIMER)
	{
              hier den code rein was er machen soll ( halt deine ausgaben )

	}

  // Call base class handler.
  //CMDIFrameWnd::OnTimer(nIDEvent);
	CDialog::OnTimer(nIDEvent);
}
</code></pre>
<p>in der message map ( auch cpp ) noch reinmachen<br />
[/cpp]<br />
BEGIN_MESSAGE_MAP(meindialogDlg, CDialog)<br />
// deinen ganzen dinger halt und dann noch naechte zeile<br />
ON_WM_TIMER()<br />
END_MESSAGE_MAP()<br />
[cpp]</p>
<p>und wenn du timer nicht mehr brauchst dann</p>
<p>KillTimer(ID_COUNT_TIMER);</p>
<p>und wehe du versuchst es nochmal ohne timer und postet noch geiche frage paar mal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/540876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/540876</guid><dc:creator><![CDATA[newkid]]></dc:creator><pubDate>Tue, 15 Jun 2004 14:26:32 GMT</pubDate></item><item><title><![CDATA[Reply to Edit-Feld nach 500 ms updaten on Tue, 15 Jun 2004 14:50:06 GMT]]></title><description><![CDATA[<p>Hab leider doppelt gepostet, da ich bei meinem ersten Versuch keine Antwort vom Server mehr bekommen habe. Deswegen dachte ich, dass der Beitrag wohl irgendwie verschollen ist. Hab dann einfach das gleiche nochmal gepostet.<br />
Sorry.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/540902</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/540902</guid><dc:creator><![CDATA[Mr_Groove]]></dc:creator><pubDate>Tue, 15 Jun 2004 14:50:06 GMT</pubDate></item></channel></rss>