<?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[Aus einem Thread etwas in ein TForm Label schreiben]]></title><description><![CDATA[<p>Hey Leute,<br />
Also ich wolle ein Programm schreiben das etwas ausliest und dann in einem Label anzeigt.<br />
Bisher hab ich das über den Return Wert geregelt<br />
damit beim ButtonClick das ausgelesene auf dem Label angezeigt wird.</p>
<p>DWORD WINAPI entfernung(LPVOID param)<br />
{<br />
mining.trennzeichen();<br />
mining.abstand();<br />
return mining.berechnen();<br />
}</p>
<p>void __fastcall TForm1::Button1Click(TObject *Sender)<br />
{<br />
if(Button1-&gt;Caption == &quot;Beenden&quot;)<br />
Close();<br />
Button1-&gt;Caption = &quot;Beenden&quot;;</p>
<p>int xspdif =6, yspdif =6;<br />
int xscan = 1046, yscan = 153;<br />
int xpunkt = xscan+xspdif, ypunkt = yscan+yspdif;<br />
mining.koordinaten(xpunkt,ypunkt,xscan,yscan);</p>
<p>CreateThread(NULL,0,entfernung,0,CREATE_SUSPENDED, NULL);</p>
<p>Label1-&gt;Caption = entfernung(0);<br />
}</p>
<p>So da der Wert sich aber ständig ändert wollte ich in dem Thread eine Endlos schleifen laufen lassen der die Ausgabe in dem Label immer aktuell hält.<br />
Über den Return Wert kann ich das dann ja nichtmehr machen.<br />
Aber aus dem Thread kann ich das mit Label-&gt;Caption auch nicht realsieren da es ja nicht zur Klasse TForm1 gehört.</p>
<p>Ich hatte mir dann überlegt immer eine Statische Statischen methode der Klasse TForm1 aufzurufen, die Statische methode durfte mit Label1-&gt;Caption aber auch nichtmehr draufzugreifen.</p>
<p>Nun meine Frage ist es irgendwie möglich ist, die errechneten werte aus dem Thread auf das Label in TForm1 zu legen?<br />
Oder würde das dann auch die GUI blockieren obwohl das auslesen und berechnen in einem Thread abläuft?</p>
<p>Hoffe ihr könnt mir bissl weiterhelfen und Vielen Dank schonmal<br />
mfg Death</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/206323/aus-einem-thread-etwas-in-ein-tform-label-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 05:03:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/206323.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 23 Feb 2008 15:29:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Aus einem Thread etwas in ein TForm Label schreiben on Sat, 23 Feb 2008 15:29:28 GMT]]></title><description><![CDATA[<p>Hey Leute,<br />
Also ich wolle ein Programm schreiben das etwas ausliest und dann in einem Label anzeigt.<br />
Bisher hab ich das über den Return Wert geregelt<br />
damit beim ButtonClick das ausgelesene auf dem Label angezeigt wird.</p>
<p>DWORD WINAPI entfernung(LPVOID param)<br />
{<br />
mining.trennzeichen();<br />
mining.abstand();<br />
return mining.berechnen();<br />
}</p>
<p>void __fastcall TForm1::Button1Click(TObject *Sender)<br />
{<br />
if(Button1-&gt;Caption == &quot;Beenden&quot;)<br />
Close();<br />
Button1-&gt;Caption = &quot;Beenden&quot;;</p>
<p>int xspdif =6, yspdif =6;<br />
int xscan = 1046, yscan = 153;<br />
int xpunkt = xscan+xspdif, ypunkt = yscan+yspdif;<br />
mining.koordinaten(xpunkt,ypunkt,xscan,yscan);</p>
<p>CreateThread(NULL,0,entfernung,0,CREATE_SUSPENDED, NULL);</p>
<p>Label1-&gt;Caption = entfernung(0);<br />
}</p>
<p>So da der Wert sich aber ständig ändert wollte ich in dem Thread eine Endlos schleifen laufen lassen der die Ausgabe in dem Label immer aktuell hält.<br />
Über den Return Wert kann ich das dann ja nichtmehr machen.<br />
Aber aus dem Thread kann ich das mit Label-&gt;Caption auch nicht realsieren da es ja nicht zur Klasse TForm1 gehört.</p>
<p>Ich hatte mir dann überlegt immer eine Statische Statischen methode der Klasse TForm1 aufzurufen, die Statische methode durfte mit Label1-&gt;Caption aber auch nichtmehr draufzugreifen.</p>
<p>Nun meine Frage ist es irgendwie möglich ist, die errechneten werte aus dem Thread auf das Label in TForm1 zu legen?<br />
Oder würde das dann auch die GUI blockieren obwohl das auslesen und berechnen in einem Thread abläuft?</p>
<p>Hoffe ihr könnt mir bissl weiterhelfen und Vielen Dank schonmal<br />
mfg Death</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1461564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1461564</guid><dc:creator><![CDATA[Death]]></dc:creator><pubDate>Sat, 23 Feb 2008 15:29:28 GMT</pubDate></item><item><title><![CDATA[Reply to Aus einem Thread etwas in ein TForm Label schreiben on Mon, 25 Feb 2008 15:29:01 GMT]]></title><description><![CDATA[<p>Klingt nach BCB ???</p>
<p>- speicher die Werte in LOKALER Variablen des Thread<br />
- mach ne Funktion (Thread- Member!) OHNE Parameter<br />
- rufe diese mit Synchronize auf.<br />
In der Funktion kannst Du auf das Label zugreifen.</p>
<p>Du kannst dem Thread nach der Erzeugung auch die Adresse von dem TLabel übergeben. Solange Du mit Synchronize arbeitest, kannst Du auch darüber die Anzeige steuern.</p>
<p>Gruss<br />
frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462575</guid><dc:creator><![CDATA[DerAltenburger]]></dc:creator><pubDate>Mon, 25 Feb 2008 15:29:01 GMT</pubDate></item><item><title><![CDATA[Reply to Aus einem Thread etwas in ein TForm Label schreiben on Mon, 25 Feb 2008 19:09:44 GMT]]></title><description><![CDATA[<p>viele dank schonmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
aber hast mir vielleicht noch nen kurzes bsp wie du das meinst ^^<br />
danke<br />
mfg death</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1462759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462759</guid><dc:creator><![CDATA[Death]]></dc:creator><pubDate>Mon, 25 Feb 2008 19:09:44 GMT</pubDate></item><item><title><![CDATA[Reply to Aus einem Thread etwas in ein TForm Label schreiben on Mon, 25 Feb 2008 21:02:11 GMT]]></title><description><![CDATA[<p>!!! ACHTUNG !!!<br />
Reins CBuilder C.</p>
<p>Die entsprechenden Komponenten musst Du in der Form ablegen !!!<br />
(TButton, TLabel)<br />
und die Methoden ergänzen.</p>
<p>OnThreadEnded der Form ist für Callback bei Beenden. Kann auch entfallen.<br />
(Dann beim Erzeugen des Thread NULL übergeben)</p>
<p>//Header- Datei</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include &lt;Classes.hpp&gt;
#include &lt;Controls.hpp&gt;
#include &lt;StdCtrls.hpp&gt;
#include &lt;Forms.hpp&gt;
//---------------------------------------------------------------------------
typedef void __fastcall (__closure *TOnExecuteEnd)(int Count);
//---------------------------------------------------------------------------
class TLabelActThread : public TThread
{
private:
        int Count;
        TLabel *Label2Act;
        void __fastcall LabelAct(void);
        TOnExecuteEnd OnExecuteEnd;
protected:
        virtual void __fastcall Execute(void);
public:
        __fastcall TLabelActThread(bool CreateSuspended, TLabel *ALabel2Act, TOnExecuteEnd AExecuteEnd);

};
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// Von der IDE verwaltete Komponenten
        TButton *Button1;
        TLabel *Label1;
        void __fastcall Button1Click(TObject *Sender);
private:	// Anwenderdeklarationen
        TLabelActThread *LAT;
        void __fastcall OnThreadEnded(int Count);
public:		// Anwenderdeklarationen
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
</code></pre>
<p>// CPP- Datei</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
#include &lt;vcl.h&gt;
#pragma hdrstop

#include &quot;Unit1.h&quot;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource &quot;*.dfm&quot;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{ LAT=NULL;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OnThreadEnded(int Count)
{ LAT=NULL;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{ LAT=new TLabelActThread(true,Label1,&amp;OnThreadEnded);
  LAT-&gt;FreeOnTerminate=true;
  //...
  //...
  //...
  LAT-&gt;Resume();
}
//---------------------------------------------------------------------------
__fastcall TLabelActThread::TLabelActThread(bool CreateSuspended, TLabel *ALabel2Act, TOnExecuteEnd AExecuteEnd)
        : TThread(Suspended)
{ Label2Act=ALabel2Act;
  OnExecuteEnd=AExecuteEnd;
}
//---------------------------------------------------------------------------
void __fastcall TLabelActThread::LabelAct(void)
{ Label2Act-&gt;Caption=Count;
}
//---------------------------------------------------------------------------
void __fastcall TLabelActThread::Execute(void)
{ Count=0;
  while (!Terminated &amp;&amp; (Count&lt;1000))
  { Count++;
    Synchronize(LabelAct);
  }
  Label2Act=NULL;
  if (OnExecuteEnd!=NULL)
  { OnExecuteEnd(Count);
  }
}
//---------------------------------------------------------------------------
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1462849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1462849</guid><dc:creator><![CDATA[DerAltenburger]]></dc:creator><pubDate>Mon, 25 Feb 2008 21:02:11 GMT</pubDate></item></channel></rss>