<?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[Abfragen in schleife]]></title><description><![CDATA[<p>heiho</p>
<p>es geht darum, ich speichere settings von checkboxen in einer ini</p>
<pre><code class="language-cpp">iCfg = pView-&gt;m_One.GetCheck();
csBuffer.Format(_T(&quot;%d&quot;), iCfg);
WritePrivateProfileString(_T(&quot;CheckBoxes&quot;), _T(&quot;One&quot;), csBuffer, path);

iCfg = pView-&gt;m_Two.GetCheck();
csBuffer.Format(_T(&quot;%d&quot;), iCfg);
WritePrivateProfileString(_T(&quot;CheckBoxes&quot;), _T(&quot;Two&quot;), csBuffer, path);

iCfg = pView-&gt;m_Three.GetCheck();
csBuffer.Format(_T(&quot;%d&quot;), iCfg);
WritePrivateProfileString(_T(&quot;CheckBoxes&quot;), _T(&quot;Three&quot;), csBuffer, path);
</code></pre>
<p>wie man sieht ist es immer das selbe - und das hab ich fuer 15 checkboxen und 6 editboxen</p>
<p>darum meine frage, da es sich staendig wiederholt - wie koennte ich das in eine schleife packen ?</p>
<p>die &quot;_T(&quot;CheckBoxes&quot;) sind immer gleich und an stelle &quot;_T(&quot;One&quot;)&quot; usw dacht cih nehm ich den namen des elements - oder die ID {loadstring}</p>
<p>danke fuer anregungen</p>
<p>{in der resource.h sind die edit und checkboxen gemischt}</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/166358/abfragen-in-schleife</link><generator>RSS for Node</generator><lastBuildDate>Sat, 02 May 2026 02:06:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/166358.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 28 Nov 2006 14:56:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Abfragen in schleife on Tue, 28 Nov 2006 14:56:11 GMT]]></title><description><![CDATA[<p>heiho</p>
<p>es geht darum, ich speichere settings von checkboxen in einer ini</p>
<pre><code class="language-cpp">iCfg = pView-&gt;m_One.GetCheck();
csBuffer.Format(_T(&quot;%d&quot;), iCfg);
WritePrivateProfileString(_T(&quot;CheckBoxes&quot;), _T(&quot;One&quot;), csBuffer, path);

iCfg = pView-&gt;m_Two.GetCheck();
csBuffer.Format(_T(&quot;%d&quot;), iCfg);
WritePrivateProfileString(_T(&quot;CheckBoxes&quot;), _T(&quot;Two&quot;), csBuffer, path);

iCfg = pView-&gt;m_Three.GetCheck();
csBuffer.Format(_T(&quot;%d&quot;), iCfg);
WritePrivateProfileString(_T(&quot;CheckBoxes&quot;), _T(&quot;Three&quot;), csBuffer, path);
</code></pre>
<p>wie man sieht ist es immer das selbe - und das hab ich fuer 15 checkboxen und 6 editboxen</p>
<p>darum meine frage, da es sich staendig wiederholt - wie koennte ich das in eine schleife packen ?</p>
<p>die &quot;_T(&quot;CheckBoxes&quot;) sind immer gleich und an stelle &quot;_T(&quot;One&quot;)&quot; usw dacht cih nehm ich den namen des elements - oder die ID {loadstring}</p>
<p>danke fuer anregungen</p>
<p>{in der resource.h sind die edit und checkboxen gemischt}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183127</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 28 Nov 2006 14:56:11 GMT</pubDate></item><item><title><![CDATA[Reply to Abfragen in schleife on Tue, 28 Nov 2006 15:09:57 GMT]]></title><description><![CDATA[<p>naja zum speichern finde ich eine schleife nicht unbedingt das richtige da du ja wenn, immer nur den wert speichern wirst, der gerade geändert wird oder. oder willst du auch werte speichern die nicht geändert wurden wäre ja unsinnig.</p>
<p>somit wäre eigendlich eine sepereate funktion an die du nur den wert und wohin gespeichert wird übergibst das richtige.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183140</guid><dc:creator><![CDATA[LowFly]]></dc:creator><pubDate>Tue, 28 Nov 2006 15:09:57 GMT</pubDate></item><item><title><![CDATA[Reply to Abfragen in schleife on Tue, 28 Nov 2006 15:11:49 GMT]]></title><description><![CDATA[<p>Unsauber: Du setzt die IDs in der resource.h von Hand hintereinander.<br />
Dann kannst du mit for und GtDlgItem arbeiten.</p>
<p>Sauber: Du machst ein Array, das du abläufst.<br />
Entweder eines mit den IDs oder gleich eines mit den CButton*.</p>
<p><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>
<p>PS: Steck das in eine Funktion, der du Name, Buffer und path übergibst.<br />
Und den Namen kann man auch in ein const Array stopfen. <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/1183142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183142</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Tue, 28 Nov 2006 15:11:49 GMT</pubDate></item><item><title><![CDATA[Reply to Abfragen in schleife on Tue, 28 Nov 2006 18:44:48 GMT]]></title><description><![CDATA[<p>da faellt mir ein einfall ein</p>
<p>ein struct mit nem array</p>
<pre><code class="language-cpp">static const struct
{
    CButton cbCheckbox;
    UINT uiItemID;
    UINT uiItemString;
}items[]=
{				
    m_One,    IDC_CBONE,    IDS_ONE,
    m_Two,    IDC_CBTWO,    IDS_TWO,
    m_three,  IDC_CBTHREE,  IDS_THREE,
};
const int iSize = sizeof(items) / sizeof(items[0]);
</code></pre>
<p>und dann mit einer schleife die creates aufrufen, die strings und weiss der geier, kann das array ja erweitern<br />
was haltet ihr von dieser idee ?</p>
<pre><code class="language-cpp">CString csText = _T(&quot;&quot;);
for(int i=0; i&lt;iSize; i++)
{
    csText.LoadString(items[i].uiItemString);
    items[i].cbCheckbox.Create(csText, CBSTYLES, rect, this, items[i].uiItemID)
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1183306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183306</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 28 Nov 2006 18:44:48 GMT</pubDate></item><item><title><![CDATA[Reply to Abfragen in schleife on Wed, 29 Nov 2006 07:56:15 GMT]]></title><description><![CDATA[<p>hmm - funzt doch irgendwie nicht so wie ich das moechte - mein problem is es in die View klasse zu kapseln /=</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183553</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 29 Nov 2006 07:56:15 GMT</pubDate></item><item><title><![CDATA[Reply to Abfragen in schleife on Wed, 29 Nov 2006 07:57:39 GMT]]></title><description><![CDATA[<p>Sag mal genauer, was nicht klappt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183554</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183554</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Wed, 29 Nov 2006 07:57:39 GMT</pubDate></item><item><title><![CDATA[Reply to Abfragen in schleife on Wed, 29 Nov 2006 07:58:36 GMT]]></title><description><![CDATA[<p>Eventuell solltest du anstelle von Kopien deiner CButtons lieber Referenzen oder Zeiger darauf in das Array packen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183556</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 29 Nov 2006 07:58:36 GMT</pubDate></item><item><title><![CDATA[Reply to Abfragen in schleife on Wed, 29 Nov 2006 08:02:39 GMT]]></title><description><![CDATA[<p>estartu schrieb:</p>
<blockquote>
<p>Sag mal genauer, was nicht klappt.</p>
</blockquote>
<p>die deklaration und initialation des ganzen</p>
<p>wenn ich nur</p>
<pre><code class="language-cpp">static const struct
{
    CButton m_Button;
    UINT m_CBId;
    UINT m_CBName;
}m_sCheckBoxes[];
</code></pre>
<p>in der klasse deklarier - meckert er wegen der leeren klammer [] aber auhc wenn ich da einen festen wert eintrag kann ich im konstruktor keine werte zuweisen /=</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183558</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 29 Nov 2006 08:02:39 GMT</pubDate></item><item><title><![CDATA[Reply to Abfragen in schleife on Wed, 29 Nov 2006 08:12:54 GMT]]></title><description><![CDATA[<p>Erstens ist es vermutlich nicht erwünscht, das Array statisch zu machen (außer du bist dir sicher, nur eine Instanz der Klasse anzulegen).</p>
<p>Zweitens initialisiert man statische Elemente nicht im Konstruktor, sondern seperat:</p>
<pre><code class="language-cpp">class View
{
  static const struct Button_data
  {
    CButton m_Button;
    UINT m_CBId;
    UINT m_CBName;
  }m_sCheckBoxes[];
  ...
}

const struct View::Button_data View::m_sCheckBoxes = {...};
</code></pre>
<p>(wenn du das Array nicht-statisch machst, müsstest du es in einer Schleife im Ctor befüllen)</p>
<p>Drittens solltest du mal über meinen letzten Beitrag nachdenken. In deinem Array landen <strong>Kopien</strong> der Membervariablen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183566</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 29 Nov 2006 08:12:54 GMT</pubDate></item><item><title><![CDATA[Reply to Abfragen in schleife on Wed, 29 Nov 2006 08:24:39 GMT]]></title><description><![CDATA[<p>ich weiss, wenn die buttons vorher shcon in der klasse deklariert wurden - nur ich moechte das die buttons NUR in der struct deklariert werden</p>
<p>deinen beispielcode kann cih ne ganz nachvollziehen</p>
<pre><code class="language-cpp">static const struct Button_data
{
    CButton m_Button;
    UINT m_CBId;
    UINT m_CBName;
}m_sCheckBoxes[];
</code></pre>
<p>in der klasse ist klar, aber die zuweisungen funktionieren nie</p>
<pre><code class="language-cpp">const struct CFR2View::Button_data CFR2View::m_sCheckBoxes =
{
</code></pre>
<p>= 'm_sCheckBoxes' : redefinition; different type modifiers</p>
<p>hab auch schon andere varianten probiert<br />
{die zeile hab ich global in der dazugehoerigen cpp datei direkt nach dem konstruktor}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183571</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 29 Nov 2006 08:24:39 GMT</pubDate></item><item><title><![CDATA[Reply to Abfragen in schleife on Wed, 29 Nov 2006 08:39:06 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class View
{
    static const struct Button_data
    {
        CButton &amp;m_Button;
        UINT m_CBId;
        UINT m_CBName;
    };
};
const struct View::Button_data m_sCheckBoxes[] =
{
    View::m_One, ID_ONE, IDS_ONE,
    View::m_Two, ID_TWO, IDS_TWO,
    View::m_Three, ID_THREE, IDS_THREE,
};
</code></pre>
<p>nun sagt er &quot;unresolved external symbol&quot; fuer jeden button ?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183585</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 29 Nov 2006 08:39:06 GMT</pubDate></item><item><title><![CDATA[Reply to Abfragen in schleife on Wed, 29 Nov 2006 08:39:10 GMT]]></title><description><![CDATA[<p>Mr Evil schrieb:</p>
<blockquote>
<p>ich weiss, wenn die buttons vorher shcon in der klasse deklariert wurden - nur ich moechte das die buttons NUR in der struct deklariert werden</p>
</blockquote>
<p>Dann solltest du vermutlich nur das Array als nichtstatisches Element der Klasse anlegen (und alle Vorkommen von m_One etc durch m_sCheckBoxes[x].m_Button im Quelltext ersetzen<sup>*</sup>).</p>
<blockquote>
<p>deinen beispielcode kann cih ne ganz nachvollziehen</p>
</blockquote>
<p>Sorry, mein Fehler - ans Ende der Definition sollten auch die Array-Klammern []</p>
<p><sup>*</sup> Oder du setzt ein paar #defines dafür unter die Klassendeklaration:</p>
<pre><code class="language-cpp">#define m_One m_sCheckBoxes[0].m_Button;
#define m_Two m_sCheckBoxes[1].m_Button;
...
</code></pre>
<p>Aber in Zusammenarbeit mit dem Klassenassistenten solltest du lieber die Buttons so lassen und in deinem Array drauf verweisen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183586</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 29 Nov 2006 08:39:10 GMT</pubDate></item><item><title><![CDATA[Reply to Abfragen in schleife on Wed, 29 Nov 2006 09:12:36 GMT]]></title><description><![CDATA[<p>die einzigste deklaration in der schleife funzt auch nicht</p>
<pre><code class="language-cpp">class View
{
    struct Button_data
    {
        CButton m_Button;
        UINT m_CBId;
        UINT m_CBName;
    };
};
struct View::Button_data m_sCheckBoxes[] =
{
    CButton m_One, ID_ONE, IDS_ONE,
    CButton m_Two, ID_TWO, IDS_TWO,
    CButton m_Three, ID_THREE, IDS_THREE,
};
</code></pre>
<p>= 'CButton' : illegal use of this type as an expression<br />
ohne m_One usw sagt er selbstverstaendlich das er m_One usw nicht kennt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183616</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 29 Nov 2006 09:12:36 GMT</pubDate></item><item><title><![CDATA[Reply to Abfragen in schleife on Wed, 29 Nov 2006 09:20:32 GMT]]></title><description><![CDATA[<p>Man kann keine statische liste (denn m_sCheckBoxes ist static) mit membern eines nicht statischen Objektes initialisieren! Wie sl das gehen. Jedes View Objekt hat doch seine eigenen Member m_one... etc.</p>
<p>Warum überhaupt die m_one, m_two Variablen verwenden?<br />
Einfach nur die ID in den Array und in der Schleife GetDlgCtrl verwenden und den cast auf CButton*. Wenn die Items noch per Create erzeugt werden müssen dann eben einen Array von Buttons definieren und nur den Index verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183621</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 29 Nov 2006 09:20:32 GMT</pubDate></item><item><title><![CDATA[Reply to Abfragen in schleife on Wed, 29 Nov 2006 09:29:17 GMT]]></title><description><![CDATA[<p>Ja, innerhalb des Arrays brauchst du auch die Bezeichner nicht mehr. Schließlich sprichst du die Buttons dort über ihren Index an.</p>
<p>PS: Übrigens ist es imho nichtmal nötig, die Buttons selber in dem Array einzulagern - du hast dort die IDs und kannst dir per GetDlgItem() die zugehörigen Buttons besorgen:</p>
<pre><code class="language-cpp">struct Button_Data
{
  UINT m_ID;
  UINT m_Name;
};

Button_Data Buttons[] = {...};

...
for(int i=0;i&lt;/*Größe des Arrays*/;++i)
{
  iCfg = dynamic_cast&lt;CButton*&gt;(pView-&gt;GetDlgItem(Buttons[i].m_ID))-&gt;GetCheck();
  csBuffer.Format(_T(&quot;%d&quot;),iCfg);
  csName.LoadString(Buttons[i].m_Name);
  WritePrivateProfileString(_T(&quot;CheckBoxes&quot;),csName,csBuffer,path);
}
</code></pre>
<p>WritePrivateProfileInt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183630</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 29 Nov 2006 09:29:17 GMT</pubDate></item><item><title><![CDATA[Reply to Abfragen in schleife on Wed, 29 Nov 2006 09:43:07 GMT]]></title><description><![CDATA[<p>also das hab ich bisher</p>
<p>in der klasse</p>
<pre><code class="language-cpp">class CView
{
    CButton m_One;
    CButton m_Two;
    CButton m_Three;

    struct Button_data
    {
        CButton &amp;m_Button;
        UINT m_CBId;
        UINT m_CBName;
    };
    int m_iSize;
</code></pre>
<p>und in der OnCreate funktion</p>
<pre><code class="language-cpp">int CView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    Button_data m_sCheckBoxes[] =
    {
        m_One,   ID_ONE,   IDS_ONE,
        m_Two,   ID_TWO,   IDS_TWO,
        m_THREE, ID_THREE, IDS_THREE,
    };
    m_iSize = sizeof(m_sCheckBoxes) / sizeof(m_sCheckBoxes[0]);

    for(int i=0; i&lt;m_iSize; i++)
    {
        m_sCheckBoxes[i].m_Button.Create(m_cLocalization.LoadLocalizedString(m_sCheckBoxes[i].m_CBName), CBSTYLES, rect, this, m_sCheckBoxes[i].m_CBId);
    }
}
</code></pre>
<p>so funzt alles - das Create wirft brav 1 zurueck - was mich aber stoert ist das diese struktur nur lokal bekannt ist - sobald ich es bekannt machen will das ich es in allen moeglichen funktionen benutzen kann bekomm ich probleme }=</p>
<p>danke fuer die gute hilfe {=</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183645</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 29 Nov 2006 09:43:07 GMT</pubDate></item><item><title><![CDATA[Reply to Abfragen in schleife on Wed, 29 Nov 2006 12:02:31 GMT]]></title><description><![CDATA[<p>mein gedanke war, die zuweisung in eine eigene funktion auszulagern, da hab ich aber dann auch ein problem</p>
<p>global zuweisen geht nicht, wenn ich es in eine funktion auslager brauch ich noch eine ziel variable, da weiss ich nicht wie ich die anleg</p>
<p>ps. wenn ich das mit den GetDlgItem mach wirfts immer eine exception, vermutlich weil das objekt noch nicht mit create erstellt wurde, und genau das moechte ich ja auch machen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183717</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 29 Nov 2006 12:02:31 GMT</pubDate></item></channel></rss>