I h8 Pointer! Combo in View aus Set füllen



  • Hi Leute (besonders Estartu_de)

    Ich habe in einer View-Klasse eine Combobox die ich über eine selbst geschriebene load() Fkt fülle.
    Jetzt will ich diese load-Fkt aber in meiner Recordset-Klasse implementieren, da ich gemerkt habe, dass ich ja auch aus anderen Viewklassen darauf zugreifen will. Allerdings werden mir es zu viele Pointer in zuviele Richtungen und ich weiß gar nicht mehr was Pointer sein muss und was nicht. Ich hab es jetzt mal runtergebrochen auf ein kleineres Problem, dazu erst mal Code:

    bool CDokumentenVerwaltungSet::loadPCD(CString Combo)
    {
    	short index=0;
    	CDBVariant varValue;
    	MoveFirst();
    	while (!IsEOF())
    	{
    		GetFieldValue( index, varValue );
    		//Merken, an welche Position es geschrieben wird (wegen evtl. Sortieren oder so) 
    		int nIdx = m_PCD_CMB.AddString(*(varValue.m_pstring));
    		m_PCD_CMB.SetItemData(nIdx,m_ID); 
    		MoveNext();
    	}
    		if (IsEOF())
    		{
    			MoveFirst();
    		}
    }
    

    So m_PCD_CMB ist hier ja nicht Definiert, ist aber auch egal weil da will ich jetzt variabel die Combo der Aufrufenden Klasse haben. Wahrscheinlich über den Übergabe Parameter. Wie bekomme ich denn sowas hin?

    @ Estartu_de danke nochmal für den Tip mit dem Auslagern in die Set Klasse hat mich heute schon sehr viel weiter gebracht.



  • Bitteschön. 🙂

    Versuchs mal mit CComboBox& als Parametertyp. 🙂
    Dann hast du auch keinen Pointer, der Fehler machen könnte. 😃



  • ja wie? Für meine Combobox als Typ einfach CCombobox& und dann als Übergabewert dann einfach die member übergeben?? Hääää???



  • sorry Doppelpost 🤡

    an der falschen Stelle F5 gedrückt 🙂 😃



  • Hastes schon so probiert? 🙄
    Mach doch mal - mehr Mut zum Risiko, das explodiert schon nicht. 🤡



  • Boa scheiße ich könnte dich schon wieder knutschen!
    😃 😃 😃 😃 😃
    Des geht ja einwandfrei! Ich hatte erst gar nciht verstanden was du meintest, dann hab ich mir gedanken gemacht und probiert und jetzt gehts!! 😃 😃
    Mein Code schaut jetzt so aus:

    void CDokumentenVerwaltungSet::loadPCD(CComboBox& Combo)
    {
    	short index=0;
    	CDBVariant varValue;
    	MoveFirst();
    	while (!IsEOF())
    	{
    		GetFieldValue( index, varValue );
    		//Merken, an welche Position es geschrieben wird (wegen evtl. Sortieren oder so) 
    		int nIdx = Combo.AddString(*(varValue.m_pstring));
    		Combo.SetItemData(nIdx,m_ID); 
    		MoveNext();
    	}
    }
    

    🙂 hast du das so gemeint??



  • Exakt so meinte ich. 👍

    So kannst du übrigens mit allen Controls verfahren. Ist auch sehr praktisch, wenn man einer Set-Funktion nur noch das Control gibt. 😃
    Spart Konvertiererei, ich mache das gerne bei DateTimePickern.

    🙂



  • Klasse! 😃 👍

    Um dazu noch einen dummen Spruch in die Runde zu werfen,

    "Me ka so alt wöre wie e Kuh, me lernt immer no dezu!"
    [Man kann so alt werden wie ne Kuh, man lernt immer noch dazu!]
    Das war badisch!


Anmelden zum Antworten