<?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[Wie kann ich den Code Universell machen]]></title><description><![CDATA[<p>Erst einmal Hallo zusammen! Ich bin noch ziemlicher Noob in C++! und stoße deshalb des öfteren vor größere Probleme!<br />
Ich bin dabei ein D3D Ingame Menu zu machen und die Klasse dazu ist eigentlich auch soweit fertig! Jetzt habe ich ein Problem mit den Einträgen! Es soll möglichst so funktionieren das die einzelnen MenuItems (egal wie viele) automatisch von der klasse gelesen werden!</p>
<p>Hier mal der Struct</p>
<pre><code class="language-cpp">struct MenuItem
{
	char* Name;
	float Value;
	float Min;
	float Max;
	float Step;
};
</code></pre>
<p>Hier die einzelnen Items</p>
<pre><code class="language-cpp">MenuItem miRedDot	= {&quot;RedDot Fadenkreuz&quot;,0,0,1,1};
	MenuItem miNoSky	= {&quot;No Sky&quot;,0,0,1,1};
	MenuItem miNoFog	= {&quot;No Fog&quot;,0,0,1,1};
	MenuItem miViewDistance = {&quot;View Distance&quot;,1,1,3,1};
	MenuItem miTeamswitch	= {&quot;Teamswitch&quot;,0,0,1,1};
	MenuItem miSquadLeader	= {&quot;Force Squadleader&quot;,0,0,1,1};
	MenuItem miCommander	= {&quot;Force Commander&quot;,0,0,1,1};
	MenuItem miUtilities	= {&quot;Fill Utilities&quot;,0,0,1,1};
	MenuItem miZoom		= {&quot;Zoomweite&quot;,0.6f,0.1f,1.1f,0.1f};
</code></pre>
<p>Hier die Klassendefinition</p>
<pre><code class="language-cpp">class CIngameMenu
{
private:
	void FillRGBA(int x, int y, int w, int h, int r, int g, int b, int a);
	void DrawBox(int x, int y, int w, int h, int r, int g, int b, int a,int rr, int gg, int bb, int aa);
	void DrawString(int x, int y, int Red, int Green, int Blue, int Alpha, const char *text, ...);
	ID3DXLine *menuLiner;
	LPD3DXFONT menuFont;
public:
	BOOL bInited;
	BOOL bActive;
	UINT iSelected;
	MenuItem Items[ItemCount];
	void Show();
	void Init(IDirect3DDevice9* pDevice);
	void DeInit();
};
</code></pre>
<p>Ich weis das ich das jetzt mit folgendem Code lösen könnte!</p>
<pre><code class="language-cpp">for (int i=0;i&lt;ItemCount;i++){
    Items[i] = MenuItem[i];
}
</code></pre>
<p>Dazu müsste ich die einzelnen Items in ein Array packen aber das ganze ist für mich ziemlich unschön! gibt es da nicht eine möglichkeit die Items in ein Enum zu packen und der Klasse nur das enum zu übergeben? oder wie kann man das sonst noch realisieren?</p>
<p>Danke schon mal im voraus für eure antworten!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/181877/wie-kann-ich-den-code-universell-machen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 10:37:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/181877.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 18 May 2007 13:06:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie kann ich den Code Universell machen on Fri, 18 May 2007 13:06:06 GMT]]></title><description><![CDATA[<p>Erst einmal Hallo zusammen! Ich bin noch ziemlicher Noob in C++! und stoße deshalb des öfteren vor größere Probleme!<br />
Ich bin dabei ein D3D Ingame Menu zu machen und die Klasse dazu ist eigentlich auch soweit fertig! Jetzt habe ich ein Problem mit den Einträgen! Es soll möglichst so funktionieren das die einzelnen MenuItems (egal wie viele) automatisch von der klasse gelesen werden!</p>
<p>Hier mal der Struct</p>
<pre><code class="language-cpp">struct MenuItem
{
	char* Name;
	float Value;
	float Min;
	float Max;
	float Step;
};
</code></pre>
<p>Hier die einzelnen Items</p>
<pre><code class="language-cpp">MenuItem miRedDot	= {&quot;RedDot Fadenkreuz&quot;,0,0,1,1};
	MenuItem miNoSky	= {&quot;No Sky&quot;,0,0,1,1};
	MenuItem miNoFog	= {&quot;No Fog&quot;,0,0,1,1};
	MenuItem miViewDistance = {&quot;View Distance&quot;,1,1,3,1};
	MenuItem miTeamswitch	= {&quot;Teamswitch&quot;,0,0,1,1};
	MenuItem miSquadLeader	= {&quot;Force Squadleader&quot;,0,0,1,1};
	MenuItem miCommander	= {&quot;Force Commander&quot;,0,0,1,1};
	MenuItem miUtilities	= {&quot;Fill Utilities&quot;,0,0,1,1};
	MenuItem miZoom		= {&quot;Zoomweite&quot;,0.6f,0.1f,1.1f,0.1f};
</code></pre>
<p>Hier die Klassendefinition</p>
<pre><code class="language-cpp">class CIngameMenu
{
private:
	void FillRGBA(int x, int y, int w, int h, int r, int g, int b, int a);
	void DrawBox(int x, int y, int w, int h, int r, int g, int b, int a,int rr, int gg, int bb, int aa);
	void DrawString(int x, int y, int Red, int Green, int Blue, int Alpha, const char *text, ...);
	ID3DXLine *menuLiner;
	LPD3DXFONT menuFont;
public:
	BOOL bInited;
	BOOL bActive;
	UINT iSelected;
	MenuItem Items[ItemCount];
	void Show();
	void Init(IDirect3DDevice9* pDevice);
	void DeInit();
};
</code></pre>
<p>Ich weis das ich das jetzt mit folgendem Code lösen könnte!</p>
<pre><code class="language-cpp">for (int i=0;i&lt;ItemCount;i++){
    Items[i] = MenuItem[i];
}
</code></pre>
<p>Dazu müsste ich die einzelnen Items in ein Array packen aber das ganze ist für mich ziemlich unschön! gibt es da nicht eine möglichkeit die Items in ein Enum zu packen und der Klasse nur das enum zu übergeben? oder wie kann man das sonst noch realisieren?</p>
<p>Danke schon mal im voraus für eure antworten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1287388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1287388</guid><dc:creator><![CDATA[Tetsuo]]></dc:creator><pubDate>Fri, 18 May 2007 13:06:06 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich den Code Universell machen on Fri, 18 May 2007 14:34:11 GMT]]></title><description><![CDATA[<blockquote>
<p>Es soll möglichst so funktionieren das die einzelnen MenuItems (egal wie viele) automatisch von der klasse gelesen werden!</p>
</blockquote>
<p>Wie &quot;automatisch gelesen&quot;?<br />
Ich versteh zwar nicht wirklich was du willst, aber vllt bin ich ja nicht schlecht im Raten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<pre><code class="language-cpp">struct MenuItem
{
    char* Name;
    float Value;
    float Min;
    float Max;
    float Step;
};

class IngameMenu
{
public:
    static MenuItem m_items[];
};

MenuItem IngameMenu::m_items[] = 
{
    {&quot;RedDot Fadenkreuz&quot;,0,0,1,1},
    {&quot;No Sky&quot;,0,0,1,1},
    {&quot;No Fog&quot;,0,0,1,1},
    {&quot;View Distance&quot;,1,1,3,1},
    {&quot;Teamswitch&quot;,0,0,1,1},
    {&quot;Force Squadleader&quot;,0,0,1,1},
    {&quot;Force Commander&quot;,0,0,1,1},
    {&quot;Fill Utilities&quot;,0,0,1,1},
    {&quot;Zoomweite&quot;,0.6f,0.1f,1.1f,0.1f}
};
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Wenns das nicht ist, stell deine Frage bitte etwas klarer.</p>
<p>Gruss,<br />
DeSoVoDaMu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1287448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1287448</guid><dc:creator><![CDATA[DeSoVoDaMu]]></dc:creator><pubDate>Fri, 18 May 2007 14:34:11 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich den Code Universell machen on Fri, 18 May 2007 16:16:58 GMT]]></title><description><![CDATA[<p>Im erklären bin ich wirklich nicht der Meister!<br />
Aber eigentlich hat sichs schon fast erledigt!<br />
Ich habe jetzt mal die ganzen MenuItems in einen Array gepackt!</p>
<pre><code class="language-cpp">static MenuItem MenuItems[] = {
	{&quot;RedDot Fadenkreuz&quot;,0,0,1,1},
	{&quot;No Sky&quot;,0,0,1,1},
	{&quot;No Fog&quot;,0,0,1,1},
	{&quot;View Distance&quot;,1,1,3,1},
	{&quot;Teamswitch&quot;,0,0,1,1},
	{&quot;Force Squadleader&quot;,0,0,1,1},
	{&quot;Force Commander&quot;,0,0,1,1},
	{&quot;Fill Utilities&quot;,0,0,1,1},
	{&quot;Zoomweite&quot;,0.6f,0.1f,1.1f,0.1f}
};
</code></pre>
<p>Die Klasse soll unabhängig von diesem Array funktionieren es werden auch andere Arrays später mal übergeben deshalb die Definition außerhalb der Klasse!<br />
und übergeben tu ich den Array an die Klasse mit einer Schleife!<br />
Das einzige was mich jetzt stört ist das ich jetzt eine Seperate Liste mit Identifizieren brauche damit ich auch weis was was ist!</p>
<pre><code class="language-cpp">#define RedDot 0
#define NoSky 1
...
</code></pre>
<p>oder gibt es dafür eine elegantere Lösung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1287550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1287550</guid><dc:creator><![CDATA[Tetsuo]]></dc:creator><pubDate>Fri, 18 May 2007 16:16:58 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich den Code Universell machen on Fri, 18 May 2007 16:24:54 GMT]]></title><description><![CDATA[<p>Klar gibt es eine Lösung - du kannst die #define's weglassen und die Indizes der Werte direkt angeben. (oder du nimmst dir find_if(), wenn du das Menü-Item mit einem bestimmten Namen benötigst)</p>
<p>PS: Ich würde übrigens lieber std::string anstelle des char* und std::vector&lt;&gt; anstelle des MenüItem-Arrays verwenden <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/1287557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1287557</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 18 May 2007 16:24:54 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich den Code Universell machen on Fri, 18 May 2007 17:12:53 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Klar gibt es eine Lösung - du kannst die #define's weglassen und die Indizes der Werte direkt angeben. (oder du nimmst dir find_if(), wenn du das Menü-Item mit einem bestimmten Namen benötigst)</p>
</blockquote>
<p>Was meinst du mit Indizes direkt angeben? Wo?</p>
<p>CStoll schrieb:</p>
<blockquote>
<p>PS: Ich würde übrigens lieber std::string anstelle des char* und std::vector&lt;&gt; anstelle des MenüItem-Arrays verwenden <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>
</blockquote>
<p>Das hab ich auch schon oft gehört mit diesen Namespaces aber noch nie wirklich damit auseinandergesetzt! Wie gesagt ich programmiere erst 3 Monate mit C++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1287578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1287578</guid><dc:creator><![CDATA[Tetsuo]]></dc:creator><pubDate>Fri, 18 May 2007 17:12:53 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich den Code Universell machen on Sat, 19 May 2007 08:46:07 GMT]]></title><description><![CDATA[<p>Tetsuo schrieb:</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>Klar gibt es eine Lösung - du kannst die #define's weglassen und die Indizes der Werte direkt angeben. (oder du nimmst dir find_if(), wenn du das Menü-Item mit einem bestimmten Namen benötigst)</p>
</blockquote>
<p>Was meinst du mit Indizes direkt angeben? Wo?</p>
</blockquote>
<p>Dort, wo du bisher die Bezeichner (bzw. Makros) RedDot, NoSky etc. verwendet hast.</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>PS: Ich würde übrigens lieber std::string anstelle des char* und std::vector&lt;&gt; anstelle des MenüItem-Arrays verwenden <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>
</blockquote>
<p>Das hab ich auch schon oft gehört mit diesen Namespaces aber noch nie wirklich damit auseinandergesetzt! Wie gesagt ich programmiere erst 3 Monate mit C++</p>
</blockquote>
<p>Dann mach das lieber - das erleichtert deine Arbeit ungemein.</p>
<p>(wenn du Hilfe brauchst - im Magazin gibt es zwei Artikel &quot;Aufbau der STL Teil 1&quot; und &quot;Stringverarbeitung in C++&quot; von mir, die bei den Anfängen helfen könnten)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1287818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1287818</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 19 May 2007 08:46:07 GMT</pubDate></item></channel></rss>