mehrere MouseMove Funktionen...



  • Hallo
    Das Forum gefällt mir 😃
    mein Problem ist: wir müssen ein Programm im GUI schreiben: Heisser Draht...
    am Besten hier ein Bild: http://darkman89.da.funpic.de/
    also wenn ich einfach auf das Draht gehe muss eine Messagebox erscheinen:

    MessageBox(Handle, "Hey, hey...Erst über Start!!!Nicht Schummeln!!!", "Schummler Du!!", MB_ICONWARNING);

    das habe ich auch
    wenn man jedoch erst über das button mit dem Mauszeiger geht dann soll diese Nachricht nicht mehr erscheinen...da bleibe ich stehen 😕 😕
    Hoffe, dass ihr weiter helfen könnt

    Danke im Voraus!!



  • Du brauchst garnicht mehrere Funktionen, sondern nur eine, die das richtige tut. Wenn der benutzer start noch nicht besucht hat und das Teil betritt, dann ...

    Als Code:

    if(User hat Start noch nicht betreten)
    { MessageBox(Handle, "Hey, hey...Erst über Start!!!Nicht Schummeln!!!", "Schummler Du!!", MB_ICONWARNING);
    }
    

    Also machte ne feine Variable, in der Du Dir merkst, ob der User schon Start betreten hat oder nicht.



  • Falsches SubForum ... -> WinAPI ?! oder VCL ?! (Was ich eher denke 😉 )

    wenn man jedoch erst über das button mit dem Mauszeiger geht dann soll diese Nachricht nicht mehr erscheinen...da bleibe ich stehen 😕 😕
    Hoffe, dass ihr weiter helfen könnt

    Setze doch einfach ein Flag (Boolean) und 'merk' Dir darin, ob gedrückt wurde oder nicht. Auf den Zustand dieses Flags prüfst Du dann in deine Prozedur/deinem Message-Handler für die Mausbewegung 😉 .



  • So erstma sorry, dass es im falschen SubForum steht....
    hmm was ihr da schreibt kapiere ich nicht...wir haben mit GUI in der Schule erst vor 2 Wochen angefangen...
    Wie soll ich denn im If Verzweig schreiben
    User hat Start noch nicht betreten
    wo soll dieses if verzweig hin? - in MouseOver Funktion?

    Vielen Dank für so eine schnelle Antwort...Antworten 😃

    MfG
    Darkman89



  • Kann mir keiner mehr weiterhelfen :S



  • Was die meinen ist,dass du einen programminternen Schalter einbaust.

    Wenn Start gedrückt wurde,dann wird auch der programminterne Schalter aktiviert.

    bool Schalter = false;
    
    //Funktion wo Start gedrückt wurde
    //...
    
    Schalter = true;
    
    //...
    

    Und dann bei MouseMove

    if(!Schalter)
    { MessageBox(Handle, "Hey, hey...Erst über Start!!!Nicht Schummeln!!!", "Schummler Du!!", MB_ICONWARNING);
    }
    


  • KLASSISCHE state machine.

    States: anfang, auf_start, im_draht, im_ziel.
    Events: mit_start_kollidiert, mit_draht_kollidiert, mit_hintergrund_kollidiert, mit_ziel_kollidiert.
    (Man könnte die Events auch "maus über start", "maus über draht" etc. nennen - wenn sie z.B. andauernd geschossen werden auch wenn die maus keine Grenze überquert. Ändert aber auch nix an der grundsätzlichen Logik.)

    Die Implementierung sollte eigentlich einfach sein, und welche Events Transitions auslösen sollen, und was bei welchem State-Wechsel passieren soll sollte eigentlich jeder schnell rausbekommen (und ich will ja nicht alles vorbeten) 😉


Anmelden zum Antworten