variable weitergeben
-
sorry,
aber irgendwie steh ich auf dem schlauch....
kann das sein das setText eigentlich setString heissen sollte????
ist eigentlich auch egal es zeigt mir immer einen fehler an ....
-
Der Funktionsname ist total egal, ich wusste ja nicht, wie die Funktion bei dir heisst.
Was für ein Fehler?
-
so ganz komisch
kein normaler, hab leider alles raus gelöscht sonst würde ich es dir sagen können.
wenn ich das richtig verstanden hab erstelle ich zweimal die funktion setString, einmal in in der zweiten und einmal in der dritten klassé/fenster.
so dann hab ich die Variablen file_name schicke ich mit
m_...dlg.SetString(file_name) an die funktion setString dort ist die hilfs Variable strfile_name, so und dann muss ich ja das ganze ans dritte fenster weiter schicken
usw.
kann das sein das es einfacher geht wenn ich eine neue klasse erstelle und auf diese dann immer zugreife....
-
Also, du scheinst meine Erklärung verstanden zu haben.

Natürlich geht es auch anders, viele Wege führen nach Rom.

Du könntest eine Variable in der von CWinApp abgeleiteten Klasse anlegen, dir mit AfxGetApp einen Zeiger auf die holen und dann da speichern und abfragen. Das ist auch ein Weg - ich würde ihn nicht gehen wollen. Geschmackssache.
Es gibt noch andere Möglichkeiten, aber nach DEN Verständigungsschwierigkeiten wäre es zuviel...
Tipp für's nächste Mal: Beschreibe genauer, welche Klasse welche aufruft und wie der Ablauf gedacht ist. (In dem Stil: Ich gebe in Klasse Bla den Text ein, Klasse soundo fragt den ab, ruft Klasse laber auf und die ruft dann Klasse sülz auf, wo das verarbeitet werden soll.)
Viel Erfolg noch

-
hallo,
steh bei der neuen klasse schon vor einem rätsel....
daher war es wahrscheinlich keine so gute idee.
aber vielleicht kannst du ja helfen was gibt es den ausser CObjekt für klassen für den typ???
Die mag er glaub ich nicht, zumindest bei mir nicht:error C2504: 'CObjekt' : Basisklasse undefiniert
und wie definier ich sie????
-
*hüstel*
Meinst du vielleicht CObject?

