Dialog



  • 1. Muss "str" davor? <- Nee, eigentlich nicht, ich mach es immer, weil es ein string ist, und ein "i" bei int, usw...

    2. jo.strMemo = strMemo; -> Damit werden die Daten übergegeben? <- Jo, genau!

    OK, danke. Muss ich die Variable dann in dem anderen Dialog (also
    in dessen Klasse neu anlegen, oder wird die direkt miterstellt
    beim Übergeben? <- Kein Problemm, klar muß die variable vorhanden sein! Und zwar bei "public"!



  • die Variable muss Puclic sein, oder wie?
    Wie mach ich die Memo-Variable denn Public im Klassenassistenten?



  • Soweit ich weiß, kann ich Public/Privat nur auswählen, wenn ich die Member-Variablen über das Kontextmenü im Arbeitsbereich auf Klassen erstelle. Dann würde allerdings keine direkte Verbindung zu dem Memofeld bestehen, so dass ich (ich denk jetzt mal laut...) eine weitere Member-Variablen mit dem Klassenassistenten deklariere, welche den Wert von der zuvor erstellten Member-Variablen annimmt. Dann eine Funktion, die automatisch diesen Wert in das Memofeld einträgt. Das war's. ??? Geht das so?

    Und die Member-Variablen die ich im Arbeitsbereich (da im Kontextmenü) erstellt habe, müsste ich dann auch mit der oben angesprochenen Funktien (jo.Member-Variablen) ansprechen um die Daten zu übermitteln?

    😉
    Nico



  • Ähm, HÄ?????
    Was ist los???

    Ok, bitte 12487 Gänge zurückschalten, du denkst viel zu kompliziert.

    Du öffnest einfach die h-Datei von deinem Dialog und legst da eine neue Membervariable in den Classenteil an. Und zwar unter dem wort public.

    Am besen sowas hier:

    ...
    public:
    ...
    
    CString m_strMemo;
    
    ...
    


  • ooops... Man lernt nie aus. 😉 Besonders mit 15 nicht...

    Okay. Muss ich "public" irgendwie schließen?

    Wie ist es mit dem Rest den ich geschrieben habe? In Ordnung? 🙂



  • Hmm, gute frage, ich versuche immernoch meinen Kopf aus diese extremen Textschlinge zu befreien... 🙂

    Also wenn du schon ein Edit-Feld mit der Dazugehörigen CString Membervariable in diesem dialog hast, in welches du das Memo eintragen willst, kannst du natürlich auch das Benutzen...



  • aber die Member-Variablen für das Textfeld ist natürlich nicht public... ...Die muss ich dann mit der publishen verinden. Richtig?



  • Ach so, und public mußt du nicht wieder schliesen, es sei den du willst danach noch protected oder private - Variablen haben, dann schreibst du halt die schlüsselwörter dahin...



  • Hmm, ja bei showdialog oder initdialog, weis nicht genau wo es bei dir am besten ist... kannst du nicht einfach die Membervariable ins public setzen?



  • ok, dass neue Fenster zu öffnen, habe ich jetzt drauf 😉

    Jetzt mach ich mich an die Member-Variablen!



  • jetzt habe ich das Memo (RichEdit)-Feld eingefügt und plötzlich öffnet sich das Dialogfeld nicht mehr. Zur Überprüfung ob es wirklich daran liegt, habe ich es kurzer Hand entfernt und jetzt läufts wieder...
    Was ist das denn jetzt schon wieder?



  • Wieso nimmst du ein Richedit? Nimm doch einfach ein Multiline Edit.



  • also ein mehrzeiliges (einfaches) Eingabefeld?



  • Jep, ein engabefeld, in dessen Propherties du multiline setzt.



  • Hallo, okay - soweit funktioniert jetzt alles. Jetzt werde ich mich an das Problem mit den Variabeln begeben:

    CString <- Eingaben
    <- weitere Text

    Ich möchte die Eingaben in einen Längeren Text (HTML/PHP-Code) einbauen. Wenn ich Zeilenumbrüche in der deklaration eines CStrings mache, mäkelt er allerdings. Wie kann ich so lange Texte dort einbetten und meine Variabeln reinpacken (in PHP würde das etwa so aussehen:

    $var "blablabla
    
    blablablablabla
    
    .$x blablablabla
    
    blablabla .$y ";
    


  • Guten Nabend,

    ich bin schon wieder ein gutes Stück weiter, verstehe jedoch nicht, warum mein öffentliche Membervariable nicht funktioniert:

    In der Header-Datei des Startdialoges habe ich einfach mal in der Klasse folgenden Eintrag vorgenommen, da ich nicht wusste wo genau hin damit, müsste aber doch eigentlich gehen:

    public:
         CString m_code;
    

    In dem anderen Dialog (!!!) habe ich dann folgendes versucht:

    MessageBox(m_code);
    

    Keine Fehlermeldung für die Deklaration der öffentlichen Variabel. Von der Klasse aus kann ich auch auf sie zugreifen, aber nicht vom anderen Dialogfeld, also der anderen Klasse aus.

    Wo liegt der Fehler, bzw. was habe ich bei der Deklaration nicht beachtet?

    Gute 8
    Nico



  • @NetRider:
    Ich würde dir empfehlen da du dieses Buch hier mal liest, das beschäftigt sich mit all den Problemen die du hier schon geschildert hast und bietet einen sehr guten Einstieg in MFC!

    http://www.mut.de/media/buecher/VCPLUS6/data/start.htm



  • Guten Morgen,

    danke - das Buch nutze ich eigentlich ständig 🙂
    Na ja, man übersieht auch schon mal was 😉

    Werd jetzt nachschauen...

    Nico



  • Ich hab jetzt in verschiedenen Tutorials und Referenzen nachgelesen, aber nichts zu meinem Problem gefunden.

    Ferner habe ich noch eimal rumgebastelt - es müsste so doch richtig sein...

    In der Header-Datei des **Standarddialoges die public Member-Variable definiert und in der gleichen Klasse, also in dem Dialog, in einer Funktion der Variabel einen Wert verpasst.

    Von dem anderen Dialog aus muss ich dann doch die Variabel sehen können!? "Nichtdeklarierter Bezeichner" kommt jedoch...

    Nico**



  • Hmm, wenn ich dir richtig verstehe, dann versuchst du auf eine Membervariable einer Fremden Klasse zuzugreifen, das geht nicht so einfach.

    1. Auf klassenmember greift man so zu: Klassenname.Member
    oder wenn der klassenaame ein Pointer ist: Klassenname->Member

    2. Die klasse muß bekannt sein. Die variable muß public sein.

    3. Eine child-klasse kennt Ihre Vaterklasse nicht. Es sei denn, die Vaterklasse übergibt der childklasse einen pointer von sich (this).

    So, jetzt überleg was auf dich zutrifft.


Anmelden zum Antworten