scoop überschreiten
-
Hallo Leute!
Folgendes... : Ich habe eine Variable und zwei Blöcke. Die Variable ist außerhalb der beiden Blöcke und einer davon soll dann die Variable füllen. Klingt ein wenig schief, aber ich denke am Bsp. wird es klar:string derString; //Block A: { //Soll nun den String füllen derString = "ABC"; } //Block B: { if(derString == "ABC"){ [...] } }
Wie schaffe ich nun, dass die Definition von Block A auch in Block B wirksam wird ?
Hoffe mir kann jemand helfen! MFG:
n()()bi
-
Hallo
solange Block B nach Block A ausgeführt wird wird, geht es genau so wie du es geschrieben hast.
bis bald
akari
-
Sie liegen beide in einer Schleife, die folgendermaßen aussieht:
string derString; //Block A: { if(derString != "ABC){ derString = "ABC"; } } //Block B: { if(derString == "ABC"){ [...] } }
Dabei wird Block A immer bei einer bestimmten Aktion - in dem Fall wäre es eine MouseBewegung - ausgeführt. Ist für n Win-API Programm geschrieben, doch es ist ja ein eher allgemeines Problem! Ich hoffe du verstehst was ich meine ?! MFG:
n()()bi
-
spricht etwas gegen dieses konstrukt?
{ derstring= "ABC"; //Block A { } //Block B { } }
-
Ja, das ist ja mein Problem ! Der String muss in Block A gefüllt werden, sind mehrere Schleifen in diesen Block vorhanden, nur ich wollte diese nicht alle abschreiben, da sie nicht wichtig für diese Überschreitung sind! Eig. benötige ich nur das Prinzip, um diese Aktion durchzuführen ...
ThX schon einmal für die Hilfe!
n()()bi
-
n()()bi schrieb:
Eig. benötige ich nur das Prinzip, um diese Aktion durchzuführen ...
Das Prinzip steht in deinem ersten Beitrag.
Entweder lieferst du ein Beispiel, das das Verhalten reproduziert, oder du zeigst den echten Code. Ansonsten können wir dir nicht helfen.
-
n()()bi schrieb:
Wie schaffe ich nun, dass die Definition von Block A auch in Block B wirksam wird ?
Indem du den Code von Block A in eine Funktion auslagerst (mit String Parameter - natürlich als Referenz) und diese Funktion überall aufrufst, wo du sie brauchst?
-
Ist dein Code so?
int Prog::Funktion(MSG* pMsg) { CString mama; if(pMsg->msg == VK_ESCAPE) mama = "ABC"; else if(pMsg->msg == VK_ENTER) if(mama == "ABC") rockMe(twice); }
Falls du das so meinst, dann könnte es klappen, dass du vor das so schreibst:
int Prog::Funktion(MSG* pMsg) { static CString mama; if(pMsg->msg == VK_ESCAPE) mama = "ABC"; else if(pMsg->msg == VK_ENTER) if(mama == "ABC") rockMe(twice); }