<?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[Diverse Fragen zur Gui-Gestaltung]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin vor ein paar Tagen auf dieses Forum gestoßen und habe damit begonnen mich hier erst einmal einzulesen, doch es gibt noch die ein oder andere Frage offen, auf die ich bis jetzt keine Antwort gefunden habe.</p>
<p>Zu meiner Person:<br />
Ich programmiere schon eine Weile C++ mit dem BCB 5 und möchte mich nun an der Erstellung von GUI's versuchen. Ich habe hier in Java schon diverse Erfahrungen sammeln können.</p>
<p>Nun aber zu meinen Fragen:<br />
- Wenn ich den Builder starte, habe ich bereits immer ein Fenster, wo ich Komponenten platzieren kann. Was ist das genau, eine neue Anwendung, ein leeres Formular oder ein Frame. Wo bestehen die generellen Unterschiede zwischen diesen drei Möglichkeiten ?<br />
- Ich habe gelesen, dass die Gui's im Builder alle die Bibliothek VCL verwenden, bei Visual C++ soll dies MFC sein. Worin unterscheiden sich diese beiden Klassen grundlegend ? Gibt es sonst noch eine solche Bibliothek welche besondere Bedeutung hat ? Wieso gibt es hier überhaupt verschiedene Standards von den einzelnen Herstellern (bei Java nur AWT oder SWING)<br />
- Warum haben die grafischen Komponenten einen Präfix T ?<br />
- Ich habe versucht den Text eines Textfeldes (TEdit) mittels einfacher get- und set-Methoden zu holen und zu manipulieren. Diese Methoden habe ich leider nicht gefunden, gibt es nicht solche &quot;universellen&quot; Methoden, und muss ich für jede Komponente immer in der Hilfe nachschauen ?<br />
- Ich kenne es aus Java so, dass ich eine eine GUI-Klasse erstelle und von dieser Klasse anschließend in meinem Programm eine Instanz erzeuge um diese zu betrachten, dies scheint bei Builder etwas anders zu sein, da hier ja keine weitere Main-Klasse angelegt wird.<br />
- So, eine Frage habe ich mir noch aufgehoben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /> . Es ist ja ein Unterschied<br />
ob die Instanzen meiner Klasse in einer Konsolen-Anwendung oder in einer Gui<br />
verwendet werden sollen. Da ich bis jetzt mit C++ ausschließlich auf der<br />
Konsole gearbeitet habe, hatte ich der Einfachheit halber Methoden zum Anzeigen als void definiert und den entsprechenden Text direkt mittels cout ausgegeben. Wenn meine Klasse natürlich jetzt Gui-kompatibel sein soll, so muss sie halt einen String statt void zu rückgeben der anschließend in der Gui angezeigt wird.<br />
<strong>Was muss ich sonst beachten wenn ich eine &quot;universelle&quot; Klassen erstellen will, die sowohl Konsolen als auch Gui kompatibel sind ?</strong></p>
<p>So, ich bin mal gespannt wer sich rantraut <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="🕶"
    /> . Auf jeden Fall schon mal Danke für eure Beiträge <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>Gruß<br />
