CString in Dialog übergeben !



  • Hallo,

    ich habe hier folgenden CString:

    CString Spalten[25][2];

    So diesen CString möchte ich nun in einen Dialog übergeben bevor ich ihn aufrufe, die frage ist nur wie ??

    Ich habe mir gedacht ich bastele mir eine Set Funktion um die Adresse des Arrays im Speicher zu übergeben:

    CString * Spalten[25][2];
    	void SetSpalten(CString * spalten[25][2]) {Spalten = spalten}
    

    Das funst aber leider nicht.

    Kann mir bei dem Problem einer weiterhelfen ?

    Danke Coolsero



  • Coolsero schrieb:

    Hallo,

    ich habe hier folgenden CString:

    CString Spalten[25][2];

    Das ist kein einzelner CString, sondern ein zweidimensionales Array von insgesamt 50 CString's 😉 (die müsstest du notfalls in einer Schleife kopieren)
    Was hast du denn eigentlich mit diesem "Paket" vor?



  • Hallo CStoll,

    es geht um folgendes:

    Ich lese aus einer Datenbank Text aus, und zwar 25 Texte die sollen in einem CString sein also CString Spalten[25]. So nun möchte ich aber noch zu jedem Text mir merken in welcher Spalte er anfängt und diese Infos wollte ich dann im zweiten teil Speichern ! Ist nicht wirklich glücklich oder ?

    Was hätte ich sonst für Möglichkeiten ? Weil ich muss die ganzen Infos dann in der InInitDialog Funktion eines Dialoges zur Verfügung haben!

    Danke Coolsero



  • Hallo,

    Selbst wenn ich nun Sage ich speicher mir die Spalte in der der Text steht in einem int Array und habe dann nur noch einen:

    CString * Spalten[25];
    	void SetSpalten(CString * spalten[25]) {Spalten = spalten}
    

    Das ganze funst leider auch nicht !

    Gruß Coolsero



  • Du solltest "CStringArray" verwenden...



  • Klar hast du dort alle deine Strings hintereinander - du mußt nur wissen, wie du darauf zugreifen willst:

    //Dialog-Klasse:
    CString* m_Spalten[25];
    void setSpalten(CString*sp[25]) { m_Spalten=sp; }
    
    void OnWhatever()
    {
      int rw=.../*0 oder 1*/,cl=.../*0 bis 24*/
      CString value=m_Spalten[rw][cl];
      ...//arbeite mit value
    }
    
    //Verwendung:
    static CString Spalten[25][2]=...;
    m_dlg.setSpalten(Spalten);
    

    (PS: Es kann sein, daß ich mit der Index-Reihenfolge durcheinandergekommen bin)

    Edit: Jochens Vorschlag ist ntürlich noch besser 😉


Anmelden zum Antworten