<?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[Download für Formulare andocken Script !!]]></title><description><![CDATA[<p>So habe es jetzt geschafft einen script zu schreiben um Formulare andocken zu lassen . Habe den Quellcode und die Projekt.exe gepackt. Wen es interessiert oder wer es braucht kann es sich hier runterladen.</p>
<p>Zum Download <a href="http://www.server-all.de/ip/Form_aneinander_docken.rar" rel="nofollow">http://www.server-all.de/ip/Form_aneinander_docken.rar</a></p>
<p><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="😃"
    /> <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="😃"
    /></p>
<p>Geschrieben mit Borland Builder 6</p>
<p>Bitte in FAQ verschieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/88530/download-für-formulare-andocken-script</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Jul 2026 11:39:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/88530.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 11 Oct 2004 09:17:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Download für Formulare andocken Script !! on Mon, 11 Oct 2004 09:24:11 GMT]]></title><description><![CDATA[<p>So habe es jetzt geschafft einen script zu schreiben um Formulare andocken zu lassen . Habe den Quellcode und die Projekt.exe gepackt. Wen es interessiert oder wer es braucht kann es sich hier runterladen.</p>
<p>Zum Download <a href="http://www.server-all.de/ip/Form_aneinander_docken.rar" rel="nofollow">http://www.server-all.de/ip/Form_aneinander_docken.rar</a></p>
<p><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="😃"
    /> <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="😃"
    /></p>
<p>Geschrieben mit Borland Builder 6</p>
<p>Bitte in FAQ verschieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/625797</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/625797</guid><dc:creator><![CDATA[Praetorianer_33]]></dc:creator><pubDate>Mon, 11 Oct 2004 09:24:11 GMT</pubDate></item><item><title><![CDATA[Reply to Download für Formulare andocken Script !! on Mon, 11 Oct 2004 09:28:05 GMT]]></title><description><![CDATA[<p>schaut sehr nett aus danke..</p>
<p>mfg</p>
<p>|23|</p>
]]></description><link>https://www.c-plusplus.net/forum/post/625808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/625808</guid><dc:creator><![CDATA[*23*]]></dc:creator><pubDate>Mon, 11 Oct 2004 09:28:05 GMT</pubDate></item><item><title><![CDATA[Reply to Download für Formulare andocken Script !! on Mon, 11 Oct 2004 10:52:10 GMT]]></title><description><![CDATA[<p>Praetorianer_33 schrieb:</p>
<blockquote>
<p>Bitte in FAQ verschieben.</p>
</blockquote>
<p>Für die FAQ wäre es netter, wenn du den/die entsprechenden Code-Abschnitt(e) (schön kommentiert :)) plus entsprechender Beschreibung hier posten würdest.<br />
Ggf. könnten so eventuelle Verbesserungen diskutiert werden, und wer kann schon garantieren, dass der Link in einem, sechs oder zwölf Monaten noch aktuell ist.</p>
<p>Auf jeden Fall Danke für den guten Willen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/625865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/625865</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Mon, 11 Oct 2004 10:52:10 GMT</pubDate></item><item><title><![CDATA[Reply to Download für Formulare andocken Script !! on Mon, 11 Oct 2004 12:45:46 GMT]]></title><description><![CDATA[<p>Jansen du hast recht <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="😃"
    /> für den FAQ stelle ich es noch mal als Code hier rein. Ich denke mal das das reichen müsste. denkt daran auf Form 1 noch ein RadioGroup mit 3 Radiobutton zu erstellen<br />
RadioButton1-&gt;Checked = true; Name: &quot;Andocken von unten&quot;<br />
RadioButton2 Name: &quot;Andocken von rechts&quot;<br />
Radiobutton3 Name: &quot;Garnichts&quot;</p>
<p>Die Namen wurden von mir gewählt in der Reihenfolge wird auf Form 2 Die Andockung abgefragt behalte die Reiehenfolge bei bennenn könnt ihr die Button auf den Formular wie ihr wollt unten, rechts oder garnicht oder egal wie. <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="😃"
    /></p>
<p>hier erst mal der Code aus der <strong>Unit1.cpp</strong></p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

#include &lt;vcl.h&gt;
#pragma hdrstop

#include &quot;Unit1.h&quot;
#include &quot;Unit2.h&quot;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource &quot;*.dfm&quot;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form2-&gt;Show();     // Anzeigen des Formular 2 auf Mouseklick
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
   // Festhalten und Verschieben des Formular per Mausklick ohne Rahmen
   ReleaseCapture();
   SendMessage(Form1-&gt;Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
// Ausgabe der Left Koordinaten beim verschieben
Label3-&gt;Caption = Form1-&gt;Left;     
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer3Timer(TObject *Sender)
{
// Ausgabe der Top Koordinaten beim verschieben
Label4-&gt;Caption = Form1-&gt;Top;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
Application-&gt;Terminate();  // Programm beenden
}
//---------------------------------------------------------------------------
</code></pre>
<p>Code <strong>Unit1.h</strong></p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include &lt;Classes.hpp&gt;
#include &lt;Controls.hpp&gt;
#include &lt;StdCtrls.hpp&gt;
#include &lt;Forms.hpp&gt;
#include &lt;ExtCtrls.hpp&gt;
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// Von der IDE verwaltete Komponenten
        TButton *Button1;
        TEdit *Edit1;
        TLabel *Label1;
        TLabel *Label2;
        TLabel *Label3;
        TLabel *Label4;
        TTimer *Timer2;
        TTimer *Timer3;
        TButton *Button2;
        TEdit *Edit2;
        TRadioGroup *RadioGroup1;
        TRadioButton *RadioButton1;
        TRadioButton *RadioButton2;
        TRadioButton *RadioButton3;
        void __fastcall Button1Click(TObject *Sender);
        void __fastcall FormMouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
        void __fastcall Timer1Timer(TObject *Sender);
        void __fastcall Timer2Timer(TObject *Sender);
        void __fastcall Timer3Timer(TObject *Sender);
        void __fastcall Button2Click(TObject *Sender);
private:	// Anwender-Deklarationen
public:		// Anwender-Deklarationen
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
</code></pre>
<p>der Code aus der <strong>Unit2.cpp</strong></p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

#include &lt;vcl.h&gt;

#pragma hdrstop

#include &quot;Unit2.h&quot;
#include &quot;Unit1.h&quot;
bool rechts  = 0; // Variable zum Andocken der Auswahl
bool unten  = 0;  // Variable zum Andocken der Auswahl
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource &quot;*.dfm&quot;
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm2::FormMouseDown(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
  // Auswahl von Form 1 des Radiobutton Abfrage&quot;Andocken rechts&quot;
  if(Form1-&gt;RadioButton2-&gt;Checked == true) 
   {
  if( rechts == 0)  // Abgleich der Variable ob andocken erlaubt 1 nicht andocken
    {
// Bewgen des Fenster ohne Rahmen beim Mausklick
  ReleaseCapture();
  SendMessage(Form2-&gt;Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
  // Vergleichen wann Angedockt wird 
   if(Form1-&gt;Left &lt;= Form2-&gt;Left)
      {
  // Wenn Koordinaten erreicht starten des Timers 3
      Timer3-&gt;Enabled=true;
        if(Timer3-&gt;Enabled==true)
          {
          Button1-&gt;Enabled = false;
          Form1-&gt;Edit1-&gt;Text = &quot;Form2 an Form 1 Angedockt&quot;;
          Form1-&gt;Edit2-&gt;Text = &quot;Angedockt von rechts&quot;;
          }
// Variable wird auf 1 Gesetzt und Fenster kann bei mausklick wieder abgedockt werden 
     rechts = 1; 
    }
    }
   else
    {
    Timer3-&gt;Enabled=false;
    ReleaseCapture();
    SendMessage(Form2-&gt;Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
    Button1-&gt;Enabled = true;
    Form1-&gt;Edit1-&gt;Text = &quot;Form2 an Form 1 Abgedockt&quot;;
    Form1-&gt;Edit2-&gt;Text = &quot;Abgedockt von rechts&quot;;
    rechts = 0;
    }
    }

 // wie oben nur nicht von rechts docken sondern von unten Auswahl Form 1 &quot;andocken von unten&quot;
   if(Form1-&gt;RadioButton1-&gt;Checked == true)
   {
   if( unten == 0)
    {
   ReleaseCapture();
   SendMessage(Form2-&gt;Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);

   if(Form1-&gt;Top &lt;= Form2-&gt;Top)
      {
      Timer4-&gt;Enabled=true;
        if(Timer4-&gt;Enabled==true)
          {
          Button1-&gt;Enabled = false;
          Form1-&gt;Edit1-&gt;Text = &quot;Form2 an Form 1 Angedockt&quot;;
          Form1-&gt;Edit2-&gt;Text = &quot;Angedockt von unten&quot;;
          }
     unten = 1;
    }
    }
   else
    {
    Timer4-&gt;Enabled=false;
    ReleaseCapture();
    SendMessage(Form2-&gt;Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
    Button1-&gt;Enabled = true;
    Form1-&gt;Edit1-&gt;Text = &quot;Form2 an Form 1 Abgedockt&quot;;
    Form1-&gt;Edit2-&gt;Text = &quot;Abgedockt von unten&quot;;
    unten = 0;
    }
    }
 // Auswahl des Radiobutton &quot;garnicht&quot; auf Form 1 wenn nicht angedockt wird
    if(Form1-&gt;RadioButton3-&gt;Checked == true)
    {
    ReleaseCapture();
    SendMessage(Form2-&gt;Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
    Form1-&gt;Edit1-&gt;Text = &quot;Form2 an Form 1 nicht Andockbar&quot;;
    Form1-&gt;Edit2-&gt;Text = &quot;Nicht Andockbar&quot;;
    }

}
//---------------------------------------------------------------------------

void __fastcall TForm2::Timer1Timer(TObject *Sender)
{
// Ausgabe der Left Koordinaten beim verschieben
Label3-&gt;Caption = Form2-&gt;Left;
}
//---------------------------------------------------------------------------

void __fastcall TForm2::Timer2Timer(TObject *Sender)
{
// Ausgabe der Top Koordinaten beim verschieben
Label4-&gt;Caption = Form2-&gt;Top;         
}
//---------------------------------------------------------------------------

void __fastcall TForm2::Timer3Timer(TObject *Sender)
{
Form2-&gt;Left=Form1-&gt;Width + Form1-&gt;Left;// Angabe wo angedockt wird
// Beibehalten der Seiten  ohne das es sich verschiebtr gerades andocken
Form2-&gt;Top=Form1-&gt;Top;
}
//---------------------------------------------------------------------------

void __fastcall TForm2::Timer4Timer(TObject *Sender)
{
Form2-&gt;Top=Form1-&gt;Height + Form1-&gt;Top; // Angabe wo angedockt wird
// Beibehalten der Seiten  ohne das es sich verschiebtr gerades andocken
Form2-&gt;Left=Form1-&gt;Left;  
}
//---------------------------------------------------------------------------

void __fastcall TForm2::Button1Click(TObject *Sender)
{
Form1-&gt;Edit1-&gt;Text = &quot;&quot;;  //Leeren der Editfelder 1+2 
Form1-&gt;Edit2-&gt;Text = &quot;&quot;;
Form2-&gt;Close();   // Schließen des Formular 2
}
//---------------------------------------------------------------------------
</code></pre>
<p>Code <strong>Unit2.h</strong></p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
#include &lt;Classes.hpp&gt;
#include &lt;Controls.hpp&gt;
#include &lt;StdCtrls.hpp&gt;
#include &lt;Forms.hpp&gt;
#include &lt;ExtCtrls.hpp&gt;
//---------------------------------------------------------------------------
class TForm2 : public TForm
{
__published:	// Von der IDE verwaltete Komponenten
        TLabel *Label1;
        TLabel *Label2;
        TLabel *Label3;
        TLabel *Label4;
        TTimer *Timer1;
        TTimer *Timer2;
        TTimer *Timer3;
        TTimer *Timer4;
        TButton *Button1;
        void __fastcall FormMouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
        void __fastcall Timer1Timer(TObject *Sender);
        void __fastcall Timer2Timer(TObject *Sender);
        void __fastcall Timer3Timer(TObject *Sender);
        void __fastcall Timer4Timer(TObject *Sender);
        void __fastcall Button1Click(TObject *Sender);
        void __fastcall FormCreate(TObject *Sender);
private:	// Anwender-Deklarationen
public:		// Anwender-Deklarationen
        __fastcall TForm2(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm2 *Form2;
//---------------------------------------------------------------------------
#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/625942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/625942</guid><dc:creator><![CDATA[Praetorianer_33]]></dc:creator><pubDate>Mon, 11 Oct 2004 12:45:46 GMT</pubDate></item><item><title><![CDATA[Reply to Download für Formulare andocken Script !! on Tue, 12 Oct 2004 05:34:08 GMT]]></title><description><![CDATA[<p>Ohne Deine Mühe und Arbeit in Frage stellen zu wollen:<br />
Ich hab' mal gelesen, dass Timer-Ressourcen nur beschränkt zur Verfügung stehen und man versuchen sollte mit so wenig Timern wie möglich auszukommen... Das war allerdings noch zu Win98-Zeiten. Wenn dem aber immer noch so ist, würde ich nur einen Timer pro Form einsetzen und mit Flags arbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/626574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/626574</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 12 Oct 2004 05:34:08 GMT</pubDate></item><item><title><![CDATA[Reply to Download für Formulare andocken Script !! on Wed, 13 Oct 2004 09:07:19 GMT]]></title><description><![CDATA[<p>1. wozu issn der timer gut. kann man viel eleganter auch ohne machen, z.B mit WM_WINDOWPOSCHANGED<br />
2. weg mit dem globalen variablen gesocks</p>
]]></description><link>https://www.c-plusplus.net/forum/post/627454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/627454</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Wed, 13 Oct 2004 09:07:19 GMT</pubDate></item><item><title><![CDATA[Reply to Download für Formulare andocken Script !! on Wed, 13 Oct 2004 09:18:35 GMT]]></title><description><![CDATA[<p>Habe das jetzt mal getestet und bin von dem Timer-Ansatz auch nicht so recht begeistert.</p>
<p>Polling, also das regelmässige Abfragen bestimmter Zustände, sollte immer nur eine Notlösung sein. Besser wäre es, wenn ein Objekt selbst auf eine Zustandsänderung reagiert, und mit den Windows-Messages ist das ja auch im vorliegenden Fall kein grosses Problem. Hier mal ein Ansatz über das Abfangen der WM_MOVE-Nachricht, siehe auch den entsprechenden <a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39305" rel="nofollow">FAQ</a>-Eintrag im Abschnitt &quot;System&quot;.</p>
<pre><code class="language-cpp">#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include &lt;Classes.hpp&gt;
#include &lt;Controls.hpp&gt;
#include &lt;StdCtrls.hpp&gt;
#include &lt;Forms.hpp&gt;
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
  TButton *Button1;
  void __fastcall Button1Click(TObject *Sender);
private:	// User declarations
public:		// User declarations
  __fastcall TForm1(TComponent* Owner);

// unser eigener Messagehandler
protected:
  void __fastcall wmFormMove(TMessage&amp;);
  BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(WM_MOVE, TMessage, wmFormMove);
  END_MESSAGE_MAP(inherited)

};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
</code></pre>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

#include &lt;vcl.h&gt;
#pragma hdrstop

#include &quot;Unit1.h&quot;
#include &quot;Unit2.h&quot;

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource &quot;*.dfm&quot;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  // Form2 anzeigen und rechts &quot;andocken&quot;
  Form2-&gt;Left = Left + Width;
  Form2-&gt;Top = Top;
  Form2-&gt;Show();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::wmFormMove(TMessage&amp; Msg)
{
   // auf WM_MOVE für Form1 reagieren und Form2 (so sie existiert) mitbewegen
   if (Form2)
   {
     Form2-&gt;Left = Left + Width;
     Form2-&gt;Top = Top;
   }
   // Nachricht weiterreichen 
   inherited::Dispatch(&amp;Msg);
}
//---------------------------------------------------------------------------
</code></pre>
<p>Bei der zweiten Form gibt es nichts weiter zu beachten; wenn man möchte, dass beim Verschieben dieser auch Form1 bewegt wird dann muss man eben auch in Unit2 einen entsprechenden Messagehandler einrichten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/627465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/627465</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Wed, 13 Oct 2004 09:18:35 GMT</pubDate></item></channel></rss>