<?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[Regionen übergeben]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>In meinem Programm erstelle ich an einer Stelle eine Region, was auch alles wunderbar funktioniert.</p>
<p>Nun möchte ich die Region an eine andere Funktion in meinem Programm übergeben, was leider nicht funktioniert.</p>
<p>Hier ein Beispiel:</p>
<pre><code>// Die Region wird erstellt:
HRGN Region;
Region = CreateRectRgn(...);
// ... weiteres anpassen der Region ...

// Jetzt wird die Region an die Funktion übergeben:
Musterfunktion(Region);

// Weiter in der Funktion:
void __fastcall TForm1::Musterfunktion(HRGN Musterregion)
{
  // Wenn ich jetzt auf Musterregion zugreife, so ist diese Region leer!!!
}
</code></pre>
<p>Meine Frage ist nun: Warum ist die Region leer und wie kann ich die Region auf anderem Weg in die Funktion übergeben???</p>
<p>Vielen Dank für eure Hilfe,<br />
Euer Entertainer</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/101979/regionen-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Jul 2026 14:54:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/101979.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Feb 2005 15:48:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Regionen übergeben on Mon, 21 Feb 2005 15:48:02 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>In meinem Programm erstelle ich an einer Stelle eine Region, was auch alles wunderbar funktioniert.</p>
<p>Nun möchte ich die Region an eine andere Funktion in meinem Programm übergeben, was leider nicht funktioniert.</p>
<p>Hier ein Beispiel:</p>
<pre><code>// Die Region wird erstellt:
HRGN Region;
Region = CreateRectRgn(...);
// ... weiteres anpassen der Region ...

// Jetzt wird die Region an die Funktion übergeben:
Musterfunktion(Region);

