<?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[Image auf Panel erstellen]]></title><description><![CDATA[<p>Hallo ich habe scho überall gesucht, scheinbar kennt keiner das Problem bzw.mir fällt kein aussagekräftiger Begriff dafür ein. Ich erstelle Panels und Images zur Laufzeit und möchte, das die Images auf den Panels sind und nicht darunter. Habe mit Parent rumgefummelt, kam aber zu keinem positivem Ergebnis.</p>
<pre><code class="language-cpp">for (short int i = 0; i &lt; anz; i++)
  {
    Pdeck[i] = new TPanel(this);  // Panel erstellen
    Pdeck[i]-&gt;Parent = this;
    Pdeck[i]-&gt;Width = 71;
    Pdeck[i]-&gt;Height = 96;
    Pdeck[i]-&gt;Top = 20;
    Pdeck[i]-&gt;Left = x;
   // Pdeck[i]-&gt;BevelOuter = bvNone;
    Ideck[i] = new TImage(Pdeck[i]);  // Images erstellen (auf dem Panel)
    Ideck[i]-&gt;Parent = this;
    Ideck[i]-&gt;Width = 71;
    Ideck[i]-&gt;Height = 96;
    Ideck[i]-&gt;Top = 80;
    Ideck[i]-&gt;Left = x;
    Ideck[i]-&gt;Cursor = crHandPoint;
    Ideck[i]-&gt;Picture-&gt;Bitmap-&gt;LoadFromResourceID((int)HInstance,Zufall[i]);
    x += 4;
  }
</code></pre>
<p>Warum auf dem Panel ? Damit ich den Images eine &quot;Verschiebefunktion&quot; geben kann. Weis einer wie ich das dynamisch hinbekommen kann, das es für jedes Image geht ?</p>
<pre><code class="language-cpp">void __fastcall TForm1::ImagecardMouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
  if (Button==mbLeft)  // Cardpanel gibts nur einmal hier müsste ein Sender hin?
  {
    ReleaseCapture();
    SendMessage(Cardpanel-&gt;Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
  }
}
</code></pre>
<p>Vielen Dank für eure Bemühungen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/171750/image-auf-panel-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 07:59:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/171750.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 29 Jan 2007 03:31:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Image auf Panel erstellen on Mon, 29 Jan 2007 03:31:56 GMT]]></title><description><![CDATA[<p>Hallo ich habe scho überall gesucht, scheinbar kennt keiner das Problem bzw.mir fällt kein aussagekräftiger Begriff dafür ein. Ich erstelle Panels und Images zur Laufzeit und möchte, das die Images auf den Panels sind und nicht darunter. Habe mit Parent rumgefummelt, kam aber zu keinem positivem Ergebnis.</p>
<pre><code class="language-cpp">for (short int i = 0; i &lt; anz; i++)
  {
    Pdeck[i] = new TPanel(this);  // Panel erstellen
    Pdeck[i]-&gt;Parent = this;
    Pdeck[i]-&gt;Width = 71;
    Pdeck[i]-&gt;Height = 96;
    Pdeck[i]-&gt;Top = 20;
    Pdeck[i]-&gt;Left = x;
   // Pdeck[i]-&gt;BevelOuter = bvNone;
    Ideck[i] = new TImage(Pdeck[i]);  // Images erstellen (auf dem Panel)
    Ideck[i]-&gt;Parent = this;
    Ideck[i]-&gt;Width = 71;
    Ideck[i]-&gt;Height = 96;
    Ideck[i]-&gt;Top = 80;
    Ideck[i]-&gt;Left = x;
    Ideck[i]-&gt;Cursor = crHandPoint;
    Ideck[i]-&gt;Picture-&gt;Bitmap-&gt;LoadFromResourceID((int)HInstance,Zufall[i]);
    x += 4;
  }
</code></pre>
<p>Warum auf dem Panel ? Damit ich den Images eine &quot;Verschiebefunktion&quot; geben kann. Weis einer wie ich das dynamisch hinbekommen kann, das es für jedes Image geht ?</p>
<pre><code class="language-cpp">void __fastcall TForm1::ImagecardMouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
  if (Button==mbLeft)  // Cardpanel gibts nur einmal hier müsste ein Sender hin?
  {
    ReleaseCapture();
    SendMessage(Cardpanel-&gt;Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
  }
}
</code></pre>
<p>Vielen Dank für eure Bemühungen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218951</guid><dc:creator><![CDATA[shadowmasta]]></dc:creator><pubDate>Mon, 29 Jan 2007 03:31:56 GMT</pubDate></item><item><title><![CDATA[Reply to Image auf Panel erstellen on Mon, 29 Jan 2007 06:17:24 GMT]]></title><description><![CDATA[<p>Warum machst du</p>
<pre><code class="language-cpp">Ideck[i]-&gt;Parent = this;
</code></pre>
<p>wenn du das Image auf dem Panel erstellen willst? this ist dein Form und nicht das Panel</p>
<pre><code class="language-cpp">Ideck[i]-&gt;Parent = Pdeck[i];
</code></pre>
<p>ist da die richtige Zuweisung</p>
<p>und schau dir auch <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39206.html" rel="nofollow">diesen</a> FAQ-Beitrag zu dynamischen Komponenten und <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39210.html" rel="nofollow">diesen</a> zu Sendernamen bei Prozeduren an</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218963</guid><dc:creator><![CDATA[Linnea]]></dc:creator><pubDate>Mon, 29 Jan 2007 06:17:24 GMT</pubDate></item><item><title><![CDATA[Reply to Image auf Panel erstellen on Mon, 29 Jan 2007 16:54:41 GMT]]></title><description><![CDATA[<p>Hallo danke für die Antwort.</p>
<p>Wiegesagt ich habe schon viel ausprobiert, mit unter auch dein Vorschlag nur dann sehe ich keine Images ! Ich möchte die Images auf den Panels erstellen damit ich die &quot;Verschiebefunktion&quot; verwenden kann. Der Link im Bezug auf Sender hilft mir nicht viel weiter, 1. ist dort leider kein kleines Beispiel und 2. bin ich mir nicht sicher ob das funktioniert denn, wenn ich ein Image verschieben will dann tut er es laut Funktion ja mit dem Panel. Also brauch ich dort eine Beziehung.<br />
Ich würde es ja auch gerne anders lösen, also nur mit den Images aber ein Image hat kein &quot;Handle&quot; ...</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219292</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219292</guid><dc:creator><![CDATA[shadowmasta]]></dc:creator><pubDate>Mon, 29 Jan 2007 16:54:41 GMT</pubDate></item><item><title><![CDATA[Reply to Image auf Panel erstellen on Mon, 29 Jan 2007 17:03:53 GMT]]></title><description><![CDATA[<p>hi,</p>
<pre><code class="language-cpp">int OldMouseX, OldMouseY;
</code></pre>
<p>im MouseDown-Event des Images;</p>
<pre><code class="language-cpp">if (Button == mbLeft)
  {
    OldMouseX = X;
    OldMouseY = Y;
  }
</code></pre>
<p>im MouseMove-Event des Images;</p>
<pre><code class="language-cpp">int iDeltaX, iDeltaY;
  if (Shift.Contains(ssLeft))
  {
    NewX = X - OldMouseX;
    NewY = Y - OldMouseY;
    Image1-&gt;Top = Image1-&gt;Top + NewY;
    Image1-&gt;Left = Image1-&gt;Left + NewX;
  }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1219296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219296</guid><dc:creator><![CDATA[_guest_]]></dc:creator><pubDate>Mon, 29 Jan 2007 17:03:53 GMT</pubDate></item><item><title><![CDATA[Reply to Image auf Panel erstellen on Mon, 29 Jan 2007 19:13:13 GMT]]></title><description><![CDATA[<p>shadowmasta schrieb:</p>
<blockquote>
<p>Hallo danke für die Antwort.</p>
<p>Wiegesagt ich habe schon viel ausprobiert, mit unter auch dein Vorschlag nur dann sehe ich keine Images ! (...)</p>
<p>mfg</p>
</blockquote>
<p>Die <strong>Left</strong> und <strong>Top</strong> Positionen des <strong>Images</strong> solltest du z.B. mal auf 0 setzen,<br />
danach müsstest du dein <strong>Image</strong> sehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219363</guid><dc:creator><![CDATA[Jeg]]></dc:creator><pubDate>Mon, 29 Jan 2007 19:13:13 GMT</pubDate></item><item><title><![CDATA[Reply to Image auf Panel erstellen on Mon, 29 Jan 2007 19:42:20 GMT]]></title><description><![CDATA[<p>Ok natürlich wie dumm...<br />
Dankeschön alle Fragen geklärt dann benutze ich die MouseMovefunktion von dem Gast <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /><br />
Vllt noch eine Frage wenn man zur Laufzeit Komponenten erstellt und ihnen eine Onclick-Ereignis zuweist dann muss ja schon eins da sein also müsste ich ja extra ein Image schon auf der Form haben oder ?</p>
<p>Danke für alles <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="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219384</guid><dc:creator><![CDATA[shadowmasta]]></dc:creator><pubDate>Mon, 29 Jan 2007 19:42:20 GMT</pubDate></item><item><title><![CDATA[Reply to Image auf Panel erstellen on Mon, 29 Jan 2007 19:44:11 GMT]]></title><description><![CDATA[<p>Hallo</p>
<blockquote>
<p>wenn man zur Laufzeit Komponenten erstellt und ihnen eine Onclick-Ereignis zuweist dann muss ja schon eins da sein also müsste ich ja extra ein Image schon auf der Form haben oder ?</p>
</blockquote>
<p>Nein, du brauchst keine Image-Komponente dafür. Sondern nur die manuell angelegte Form-Methode. Erstell als Vorlage eine solche und schau die Parameter an, und vergiß den Header des Forms nicht.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219387</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 29 Jan 2007 19:44:11 GMT</pubDate></item><item><title><![CDATA[Reply to Image auf Panel erstellen on Tue, 30 Jan 2007 08:49:09 GMT]]></title><description><![CDATA[<p>Ich mach das meist so,<br />
1. Komponente (hier Image) auf die Form packen<br />
2. im Objektinspektor die Eventmthode erstellen<br />
3. Eventmethode umbenennen (Header und cpp)<br />
4. Komponente wieder von der Form entfernen<br />
Auf die Weise macht man zumindest bei der korrekten Parameterdeklaration keine Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219589</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 30 Jan 2007 08:49:09 GMT</pubDate></item><item><title><![CDATA[Reply to Image auf Panel erstellen on Tue, 30 Jan 2007 21:31:50 GMT]]></title><description><![CDATA[<p>Danke Braunstein diese Erklärung hat mir sehr gut geholfen, bin auch fast am Ziel, leide rmusste ich bei Fertigstellung feststellen das das Schieben nicht so will wie ich es will, sprich beim Versuch das Image zu verschieben geht es aus dem Bild bei einer kleineren Mausbewegung, wenn ich es langsam mache geht er immer invertiert diagonal aus der Form... Soweit ich das sehe ist das ekin Logikproblem ? ich verzweifle da ich es kurz bevor ich es implementiert habe noch einzeln getestet habe.</p>
<pre><code class="language-cpp">// Codeausschnitt
    Ideck[i] = new TImage(this);  // Images erstellen
    Ideck[i]-&gt;Parent = this;
    Ideck[i]-&gt;Width = 71;
    Ideck[i]-&gt;Height = 96;
    Ideck[i]-&gt;Top = 0;
    Ideck[i]-&gt;Left = 0;
    Ideck[i]-&gt;Cursor = crHandPoint;
    // Zufälliges Bild laden
    Ideck[i]-&gt;Picture-&gt;Bitmap-&gt;LoadFromResourceID((int)HInstance,Zufall[i]);
    Ideck[i]-&gt;OnMouseDown = CardDown;  // Eventeigenschaften
    Ideck[i]-&gt;OnMouseMove = CardMove;

// CardDown
void __fastcall TForm1::CardDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
  if (Button == mbLeft)
  {
    OldMouseX = X;
    OldMouseY = Y;
  }
}

// CardMove
void __fastcall TForm1::CardMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
  int NewX, NewY;
  if (Shift.Contains(ssLeft))
  {
    NewX = X - OldMouseX;
    NewY = Y - OldMouseY;
    dynamic_cast&lt;TImage*&gt;(Sender)-&gt;Top = dynamic_cast&lt;TImage*&gt;(Sender)-&gt;Top + NewX;
    dynamic_cast&lt;TImage*&gt;(Sender)-&gt;Left = dynamic_cast&lt;TImage*&gt;(Sender)-&gt;Left + NewY;
  }
}
</code></pre>
<p>Ich kannte das mit dem dynamic_cast garnicht ich dachte &quot;TImage(Sender)&quot; so in der Art aber geht nicht, glaube das war Delphi...<br />
Sorry wenn ich mit sowas &quot;banalem&quot; ankomme, ich wüsste nicht wie es es sonst lösen kann, also danke nochmal an die Helfer <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220204</guid><dc:creator><![CDATA[shadowmasta]]></dc:creator><pubDate>Tue, 30 Jan 2007 21:31:50 GMT</pubDate></item><item><title><![CDATA[Reply to Image auf Panel erstellen on Wed, 31 Jan 2007 08:46:52 GMT]]></title><description><![CDATA[<p>So sieht es etwas übersichtlicher aus.</p>
<pre><code class="language-cpp">void __fastcall TForm1::CardMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
  if (Shift.Contains(ssLeft))
  {
    int NewX = X - OldMouseX;
    int NewY = Y - OldMouseY;
    TImage* image = dynamic_cast&lt;TImage*&gt;(Sender);
    if( image != 0)
    {
       image-&gt;Top = image-&gt;Top + NewX;
       image-&gt;Left = image-&gt;Left + NewY;
    }
  }
}
</code></pre>
<p>Ansonsten noch was zu dynamic_cast<br />
<a href="http://tutorial.schornboeck.net/dynamic_cast.htm" rel="nofollow">http://tutorial.schornboeck.net/dynamic_cast.htm</a><br />
siehe dazu auch die FAQ des C++Forums.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220327</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 31 Jan 2007 08:46:52 GMT</pubDate></item><item><title><![CDATA[Reply to Image auf Panel erstellen on Wed, 31 Jan 2007 12:56:36 GMT]]></title><description><![CDATA[<p>Ok es geht habe <strong>X</strong> mit <strong>Y</strong> vertauscht ...<br />
Ich hoffe es bleibt die allerletzte Frage <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="😃"
    /><br />
Da ich nun 52 Karten frei bewegen kann und sie in 52 verschiedenen Ebenen sind bräuchte ich beim Onclick bzw. Onmousedown Event eine Eigenschaft die das gewählte Image nach vorne setzt in der hierarchie also das ich das gewählte Image auf eine andere Karte legen kann. Dann kann ich endlich mit dem Algorythmus beginnen :p</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220453</guid><dc:creator><![CDATA[shadowmasta]]></dc:creator><pubDate>Wed, 31 Jan 2007 12:56:36 GMT</pubDate></item><item><title><![CDATA[Reply to Image auf Panel erstellen on Wed, 31 Jan 2007 15:39:57 GMT]]></title><description><![CDATA[<p>Schau mal in der Hilfe nach BringToFront().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220601</guid><dc:creator><![CDATA[Rostfrei**]]></dc:creator><pubDate>Wed, 31 Jan 2007 15:39:57 GMT</pubDate></item><item><title><![CDATA[Reply to Image auf Panel erstellen on Wed, 31 Jan 2007 18:14:19 GMT]]></title><description><![CDATA[<p>Dankeschön genau das was ich brauche <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="👍"
    /></p>
<p>Ich wünschte es gebe so ein Online-Manual wie bei php das <a href="http://php.net" rel="nofollow">php.net</a> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1220684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220684</guid><dc:creator><![CDATA[shadowmasta]]></dc:creator><pubDate>Wed, 31 Jan 2007 18:14:19 GMT</pubDate></item></channel></rss>