Brasi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/126696/diverse-fragen-zur-gui-gestaltung</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 22:03:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/126696.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 17 Nov 2005 13:36:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Diverse Fragen zur Gui-Gestaltung on Thu, 17 Nov 2005 13:37:30 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin vor ein paar Tagen auf dieses Forum gestoßen und habe damit begonnen mich hier erst einmal einzulesen, doch es gibt noch die ein oder andere Frage offen, auf die ich bis jetzt keine Antwort gefunden habe.</p>
<p>Zu meiner Person:<br />
Ich programmiere schon eine Weile C++ mit dem BCB 5 und möchte mich nun an der Erstellung von GUI's versuchen. Ich habe hier in Java schon diverse Erfahrungen sammeln können.</p>
<p>Nun aber zu meinen Fragen:<br />
- Wenn ich den Builder starte, habe ich bereits immer ein Fenster, wo ich Komponenten platzieren kann. Was ist das genau, eine neue Anwendung, ein leeres Formular oder ein Frame. Wo bestehen die generellen Unterschiede zwischen diesen drei Möglichkeiten ?<br />
- Ich habe gelesen, dass die Gui's im Builder alle die Bibliothek VCL verwenden, bei Visual C++ soll dies MFC sein. Worin unterscheiden sich diese beiden Klassen grundlegend ? Gibt es sonst noch eine solche Bibliothek welche besondere Bedeutung hat ? Wieso gibt es hier überhaupt verschiedene Standards von den einzelnen Herstellern (bei Java nur AWT oder SWING)<br />
- Warum haben die grafischen Komponenten einen Präfix T ?<br />
- Ich habe versucht den Text eines Textfeldes (TEdit) mittels einfacher get- und set-Methoden zu holen und zu manipulieren. Diese Methoden habe ich leider nicht gefunden, gibt es nicht solche &quot;universellen&quot; Methoden, und muss ich für jede Komponente immer in der Hilfe nachschauen ?<br />
- Ich kenne es aus Java so, dass ich eine eine GUI-Klasse erstelle und von dieser Klasse anschließend in meinem Programm eine Instanz erzeuge um diese zu betrachten, dies scheint bei Builder etwas anders zu sein, da hier ja keine weitere Main-Klasse angelegt wird.<br />
- So, eine Frage habe ich mir noch aufgehoben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /> . Es ist ja ein Unterschied<br />
ob die Instanzen meiner Klasse in einer Konsolen-Anwendung oder in einer Gui<br />
verwendet werden sollen. Da ich bis jetzt mit C++ ausschließlich auf der<br />
Konsole gearbeitet habe, hatte ich der Einfachheit halber Methoden zum Anzeigen als void definiert und den entsprechenden Text direkt mittels cout ausgegeben. Wenn meine Klasse natürlich jetzt Gui-kompatibel sein soll, so muss sie halt einen String statt void zu rückgeben der anschließend in der Gui angezeigt wird.<br />
<strong>Was muss ich sonst beachten wenn ich eine &quot;universelle&quot; Klassen erstellen will, die sowohl Konsolen als auch Gui kompatibel sind ?</strong></p>
<p>So, ich bin mal gespannt wer sich rantraut <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="🕶"
    /> . Auf jeden Fall schon mal Danke für eure Beiträge <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>Gruß<br />
