<?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[Frage zu OnKeyPress()]]></title><description><![CDATA[<p>Hallo alle zusammen,</p>
<p>ich sitze schon eine Stunde und komme nicht weiter.<br />
Ich möchte, dass in meinem Formular bei drucken auf die &quot;Return&quot; Taste eine bestimmte Operation ausgeführt wird und beim drucken auf &quot;ESCARE&quot; das Programm beenden werden kann.<br />
Nun Egal welche von beiden ich drucke wird das Programm beendet.</p>
<p>In OnKeyPress() habe ich folgendes stehen:</p>
<pre><code class="language-cpp">[code]void __fastcall TForm8::FormKeyPress(TObject *Sender, char &amp;Key)
{
	if(Key == VK_RETURN)
		{
		Button1-&gt;SetFocus();
		this-&gt;Button1Click(this);
		}
	if(Key == VK_ESCAPE)
	this-&gt;BitBtn3Click(this);
}
</code></pre>
<p>[/code]</p>
<p>Wo ist der Fehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/176996/frage-zu-onkeypress</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 06:27:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/176996.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 27 Mar 2007 08:50:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu OnKeyPress() on Tue, 27 Mar 2007 08:50:43 GMT]]></title><description><![CDATA[<p>Hallo alle zusammen,</p>
<p>ich sitze schon eine Stunde und komme nicht weiter.<br />
Ich möchte, dass in meinem Formular bei drucken auf die &quot;Return&quot; Taste eine bestimmte Operation ausgeführt wird und beim drucken auf &quot;ESCARE&quot; das Programm beenden werden kann.<br />
Nun Egal welche von beiden ich drucke wird das Programm beendet.</p>
<p>In OnKeyPress() habe ich folgendes stehen:</p>
<pre><code class="language-cpp">[code]void __fastcall TForm8::FormKeyPress(TObject *Sender, char &amp;Key)
{
	if(Key == VK_RETURN)
		{
		Button1-&gt;SetFocus();
		this-&gt;Button1Click(this);
		}
	if(Key == VK_ESCAPE)
	this-&gt;BitBtn3Click(this);
}
</code></pre>
<p>[/code]</p>
<p>Wo ist der Fehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253613</guid><dc:creator><![CDATA[aesse]]></dc:creator><pubDate>Tue, 27 Mar 2007 08:50:43 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OnKeyPress() on Tue, 27 Mar 2007 09:02:59 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Der Grund für das beschriebene Problem ist aus deinem Quellcode nicht ersehbar.</p>
<p>Trotzdem noch ein paar Anmerkungen :<br />
- Benutzt aussagekräftige Komponentnamen. Hast du wirklich in deinem Projekt acht Formulare, durchbenannt von Form1 bis Form8? *grusel*<br />
- das &quot;this-&gt;&quot; brauchst du nicht<br />
- Ruf lieber direkt Komponentenmethoden als Eventmethoden auf. Also statt <em>Button1Click();</em> lieber <em>Button1-&gt;Click()</em>;<br />
- Wenn du doch Eventmethoden aufrufen willst solltest du für Sender nicht einfach this übergeben, sondern entweder das aufrufende Control selber oder NULL<br />
- Du solltest logische Operationen nicht von Controls abhängig machen. Wenn ESC das Form schließen soll, warum erst einen extra Button zwischendurch aufrufen? Führ doch gleich die Methode <em>Form::Close()</em> aus</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253626</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 27 Mar 2007 09:02:59 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OnKeyPress() on Tue, 27 Mar 2007 09:37:07 GMT]]></title><description><![CDATA[<p>Also na gut hast Du Recht logischer ist vielleicht so zu schreiben:</p>
<pre><code class="language-cpp">[code]if(Key == VK_RETURN)
		{
		Button1-&gt;SetFocus();
		Button1-&gt;Click();
		}
	if(Key == VK_ESCAPE)
	Form8-&gt;Close();
</code></pre>
<p>[/code]</p>
<p>Aber trotzdem ist das keine Lösung für mein Problem!<br />
Ich weiß nicht was ich noch ausprobiren soll?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253650</guid><dc:creator><![CDATA[aesse]]></dc:creator><pubDate>Tue, 27 Mar 2007 09:37:07 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OnKeyPress() on Tue, 27 Mar 2007 09:41:16 GMT]]></title><description><![CDATA[<p>Nun ja, der Fehler liegt wohl in der Button1Click()-Methode.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253653</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 27 Mar 2007 09:41:16 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OnKeyPress() on Tue, 27 Mar 2007 09:47:07 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Wie bereits gesagt sehe ich im Quellcodeausszug keinen Grund für das genannte Problem.<br />
Bei meinem Test mit deinem Code mußte ich nur noch TForm::KeyPreview auf true stellen und ich konnte sowohl den Button als auch das Beenden korrekt auslösen.</p>
<p>Aber noch zwei Anmerkungen :<br />
- &quot;Form8-&gt;&quot; ist noch schlechter als &quot;this-&gt;&quot;. Es ist nicht nur überflüssig sondern bindet die Methode unnötigerweise an eine bestimmte Instanz der Klasse<br />
- Las beim Posten vom Code hier im Forum mittels der cpp-tags doch endlich die code-Tages weg</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253655</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 27 Mar 2007 09:47:07 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OnKeyPress() on Tue, 27 Mar 2007 09:50:05 GMT]]></title><description><![CDATA[<p>In Button1Click() habe ich nur matematische Berechnungen und Tonausgabe:</p>
<pre><code class="language-cpp">[code]void __fastcall TForm8::Button1Click(TObject *Sender)
{
		schluessel_berechnen();
		klack(); //Ton ausgeben
}
</code></pre>
<p>[/code]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253659</guid><dc:creator><![CDATA[aesse]]></dc:creator><pubDate>Tue, 27 Mar 2007 09:50:05 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OnKeyPress() on Tue, 27 Mar 2007 10:00:33 GMT]]></title><description><![CDATA[<p>Sorry für die Code-Tages,</p>
<p>Die Bennenung fon Forms werde ich auch berücksichtigen.<br />
Ich habe mein Beispiel auch schon mit neue Form ausprobiert und das funktioniert nur mit leere Form, sobald ich da ein Button reinpacke geht das nicht, weil angeblich das Fockus an den übergeht und weiter bin ich ratlös, weil nach der Form1-&gt;SetFocus() erreiche ich trotz dem nichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253663</guid><dc:creator><![CDATA[aesse]]></dc:creator><pubDate>Tue, 27 Mar 2007 10:00:33 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OnKeyPress() on Tue, 27 Mar 2007 10:02:34 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Benutzt deinen <a href="http://www.junix.ch/bcb/help/debug.html" rel="nofollow">Debugger</a> um den Programmverlauf zu verfolgen. Damit findest du die Stelle wo das Form geschlossen wird.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253665</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 27 Mar 2007 10:02:34 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OnKeyPress() on Wed, 28 Mar 2007 09:10:15 GMT]]></title><description><![CDATA[<p>aesse schrieb:</p>
<blockquote>
<p>Ich habe mein Beispiel auch schon mit neue Form ausprobiert und das funktioniert nur mit leere Form, sobald ich da ein Button reinpacke geht das nicht, weil angeblich das Fockus an den übergeht und weiter bin ich ratlös, weil nach der Form1-&gt;SetFocus() erreiche ich trotz dem nichts.</p>
</blockquote>
<p>Hallo,</p>
<p>beachte bitte unbedingt den Hinweis <strong>TForm::KeyPreview auf true stellen</strong> von Akari ... ohne das Funktioniert es auch nicht</p>
<p>mfg, Micha!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254412</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 28 Mar 2007 09:10:15 GMT</pubDate></item></channel></rss>