(Man beachte das c statt dem k)
-
ich habe es so und so geschrieben aber jedesmal gibt es einen fehler...
ist das den die richtige klasse (CObject) oder gibt es da noch andere besser geeignete??
dann muss ich doch im prinzip nur einer variablen den inhalt von file_name übergeben und auf die kann ich dann zugreifen, oder muss ich noch eine varible haben???
-
So langsam hat mich die Blondseuche erwischt, ich versteh dich einfach nicht mehr. Wenn du dein Preoblem nicht mal in klaren Worten beschreibst, gebe ich auf.
-
Das problem ist das ich nichts geregelt bekomme...
ich bekomme es einfach nicht gebacken, nach deinen vorgaben eine variable,klasse ect zu erstellen.Alles was ich möchte ist ein kurzer einfacher weg eine varible vom typ cstring zwei dialogfelder weiter zuschicken, sei es nun über eine extra klasse oder sonst wie.
ich habe das jetzt schon einpaar mal probiert mit dem setstring von dir aber das klapp gar nicht.
Ich bin wahrscheinlich einfach nur zu rein blond
-
estartu_de schrieb:
Du könntest eine Variable in der von CWinApp abgeleiteten Klasse anlegen, dir mit AfxGetApp einen Zeiger auf die holen und dann da speichern und abfragen. Das ist auch ein Weg - ich würde ihn nicht gehen wollen. Geschmackssache.
wie mach ich das genau
member -funktion vom typ Cwinapp, deklaration afxgetapp???
oder wie ????
-
Pass mal auf, ich bin auch blond und finde deine Bemerkung irgendwie nicht wirklich witzig - sie ist eine Ausrede.
Guck doch mal in die MSDN, AfxGetApp ist ein Befehl, den du dort findest.
-
entschuldigung, war eigentlich nicht böse oder so gemeint...
darunter steht in der msdn:
AfxGetApp
CWinApp* AfxGetApp( );Return Value
A pointer to the single CWinApp object for the application.
Remarks
The pointer returned by this function can be used to access application information such as the main message-dispatch code or the topmost window
aber mehr nicht,....
-
Okay, schon verziehen...
Du hast also die Hilfe gelesen, aber nicht verstanden.
Also, du kriegst da einen Zeiger auf ein CWinApp Objekt. Den musst du auf dein App-Objekt casten und dann kannst du auf dessen Member zugreifen.
Du musst also in etwa folgendes machen:
In deiner von CWinApp abgeleiteten Klasse (ich nenne sie ab jetzt CMyApp) erstellst du eine neue Variable (Typ CString, ich nenne sie hier m_strText) die public ist (um Arbeit zu sparen - solltest du irgendwann besser machen).
Der Zugriff von aussen funktionier dann wie folgt:
CMyApp* pApp = dynamic_cast<CMyApp*>(AfxGetApp()); ASSERT(pApp); if (pApp) { pApp->m_strText = "Beispieltext"; // Reinschreiben CString strTemp = pApp->m_strText; // Auslesen }Unbekannte Befehle schlag bitte zuerst in der MSDN nach.
-
hallo,
danke das du mir hilfst, aber irgendwie komme ich mit deiner hilfe nicht weiter.... ich bin daran gewöhnt schritt für schritt alles gesagt zu bekommen (Buch: Visual c++ 6 in 21 Tagen), daher komm ich nicht mit was ich machen soll. ich hab eine abgeleitete klasse von winapp, woher kommt die ....????
Ausserdem wohin mit diesem teil von code den du gepostet hast.
ich bekomme eine warnung und das prog lässt sich schon gar nicht mehr öffnen...
-
Also, ich bin kein Buch - du musst dir einen Teil der Infos aus deinem Wissen holen, das du mit dem Durcharbeiten des Buches erworben haben solltest. Das setze ich als selbstverständlich voraus. Eine Funktion erstellen ist Grundlagenwissen.
Der Code muss da hin, wo du auf die Variable zugreifen willst - wo das ist, weisst nur du.
Die Klasse wird automatisch mit deinem Projekt erstellt. Wenn dein Projekt Test heisst, heisst die Klasse CTestApp.
Guck dir mal das Tutorial an, ist SEHR zu empfehlen: http://www.henkessoft.de/
Ansonsten solltest du mal die Tutorialecke dieser Seite durchforsten: http://www.c-plusplus.net/tutorials.htm
Tja, eigentlich kann ich nur noch feststellen - Visual C++ 6 in 21 Tagen ist so schlecht als Lehrbuch wie ich es immer fand. Deswegen habe ich es bis heute nicht und noch nie gebraucht

Wenn du gut Englisch kannst, solltest du dir das Buch "Programming Windows with MFC" von Jeff Prosise zulegen (Gilt in gewissen Kreisen als Bibel für VC++). Das finde ich klasse und der fängt mit kleinen, einfachen Progrämmchen an, aber Vorsicht, der geht schnell in die Vollen. Du solltest dich aber vorher oder nebenher mit den Grundlagen von C++ befassen (Was ist eine Klasse? Was sind Member? Vererbung, Objektorientierung). Das Buch gab es mal auf Deutsch, ist leider kaum noch zu kriegen (Windowsprogrammierung mit MFC).
-
danke
ich werde in den tutorials mal vorbei schauen.
das Problem an diesem doofen buch ... in 21 Tagen ist, das alles nur ein wenig angeschnitten wird aber wenn man dann was richtiges macht findet man in dem buch nur schrott. Ich sag nur verkettet liste
für eine sdi anwendung steht sie drin, aber für dialogbasiert steht einfach nur die anmerkung das irgendeinteil selbst per hand erstellt werden muss, hallo... wäre es nicht interessanter das zumachen und nicht sich mit anderen mist sich rumzuärgern.aber noch was ich erstelle eine neue klasse mit der endung app richtig???
ich hab ein mit dlg endung hängt vielleicht schon daran ??
ich erstelle jetzt noch eine neue klasse mit endung app,...
mal sehen wie wweit ich heute dann noch komme.
-
NEIN!
Keine neue Klasse erstellen!!!!
Du hast die schon. Guck mal deine KLassennamen durch.
Du hast eine Dialogbasierte Anwendung erstellt, dann hast du eine Klasse, wo in der Funktion InitInstance() dein Dialog geöffnet wird.
Arbeite doch mal mit den Befehl Bearbeiten->"Suchen in Dateien". Da gibst du mal "InitInstance" ein.
In den Suchergebnissen sollte dann etwas wie
virtual BOOL InitInstance();
BOOL CTestApp::InitInstance()zu finden sein.
Die obere Zeile ist in der .h Datei der gesuchten Klasse und die untere ist in der cpp Datei. Nun solltest du dadurch herausgefunden haben, wie deine Applikationsklasse heisst (hier: CTestApp). In die kannst du jetzt per "Membervariable hinzufügen" die Variable einbauen.
War das verständlich?

-
OK, trotz Fehlermeldung gespeichert - ups.
-
@ estartu_de
Ich bewundere Deine Geduld!
-
Danke

Zum Teil ist das Trotz und Hartnäckigkeit.

Naja, mal ehrlich: Ich war vor zwei Jahren nicht viel besser und habe andere Leute zum Verzweifeln gebracht.

Ohne die wäre ich heute deutlich schlechter dran.
Ich habe diesen Job, weil ich gerne Probleme löse - und in diesem Fall ist blondys Unwissenheit mein Problem.
Ja, das kann man auch bei Blondinen lösen. :p
Es wäre aber einfacher, wenn man nebeneinander sitzen würde.