Brasi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/920077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/920077</guid><dc:creator><![CDATA[Brasilian]]></dc:creator><pubDate>Thu, 17 Nov 2005 13:37:30 GMT</pubDate></item><item><title><![CDATA[Reply to Diverse Fragen zur Gui-Gestaltung on Fri, 18 Nov 2005 08:50:55 GMT]]></title><description><![CDATA[<p>als erstes solltest du dir ein gutes buch zulegen mit dem du grundlegende fragen selbst beantworten kannst:</p>
<p><a href="https://duckduckgo.com/?q=isbn+3540629947&amp;cppnetbooks" rel="nofollow">C++ mit dem Borland C++Builder | ISBN: 3540629947</a></p>
<p>c++ != java, d.h. was du dort hast, gibt es nicht zwangsläufig im c++ oder einer anderen programmiersprache...</p>
<p>1. wenn du den builder startest (und sofern nicht autospeichern in den editor-optionen aktiv ist), fängst du mit einer neue leeren anwendung an. siehe menüpunkt Datei-&gt;Neu-&gt;Anwendung. diese beinhaltet bereits dein hauptformular (das gepunktete leere fenster) und die zugehörige unit.</p>
<p>2. naja vcl ist von borland und mfc von microsoft. jeder kocht da sein eigenes süppchen. java kommt doch von sun und ham damit wieder was eigenes gebastelt.</p>
<p>3. alle klasse der vcl ham ein T (fuer Typ) davor nicht nur die graphischen. bei microsoft ist der präfix übrigens ein C (fuer Class). höchstwahrscheinlich dafür um die klassen besser von anderen nutzerspezifischen klassen unterscheiden zu können, was aber heute wohl eher mit namespace gemacht wird.</p>
<p>4. siehe oben das buch, jede komponente hat verschiedene eigenschaften (siehe hilfe). jede dieser eigenschaften wird intern ueber ein setter/getter geändert (wenn das nötig ist). den Text eines TEdit kannst du einfach so ändern, in dem du ihm etwas neues zuweist oder ausliest.</p>
<pre><code class="language-cpp">// Text auslesen
AnsiString InhaltdesEdit = Edit1-&gt;Text;

// Text setzen
Edit1-&gt;Text = &quot;BlahFasel&quot;;
</code></pre>
<p>5. jedes formular (siehe header) ist auch nur eine klasse die alle komponenten usw. beinhaltet und beim start der anwendung erzeugt wird. das kann sowohl automatisch (alle formulare auf einmal) oder einzel (in dem du jeweils eine instanz für das formular erzeugst, was du anzeigen willst) gehen. jedes erzeugte formular ist global verfügbar, wenn du den entspr. header einbindest.</p>
<p>6. verzichte auf alle VCL elemente (vorallem auf alle gui-elemente), dann dürfte das mit der universellen klasse auch klappen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/920284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/920284</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Fri, 18 Nov 2005 08:50:55 GMT</pubDate></item><item><title><![CDATA[Reply to Diverse Fragen zur Gui-Gestaltung on Fri, 18 Nov 2005 09:47:29 GMT]]></title><description><![CDATA[<p>Achtung, Schleichwerbung ;-):</p>
<p><a href="http://www.junix.ch/bcb/help/hilfe.html" rel="nofollow">http://www.junix.ch/bcb/help/hilfe.html</a></p>
<p>Sehr hilfreich, um viele Standardfragen zu klären.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/920332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/920332</guid><dc:creator><![CDATA[Dasd]]></dc:creator><pubDate>Fri, 18 Nov 2005 09:47:29 GMT</pubDate></item><item><title><![CDATA[Reply to Diverse Fragen zur Gui-Gestaltung on Sat, 19 Nov 2005 09:00:51 GMT]]></title><description><![CDATA[<p>Erst mal vielen Dank an euch beiden. Ich denke es ist mir jetzt einiges klarer geworden und die Hilfe sehe ich nun auch als nützliches &quot;Hilfs&quot;mittel.</p>
<p>Ich bin jedoch etwas verwundert, dass der Text eines TEdit direkt über das entsprechende Attribut angesprochen werden kann, wie es im Beispielcoding zu sehen ist. Dies bedeutet doch gleichzeitig, dass diese Eigenschaft nicht private ist und die verstößt doch gegen die grundlegenden Gedanken der Objektorientierung, wo die Eigenschaften einer Klasse private sind und wir mittels get- und set-Methoden auf das jeweilige Attribut zu greifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/921180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921180</guid><dc:creator><![CDATA[Brasilian]]></dc:creator><pubDate>Sat, 19 Nov 2005 09:00:51 GMT</pubDate></item><item><title><![CDATA[Reply to Diverse Fragen zur Gui-Gestaltung on Sat, 19 Nov 2005 09:41:06 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Nein, es ist korrekt, nur die VCL-Eigenschaften spezielle Erweiterungen nutzen um es so aussehen zu lassen, als ob z.B. <em>TEdit::Text</em> ein einfacher direkter AnsiString wäre. Ist es aber nicht, wie die BCB-Hilfe zeigt.</p>
<pre><code class="language-cpp">__property AnsiString Text = {read=GetText, write=SetText};
</code></pre>
<p>Und dort stehen dann auch der Getter und der Setter, der mit dem Zugriff auf die Eigenschaft aufgerufen wird, um das eigentlich, unsichtbare private-Element zu lesen bzw. zu bearbeiten. Mit dieser __property-Erweiterung ist es dann Möglich, diese Eigenschaften z.B. über den Objektinstektor zu bearbeiten, auch dann bei selbstgeschriebenen Komponenten.<br />
Leider hat diese __propery-erweiterung auch einen Nachteil</p>
<pre><code class="language-cpp">Edit1-&gt;Text += &quot;Hallo&quot;; // Wird nicht ausgeführt,da nur temporär etwas verändert wird
Edit1-&gt;Text = Edit1-&gt;Text + &quot;Hallo&quot;; // Wird ausgeführt
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/921189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921189</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 19 Nov 2005 09:41:06 GMT</pubDate></item></channel></rss>