<?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[TTimer + AlphaBlendValue -&amp;gt; Fenster langsam ausblenden]]></title><description><![CDATA[<p>Hallo Leute!</p>
<p>Habe mich eben hier angemeldet, und in den FAQ folgendes gelesen:</p>
<blockquote>
<p>mit 'nem timer und dann mit application-&gt;ondeactivate<br />
und application-&gt;activate das form ein und ausblenden<br />
lassen wenn ein anderes programm den fokus erhaelt,<br />
echt spitze!</p>
</blockquote>
<p>in URL <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39243.html" rel="nofollow">FAQ 39243</a></p>
<p>Naja, jedenfalls schreibe ich testweise an einem Chatprogramm. Und wenn das Chatfenster in den Systray minimiert ist, dann wird dem User in einem neuem Form (MsgForm) rechts unten die neue Nachricht angezeigt.</p>
<p>Nach einem Intervall = 1700 verschindet das Fenster automatisch wieder.<br />
Aber ich fände es furchtbar toll, wenn sich das Fenster nicht einfach &quot;zerstören&quot; würde, wenn es verschwindet, sondern wenn es sich schrittweise ausblendet.<br />
Dazu habe ich folgendes versucht:</p>
<pre><code>void __fastcall TChatForm::Timer1Timer(TObject *Sender)
{
  cl = 255;
  MsgForm-&gt;AlphaBlend = true;
  while (cl &gt; 100)
  {
    MsgForm-&gt;AlphaBlendValue = cl;
    cl = cl - 20;
    MsgForm-&gt;Refresh();
  }
  MsgForm-&gt;Close();
  Timer1-&gt;Enabled = false;
}
</code></pre>
<p>Aber es geschieht nix <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> Das neue Form erscheint etwas transparent, aber es verändert sich dann nicht weiter, d.h. es bleibt immer gleich transparent, und schließt sich dann mit Close();</p>
<p>Ich hoffe, mein Problem best möglich dargestellt zu haben, und hoffe nun, das ihr mir weiterhelfen könnt!</p>
<p>MfG<br />
Tippo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/184148/ttimer-alphablendvalue-gt-fenster-langsam-ausblenden</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 05:01:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/184148.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 12 Jun 2007 16:54:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to TTimer + AlphaBlendValue -&amp;gt; Fenster langsam ausblenden on Tue, 12 Jun 2007 16:56:58 GMT]]></title><description><![CDATA[<p>Hallo Leute!</p>
<p>Habe mich eben hier angemeldet, und in den FAQ folgendes gelesen:</p>
<blockquote>
<p>mit 'nem timer und dann mit application-&gt;ondeactivate<br />
und application-&gt;activate das form ein und ausblenden<br />
lassen wenn ein anderes programm den fokus erhaelt,<br />
echt spitze!</p>
</blockquote>
<p>in URL <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39243.html" rel="nofollow">FAQ 39243</a></p>
<p>Naja, jedenfalls schreibe ich testweise an einem Chatprogramm. Und wenn das Chatfenster in den Systray minimiert ist, dann wird dem User in einem neuem Form (MsgForm) rechts unten die neue Nachricht angezeigt.</p>
<p>Nach einem Intervall = 1700 verschindet das Fenster automatisch wieder.<br />
Aber ich fände es furchtbar toll, wenn sich das Fenster nicht einfach &quot;zerstören&quot; würde, wenn es verschwindet, sondern wenn es sich schrittweise ausblendet.<br />
Dazu habe ich folgendes versucht:</p>
<pre><code>void __fastcall TChatForm::Timer1Timer(TObject *Sender)
{
  cl = 255;
  MsgForm-&gt;AlphaBlend = true;
  while (cl &gt; 100)
  {
    MsgForm-&gt;AlphaBlendValue = cl;
    cl = cl - 20;
    MsgForm-&gt;Refresh();
  }
  MsgForm-&gt;Close();
  Timer1-&gt;Enabled = false;
}
</code></pre>
<p>Aber es geschieht nix <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> Das neue Form erscheint etwas transparent, aber es verändert sich dann nicht weiter, d.h. es bleibt immer gleich transparent, und schließt sich dann mit Close();</p>
<p>Ich hoffe, mein Problem best möglich dargestellt zu haben, und hoffe nun, das ihr mir weiterhelfen könnt!</p>
<p>MfG<br />
Tippo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304263</guid><dc:creator><![CDATA[Tippokrates]]></dc:creator><pubDate>Tue, 12 Jun 2007 16:56:58 GMT</pubDate></item><item><title><![CDATA[Reply to TTimer + AlphaBlendValue -&amp;gt; Fenster langsam ausblenden on Tue, 12 Jun 2007 17:15:32 GMT]]></title><description><![CDATA[<p>Wozu die while Schleife, wenn Du doch einen Timer benutzt.</p>
<p>eigentlich reicht folgendes:</p>
<pre><code class="language-cpp">void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if(Form1-&gt;AlphaBlendValue &gt; 20)
   Form1-&gt;AlphaBlendValue -= 20;
else
  Form1-&gt;Close();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1304289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304289</guid><dc:creator><![CDATA[Mav80]]></dc:creator><pubDate>Tue, 12 Jun 2007 17:15:32 GMT</pubDate></item><item><title><![CDATA[Reply to TTimer + AlphaBlendValue -&amp;gt; Fenster langsam ausblenden on Tue, 12 Jun 2007 17:28:12 GMT]]></title><description><![CDATA[<p>Sorry, hatte nicht genau gelesen. Der Timer bestimmt bei Dir nur für die Dauer der Anzeige?!</p>
<p>Aber wenn ich es so mache wie du gehts bei mir auch:</p>
<pre><code class="language-cpp">while(Form1-&gt;AlphaBlendValue &gt; 20)
{
   Form1-&gt;AlphaBlendValue -= 20;
}
Form1-&gt;Close();
</code></pre>
<p>vielleicht hilft ein</p>
<pre><code class="language-cpp">Application-&gt;ProcessMessages();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1304305</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304305</guid><dc:creator><![CDATA[Mav80]]></dc:creator><pubDate>Tue, 12 Jun 2007 17:28:12 GMT</pubDate></item><item><title><![CDATA[Reply to TTimer + AlphaBlendValue -&amp;gt; Fenster langsam ausblenden on Tue, 12 Jun 2007 18:23:55 GMT]]></title><description><![CDATA[<p>Also der Timer hält das Fenster für 1800ms offen, in der zeit kann er User die Nachricht lesen, dann soll das Fenster verschwinden, bisher Close() jetzt soll es halt ausbleden.</p>
<p>Mit deinem Code habe ich jetzt einen neuen Timer auf dem Meldungsform MsgForm erstellt, der nur noch für die Änderung von AlphaBlendValue auf dem MsgForm zuständig ist.<br />
Also nicht mehr die Zeit bis zum schließen zählt und dann schließt.</p>
<pre><code class="language-cpp">void __fastcall TMsgForm::FormCreate(TObject *Sender)
{
  Timer2-&gt;Interval = 10;
  Timer2-&gt;Enabled = true;
  MsgForm-&gt;Left = Screen-&gt;Width - ClientWidth;
  MsgForm-&gt;Top = Screen-&gt;Height - ClientHeight;

  SetWindowPos(Application-&gt;Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);
  // always on top handle
}
//---------------------------------------------------------------------------
void __fastcall TMsgForm::Timer2Timer(TObject *Sender)
{
  if (AlphaBlendValue &gt; 100)
    AlphaBlendValue -= 100;
}
//---------------------------------------------------------------------------
void __fastcall TMsgForm::FormClose(TObject *Sender, TCloseAction &amp;Action)
{
  Timer2-&gt;Enabled = false;        
}
//---------------------------------------------------------------------------
</code></pre>
<p>Aber es geschieht immer noch nichts. Irgendwas scheine ich ganz falsch zu machen mit dem Timer...</p>
<p>Aber danke schon mal an dich!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304349</guid><dc:creator><![CDATA[Tippokrates]]></dc:creator><pubDate>Tue, 12 Jun 2007 18:23:55 GMT</pubDate></item><item><title><![CDATA[Reply to TTimer + AlphaBlendValue -&amp;gt; Fenster langsam ausblenden on Tue, 12 Jun 2007 18:45:34 GMT]]></title><description><![CDATA[<p>Naja, der Maximalwert von AlphaBlendValue ist ja 255. wenn Du da gleich 100 abziehst ist das ja schon nach 2 Schritten vorbei. Das geht ja schneller als du kucken kannst.</p>
<p>AlphaBlend hast Du auf true gesetzt? Hast Du es denn auch schon mit anderen Schrittweiten und/ oder längeren Intervallen versucht?</p>
<p>Das Problem ist halt: ich kann da eigentlich kein Problem sehen. Bei mir geht das halt problemlos...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304365</guid><dc:creator><![CDATA[Mav80]]></dc:creator><pubDate>Tue, 12 Jun 2007 18:45:34 GMT</pubDate></item><item><title><![CDATA[Reply to TTimer + AlphaBlendValue -&amp;gt; Fenster langsam ausblenden on Tue, 12 Jun 2007 19:00:10 GMT]]></title><description><![CDATA[<p>^^Kann ich nur bestätigen. Was willst Du bei lediglich zwei Durchgängen beobachten. Weiterhin, wie bereits angesprochen, fehlt in Deinem Timerereignis ein ProcessMessages() oder ein TForm::Refresh().<br />
Der von Dir zuerst gepostete Code funktioniert auch bei mir problemlos.<br />
Nochmal genau schauen und den Debugger benutzen.</p>
<pre><code class="language-cpp">int cl = 255;
  Form1-&gt;AlphaBlend = true;
  Form1-&gt;AlphaBlendValue = 255;
  Application-&gt;ProcessMessages();
  int x = 1;
  while (cl &gt;= 0)
  {
    Form1-&gt;AlphaBlendValue = cl;
    cl = cl - 5 - x; 
    //Form1-&gt;Refresh();
    Application-&gt;ProcessMessages(); // ^^gleiches Ergebnis
    x += 5;
  }
  Form1-&gt;Close();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1304377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304377</guid><dc:creator><![CDATA[Rostfrei**]]></dc:creator><pubDate>Tue, 12 Jun 2007 19:00:10 GMT</pubDate></item><item><title><![CDATA[Reply to TTimer + AlphaBlendValue -&amp;gt; Fenster langsam ausblenden on Tue, 12 Jun 2007 19:20:21 GMT]]></title><description><![CDATA[<p>Guten Abend die Herren!</p>
<p>Danke für die wirklich schnellen Post! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Ihr habt natürlich Recht: das mit dem -100 da schaffe ich nur 2 Durchläufe ^^ is klaaa <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="😃"
    /> Man, ich hab mich selber aufs Kreuz gelegt: habe an anderer Stelle im Code nochmal auf de AlphaBlendValue Wert direkt zugegriffen, und den hat es dann auch übernommen.</p>
<p>Das habe ich korrigiert. Und nun läufts! Aber viel hat man ja nicht davon, ich meine das läuft ja verdammt schnell ab, auch wenn man die Werte noch weiter nach unten korrigiert.</p>
<p>Danke nochmal,<br />
MfG</p>
<p>Tippo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304392</guid><dc:creator><![CDATA[Tippokrates]]></dc:creator><pubDate>Tue, 12 Jun 2007 19:20:21 GMT</pubDate></item><item><title><![CDATA[Reply to TTimer + AlphaBlendValue -&amp;gt; Fenster langsam ausblenden on Tue, 12 Jun 2007 19:23:37 GMT]]></title><description><![CDATA[<p>Dann korrigier mal den Dekrenmentwert der Schleife Richtung 1. Das läuft doch (zu) langsman ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304394</guid><dc:creator><![CDATA[Rostfrei**]]></dc:creator><pubDate>Tue, 12 Jun 2007 19:23:37 GMT</pubDate></item><item><title><![CDATA[Reply to TTimer + AlphaBlendValue -&amp;gt; Fenster langsam ausblenden on Wed, 13 Jun 2007 07:47:14 GMT]]></title><description><![CDATA[<p>oder bau noch ein Sleep() mit ein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304600</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 13 Jun 2007 07:47:14 GMT</pubDate></item><item><title><![CDATA[Reply to TTimer + AlphaBlendValue -&amp;gt; Fenster langsam ausblenden on Wed, 13 Jun 2007 12:39:26 GMT]]></title><description><![CDATA[<p>Jop, hab ich eben gemacht, jetzt funzt es super!<br />
Danke für die fachkundige Hilfe!</p>
<p>Tippo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304804</guid><dc:creator><![CDATA[Tippokrates]]></dc:creator><pubDate>Wed, 13 Jun 2007 12:39:26 GMT</pubDate></item></channel></rss>