<?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[Zeiger auf Funktion von Memo]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe ein Formular mit einer Memo-Komponente.<br />
Jetzt möchte ich in einer Funktion als Parameter einen Zeiger auf eine Funktion<br />
der Memo-Komponente übergeben.<br />
Habe schon alles versucht. Aber der Compiler versteht mich nicht <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="🙂"
    /></p>
<p>So sieht mein Formular aus. Also nichts besonderes</p>
<pre><code class="language-cpp">class TForm1 : public TForm
{
__published:	// IDE-verwaltete Komponenten
	TButton *BSenden;
	TMemo *Memo1;
	TEdit *Edit1;
        TButton *Button1;
        TButton *Button2;
        TStatusBar *StatusBar;
        TProgressBar *ProgressBarFile;
        TProgressBar *ProgressBarDownload;
        TOpenDialog *OpenDialog1;
	void __fastcall BSendenClick(TObject *Sender);
	void __fastcall FormClose(TObject *Sender, TCloseAction &amp;Action);
        void __fastcall Button1Click(TObject *Sender);
        void __fastcall Memo1KeyPress(TObject *Sender, char &amp;Key);
        void __fastcall Button2Click(TObject *Sender);

private:	// Benutzer-Deklarationen
public:		// Benutzer-Deklarationen
	__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
TForm1 *Form1;
//---------------------------------------------------------------------------
</code></pre>
<p>und so die Funktion:</p>
<pre><code class="language-cpp">void EmpfangAnzeigen(TForm1* Form, void (TForm1::Memo1::*Fkt)(char* ), char* Data)
{
     (Form-&gt;*Fkt)(Data);
}
</code></pre>
<p>Hierbei erhalte ich immer den Fehler: E2090 Qualifizierer ‘bezeichner’ ist kein Name einer Klasse oder einer Struktur</p>
<p>Aufrufen wollte ich die Funktion so:</p>
<pre><code class="language-cpp">EmpfangAnzeigen(&amp;Form1, &amp;TForm1::Memo1::SetSelText, Data);
</code></pre>
<p>Aber bis hierhin kommt der Compiler erst gar nicht.</p>
<p>Wie muß ich die Funktion definieren bzw. aufrufen, damit der Compiler keine Fehler meldet.<br />
Danke im Voraus für Eure Bemühungen.</p>
<p>Grüße<br />
Andreas</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/92194/zeiger-auf-funktion-von-memo</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Jul 2026 03:37:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/92194.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 16 Nov 2004 09:17:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeiger auf Funktion von Memo on Tue, 16 Nov 2004 09:17:34 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe ein Formular mit einer Memo-Komponente.<br />
Jetzt möchte ich in einer Funktion als Parameter einen Zeiger auf eine Funktion<br />
der Memo-Komponente übergeben.<br />
Habe schon alles versucht. Aber der Compiler versteht mich nicht <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="🙂"
    /></p>
<p>So sieht mein Formular aus. Also nichts besonderes</p>
<pre><code class="language-cpp">class TForm1 : public TForm
{
__published:	// IDE-verwaltete Komponenten
	TButton *BSenden;
	TMemo *Memo1;
	TEdit *Edit1;
        TButton *Button1;
        TButton *Button2;
        TStatusBar *StatusBar;
        TProgressBar *ProgressBarFile;
        TProgressBar *ProgressBarDownload;
        TOpenDialog *OpenDialog1;
	void __fastcall BSendenClick(TObject *Sender);
	void __fastcall FormClose(TObject *Sender, TCloseAction &amp;Action);
        void __fastcall Button1Click(TObject *Sender);
        void __fastcall Memo1KeyPress(TObject *Sender, char &amp;Key);
        void __fastcall Button2Click(TObject *Sender);

private:	// Benutzer-Deklarationen
public:		// Benutzer-Deklarationen
	__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
TForm1 *Form1;
//---------------------------------------------------------------------------
</code></pre>
<p>und so die Funktion:</p>
<pre><code class="language-cpp">void EmpfangAnzeigen(TForm1* Form, void (TForm1::Memo1::*Fkt)(char* ), char* Data)
{
     (Form-&gt;*Fkt)(Data);
}
</code></pre>
<p>Hierbei erhalte ich immer den Fehler: E2090 Qualifizierer ‘bezeichner’ ist kein Name einer Klasse oder einer Struktur</p>
<p>Aufrufen wollte ich die Funktion so:</p>
<pre><code class="language-cpp">EmpfangAnzeigen(&amp;Form1, &amp;TForm1::Memo1::SetSelText, Data);
</code></pre>
<p>Aber bis hierhin kommt der Compiler erst gar nicht.</p>
<p>Wie muß ich die Funktion definieren bzw. aufrufen, damit der Compiler keine Fehler meldet.<br />
Danke im Voraus für Eure Bemühungen.</p>
<p>Grüße<br />
Andreas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/652970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/652970</guid><dc:creator><![CDATA[aheim]]></dc:creator><pubDate>Tue, 16 Nov 2004 09:17:34 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Funktion von Memo on Tue, 16 Nov 2004 09:51:34 GMT]]></title><description><![CDATA[<p>Hallo aheim,</p>
<p>versuch es doch einfach diese Art</p>
<pre><code class="language-cpp">void __fastcall TErrLogFile::getOnErrLogInt(
				TObject *Sender,
				TFehlerListe* ErrText,		// Fehlerliste fuer einen Fehler
				TMemo* ErrorMainMemo)
{
	AnsiString		astrHilf;

	// neuen Fehlertext in den Ringpuffer schreiben und auf max. 252 Byte
	// begrenzen um &quot;\r\n&quot; anhaengen zu koennen.
	StrLCopy(
		ReadErrorMes-&gt;Err_RingInt
			.Err_txt[ReadErrorMes-&gt;Err_RingInt.iwrite].Text,
		ErrText-&gt;cErrtxt, 252);

	// Fehlermeldung in der Oberflaeche ausgeben
	ErrorMainMemo-&gt;Lines-&gt;Add
		(KOMPONENTE[ErrText-&gt;iKomponete]
		+&quot;  &quot;+ FEHLRTYPE[ErrText-&gt;iErrType]
		+&quot; &quot;
		+ReadErrorMes-&gt;Err_RingInt
			.Err_txt[ReadErrorMes-&gt;Err_RingInt.iwrite].Text);
</code></pre>
<p>Viel Erfolg<br />
Evi48</p>
]]></description><link>https://www.c-plusplus.net/forum/post/652986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/652986</guid><dc:creator><![CDATA[evi48]]></dc:creator><pubDate>Tue, 16 Nov 2004 09:51:34 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Funktion von Memo on Tue, 16 Nov 2004 10:39:20 GMT]]></title><description><![CDATA[<p>Hallo evi48,</p>
<p>danke schon mal vorab.</p>
<p>Aber leider weiss ich nicht wieviele Zeichen ankommen. Es können immer unterschiedliche sein und wann bzw. ob mal ein CR/LF kommt ist auch nicht klar.<br />
Es soll jedes Zeichen einzeln und sofort angezeigt werden.<br />
Daher kann ich nicht mit Add arbeiten.</p>
<p>Das ganze hat auch schon mal funktioniert.<br />
Da habe ich einfach Form1-&gt;Memo1-&gt;SetSeltextBuf(Empfangsdaten) aufgerufen )oder so ähnlich).</p>
<p>Allerdings habe ich dafür eine komplette cpp-Datei includiert.<br />
Das hatte mir nicht gefallen und habe sie daher dem Projekt hinzugefügt.<br />
Wenn ich nur die Headerdatei include und oben die Funktion aufrufen erhalte ich einen Zugriffsfehler.<br />
Daher dachte ich mir einfach einen Zeiger auf die Funktion zu übergeben.<br />
Hoffe es ist klar was ich damit meine. Bin im Moment im Zeitdruck.</p>
<p>Trotzdem Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/653030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/653030</guid><dc:creator><![CDATA[aheim]]></dc:creator><pubDate>Tue, 16 Nov 2004 10:39:20 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Funktion von Memo on Tue, 16 Nov 2004 11:08:06 GMT]]></title><description><![CDATA[<p>Hallo aheim,<br />
ich hoffe ich habe dich verstanden. Übergib doch einfach in deine Funktion einen Zeiger auf das Memo und einen Zeiger auf die chr.</p>
<pre><code class="language-cpp">void EmpfangAnzeigen(TForm1* Form, TMemo *Memo1, char* Data)
{
     Memo1-&gt;SetSelTextBuf(Data);
}
</code></pre>
<p>Auf diese Weise hast du alle Funktionen des Memo zur Verfügung.</p>
<p>Evi48</p>
]]></description><link>https://www.c-plusplus.net/forum/post/653043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/653043</guid><dc:creator><![CDATA[evi48]]></dc:creator><pubDate>Tue, 16 Nov 2004 11:08:06 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Funktion von Memo on Tue, 16 Nov 2004 11:27:40 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe noch einen Fehler entdeckt TForm1 ist keine Klasse sondern nur TForm</p>
<pre><code class="language-cpp">void EmpfangAnzeigen(TForm* Form, TMemo *Memo1, char* Data)
{
     Memo1-&gt;SetSelTextBuf(Data);
}
</code></pre>
<p>Aufruf der Funktion:</p>
<pre><code class="language-cpp">EmpfangAnzeigen(MyForm, MyMemo, MyData);
</code></pre>
<p>Evi48</p>
]]></description><link>https://www.c-plusplus.net/forum/post/653053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/653053</guid><dc:creator><![CDATA[evi48]]></dc:creator><pubDate>Tue, 16 Nov 2004 11:27:40 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Funktion von Memo on Tue, 16 Nov 2004 13:52:39 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Kannst du mir verraten, wozu hier ein Pointer auf TForm übergeben wird?<br />
Bezüglich der Funktionspointer vom Anfang:<br />
Soweit ich weiss ist es nicht möglich Funktionspointer von nichtstatischen Memberfunktionen zu erzeugen bzw. zu übergeben (wegen this).<br />
Die Funktion von evi48 (ohne dem TForm Parameter) sollte so eigentlich funktionieren.</p>
<p>Ciao</p>
]]></description><link>https://www.c-plusplus.net/forum/post/653188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/653188</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 16 Nov 2004 13:52:39 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Funktion von Memo on Tue, 16 Nov 2004 15:11:16 GMT]]></title><description><![CDATA[<p>Hallo Braunstein,<br />
ich habe lediglich versucht eine Problemlösung zu Zeigen nicht einen Funktionspointer zu übergeben.</p>
<p>Evi48</p>
]]></description><link>https://www.c-plusplus.net/forum/post/653296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/653296</guid><dc:creator><![CDATA[evi48]]></dc:creator><pubDate>Tue, 16 Nov 2004 15:11:16 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Funktion von Memo on Tue, 16 Nov 2004 15:36:41 GMT]]></title><description><![CDATA[<p>Das mit dem Funktionspointer war auch nicht auf dich bezogen, sondern auf den ersten Beitrag dieses Threads.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/653334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/653334</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 16 Nov 2004 15:36:41 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger auf Funktion von Memo on Wed, 17 Nov 2004 06:36:18 GMT]]></title><description><![CDATA[<p>Guten Morgen Braunstein,<br />
Entschuldigung, habe wohl nicht bis zu Ende gelesen.</p>
<p>Einen angenehmen Tag<br />
Evi48</p>
]]></description><link>https://www.c-plusplus.net/forum/post/653730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/653730</guid><dc:creator><![CDATA[evi48]]></dc:creator><pubDate>Wed, 17 Nov 2004 06:36:18 GMT</pubDate></item></channel></rss>