// Weiter in der Funktion:
void __fastcall TForm1::Musterfunktion(HRGN Musterregion)
{
  // Wenn ich jetzt auf Musterregion zugreife, so ist diese Region leer!!!
}
</code></pre>
<p>Meine Frage ist nun: Warum ist die Region leer und wie kann ich die Region auf anderem Weg in die Funktion übergeben???</p>
<p>Vielen Dank für eure Hilfe,<br />
Euer Entertainer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/728871</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/728871</guid><dc:creator><![CDATA[Entertainer]]></dc:creator><pubDate>Mon, 21 Feb 2005 15:48:02 GMT</pubDate></item><item><title><![CDATA[Reply to Regionen übergeben on Mon, 21 Feb 2005 17:39:02 GMT]]></title><description><![CDATA[<p>Hast Du die Region VOR Aufruf der Funktion einer Form zugewiesen?</p>
<p>Damit wird die ungueltig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/728972</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/728972</guid><dc:creator><![CDATA[DerAltenburger]]></dc:creator><pubDate>Mon, 21 Feb 2005 17:39:02 GMT</pubDate></item><item><title><![CDATA[Reply to Regionen übergeben on Wed, 23 Feb 2005 15:00:26 GMT]]></title><description><![CDATA[<p>Nein, das habe ich nicht. Die Musterregion wird einfach erstellt und dann in die Funktion übergeben, weiter nichts.</p>
<p>Wo liegt hier das Problem???</p>
<p>Vielen Dank,<br />
Euer Entertainer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/730629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/730629</guid><dc:creator><![CDATA[Entertainer]]></dc:creator><pubDate>Wed, 23 Feb 2005 15:00:26 GMT</pubDate></item><item><title><![CDATA[Reply to Regionen übergeben on Thu, 24 Feb 2005 11:16:09 GMT]]></title><description><![CDATA[<p>Kennt denn niemand eine Antwrt???</p>
<p>Wie übergebt ihr denn eine Region???</p>
<p>Vielen Dank,<br />
Euer Entertainer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/731385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/731385</guid><dc:creator><![CDATA[Entertainer]]></dc:creator><pubDate>Thu, 24 Feb 2005 11:16:09 GMT</pubDate></item><item><title><![CDATA[Reply to Regionen übergeben on Fri, 25 Feb 2005 12:32:54 GMT]]></title><description><![CDATA[<p>Man erkennt in deinem Quelltext keinen Fehler. Das müsste genau so funktionieren. Die Variable Region ist ja bloß ein Handle, also eine einfache Variable wie int oder void*.</p>
<p>Was meinst du denn damit wenn du sagst, dass die Region leer ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/732095</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/732095</guid><dc:creator><![CDATA[warp]]></dc:creator><pubDate>Fri, 25 Feb 2005 12:32:54 GMT</pubDate></item><item><title><![CDATA[Reply to Regionen übergeben on Fri, 25 Feb 2005 13:11:36 GMT]]></title><description><![CDATA[<p>Steht das Ding auf INVALID_HANDLE_VALUE oder so?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/732136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/732136</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Fri, 25 Feb 2005 13:11:36 GMT</pubDate></item><item><title><![CDATA[Reply to Regionen übergeben on Fri, 25 Feb 2005 13:23:52 GMT]]></title><description><![CDATA[<p>Bzw. Wird CreateRectRgn() überhaupt korrekt ausgeführt? Was gibt es zurück, wenn die Funktion fehlschlägt? Wieso schlägt sie fehl?</p>
<p>-junix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/732152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/732152</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Fri, 25 Feb 2005 13:23:52 GMT</pubDate></item><item><title><![CDATA[Reply to Regionen übergeben on Fri, 25 Feb 2005 16:23:00 GMT]]></title><description><![CDATA[<p>Probier erst mal den Code von Musterfunktion da einzusetzen wo es aufgerufen wird, also erstmal ohne Funktionsaufruf, um das Problem etwas einschränken zu können.<br />
Dann wenns klappt, kannst du ja als notlösung dieses HRGN als global definieren und ggf. mit extern einbinden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/732333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/732333</guid><dc:creator><![CDATA[Salim]]></dc:creator><pubDate>Fri, 25 Feb 2005 16:23:00 GMT</pubDate></item><item><title><![CDATA[Reply to Regionen übergeben on Fri, 25 Feb 2005 16:54:58 GMT]]></title><description><![CDATA[<p>Probier mal, die Region zu kopieren, um dann die neue an die Funktion zu übergeben.</p>
<pre><code class="language-cpp">BOOL CopyRegion(HRGN&amp; hDestRgn, HRGN hSrcRgn)
{
   // get the size of the region object
   int iSize = GetRegionData(hSrcRgn, 0, NULL);

   // allocate space for it
   LPRGNDATA pData = new RGNDATA[iSize];
   if(!pData)
      return FALSE;

   // get the region as binary data
   if( !GetRegionData(hSrcRgn, iSize, pData) )
      return FALSE;

   hDestRgn = ExtCreateRegion(NULL, iSize, pData);

   if(!hDestRgn)
      return FALSE;

   delete[] pData;
   return TRUE;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/732352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/732352</guid><dc:creator><![CDATA[WebFritzi]]></dc:creator><pubDate>Fri, 25 Feb 2005 16:54:58 GMT</pubDate></item><item><title><![CDATA[Reply to Regionen übergeben on Sat, 26 Feb 2005 13:35:07 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>Ich möchte euch allen recht herzlich danken!!!</p>
<p>Ich habe nun einige Tests unternommen und somit festgestellt, dass, wie ihr bereits angekündigt habt, die Region doch richtig übergeben wird. Überdies bin ich so auf ein anderes Problem gestoßen. Die Funktion, die die Region verarbeitet befindet sich in dem Code einer Komponente, die ich von TPanel abgeleitet habe. Am Ende der Funktion ist eben die Region soweit bearbeitet, dass damit weitergearbeitet werden kann. So soll am Ende der Funktion der Komponente eben die Form der Region zugewiesen werden. Dies mache ich so:</p>
<pre><code>SetWindowRgn(Handle, MusterRegion, true);
</code></pre>
<p>Jedoch passiert gar nichts. Ich bin davon ausgegangen, dass eben der Inhalt der Region verloren gegangen ist, daher ja auch meine Anfrage. Um dies nun auszuprobieren habe ich folgendes probiert: Statt die Region der Komponente zuzuweisen, habe ich die Region zeichnen lassen:</p>
<pre><code>Graphics::TBitmap* Bitmap = new Graphics::TBitmap();
Bitmap-&gt;Height = 500;
Bitmap-&gt;Width = 500;
Bitmap-&gt;Canvas-&gt;Brush-&gt;Color = clRed;
PaintRgn(Bitmap-&gt;Canvas-&gt;Handle, MusterRegion);
Bitmap-&gt;SaveToFile(...);
</code></pre>
<p>Das Ergebnis war, dass die Bitmap- Datei richtig mit den Daten der Region gefüllt und abgespeichert wurde. Somit kann der Inhalt der Region ja nicht verloren sein.</p>
<p>Warum aber nimmt meine Komponente nicht die Form der Region an???</p>
<p>PS: Die Funktion CopyRegion von WebFritzi finde ich auch außerhalb meines Programms sehr hilfreich, also dafür noch zusätzlicher Dank!!!</p>
<p>Vielen Dank für eure Hile,<br />
Euer Entertainer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/732759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/732759</guid><dc:creator><![CDATA[Entertainer]]></dc:creator><pubDate>Sat, 26 Feb 2005 13:35:07 GMT</pubDate></item></channel></rss>