Announcement

Collapse
No announcement yet.

Mouse Over

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mouse Over

    Hi,
    für mein programm wollte ich so eine saalplan machen:
    https://www.uci-kinowelt.de/kino/buc...&rand=59706320

    da hab ich die frage wie das geht ? mit welchem objekt am bestem und gibt es das ereigniss "OnMouseOver" ?
    soll halt n bild sein, und wenn ich über "unsichtbare" felder mit der maus gehe soll sich das bild ändern vom Image Objekt. hab also insgesamt 3 Bilder.

    Danke

    Gruß

  • #2
    Schau dir das ImageObjekt an und die Ereignisse-> diese hängen von der Builderversion ab, die du nutzt
    Christian

    Comment


    • #3
      sowas wie onmouseover gibts nicht, allerdings OnMouseMove, aber damit klappt das nicht richtig.kennst du vielleicht ne andere möglichkeit so etwas zu realisieren ?

      Comment


      • #4
        OnMouseEnter
        OnMouseOver
        OnMouseLeave

        die 3 sollten das abbilden können
        Christian

        Comment


        • #5
          bei mir hat das image objekt diese ereignisse leider nicht.
          nutze C++ Builder 5

          Comment


          • #6
            Dann musst du dir was anders überlegen, bsp

            hier wühlen http://www.torry.net/pages.php?id=20

            die Position des Bildes anhand der Screen- und Mauskoordinaten prüfen

            die Ereignisse selbst implementieren

            ....
            Christian

            Comment


            • #7
              sorry dafür bin ich noch zu newbie

              ich habs halt anders gemacht, mit ner GroupBox und 2 RadioButtons drin.
              Hab aber n kleines Prob.
              Bei dem Ereignis FormActivate der Form wo sich die Objekte halt befinden, hab ich gemacht dass das standard Bild geladen wird und die RadioButtons->Checked auf false gesetzt werden, wenn ich auf ein RadioButton klicke, kommt:
              Code:
              void __fastcall TFormSaal::RdBtnLogeClick(TObject *Sender)
              {
                String tmp;
                if(FileExists(kbdb.picloge))
                  ImageSaal->Picture->LoadFromFile(kbdb.picloge);
                else{
                  tmp=kbdb.picloge+" existiert nicht!";
                  Application->MessageBoxA(tmp.c_str(),"Achtung",MB_ICONWARNING);}
              }
              für den Button fürs parkett halt das selbe nur das andere bild, wenn ich dann was auswähle, zurück gehe zur Filmauswahl, wobei ich die FormSaal mit Close() schließe und dann nochma ein Film auswähle, wird ja FormActivate wieder aufgerufen wie ich es will, damit das Bild ja wieder auf standard gesetzt wird und die Buttons nicht gechecked, aber nachdem er das gemacht hat, löst er ein RadioButton Click Ereignis aus und ändert somit das Bild wieder und Checked den Button
              soll ich noch ein unsichtbaren radiobutton machen ? der dann gechecked wird ?

              EDIT: also das mit nem weiteren RadioButton funktioniert auch nicht...nur wenn ich in explizit auswähle.
              wenn ich sage bei FormActivate RdBtnClear->Checked=true;
              wird trotzdem hinterher wieder der radiobutton ausgewählt den ich am anfang ausgewählt habe, auch wenn ich diese Zeile beim zurück gehen einbaue, sprich wenn ich das Formular mit Close schließe und davor noch den btn checke, wird später wieder der alte radiobutton ausgewählt.. wieso passiert sowas denn ?
              Zuletzt editiert von c0nstan; 01.04.2007, 12:00.

              Comment


              • #8
                Ich habe deinen Beitrag nicht verstanden
                Christian

                Comment


                • #9
                  ok ich versuch es noch einmal verständlich zu formulieren
                  also ich habe mehrere formulare,FormStart,FormBesucher,FormLeitung und FormSaal,allerdings hat FormLeitung nichts damit zu tun.
                  also ich wähle bei FormStart den benutzer aus, dann komm ich zu FormBesucher und da wähle ich eine Film aus und gelange zu FormSaal.
                  von allen Formen kann ich entweder eine Form zurück, ganz zurück zur benutzerauswahl (FormStart), oder das programm beenden.
                  wenn ich auf Formsaal komme, hab ich da ein Saalplan (bitmap) und mit den 2 Radiobuttons kann man Loge oder Parkett auswählen. jenachdem was man gewählt hat lade ich in das Image Objekt den Saalplan mit ausgewählter loge oder parkett. wenn ich aber zurück gehe,sprich FormSaal mit Close() schließe und eine andere Form aufrufe und dann nochmals FormSaal aufrufe, soll das standard Bild wieder geladen sein und KEIN radiobutton gechecked sein.
                  und das klappt nicht.wenn ich beim Formactivate die beiden buttons Checked=false; mache, wird trotzdem ein klick ereignis ausgeführt von dem zuletzt gecheckten button und das bild somit wieder geändert.
                  jetzt habe ich es mit einem weiteren button versucht, einen nicht sichtbaren radiobutton, den ich bei Formactivate Checke. bringt aber nichts, es wird immer noch ein klick ereignis ausgelöst von dem anderen radiobutton.
                  dann habe ich den dritten nicht sichtbaren button gechecked beim schließen der FormSaal, aber beim wieder aufrufen wird schon wieder ein klick ereignis eines anderen Buttons ausgelöst, somit wird das bild nicht verändert und ich verstehe das alles nicht.

                  hoffe dass man das versteht

                  Comment


                  • #10
                    geladen sein und KEIN radiobutton gechecked sein.
                    Von Radiobutton sollte immer einer gecheckt sein -> ansonsten Checkboxen nutzen

                    Dann setzt im On Show deine gewünschte Ausgangssituation.
                    Christian

                    Comment


                    • #11
                      ich hab ja extra den dritten radiobutton eingefügt damit ich den checken kann, aber es bringt nichts, nachdem ich den radiobutten checked=true mache, wird wieder ein radiobutton klick ereignis ausgeführt, von dem der vorher gechecked war, sprich das bild wieder verändert...das ist doch verrückt

                      Comment


                      • #12
                        Hallo,

                        wenn ich das bis hierher richtig verstanden habe, nutzt Du das OnClick-Ereignis, um die Bitmaps zu laden, ohne den Status des jeweiligen RadioButtons abzufragen. OnClick wird immer ausgelöst, gleichgültig, ob ein- oder ausgeschaltet wird. Es soll ja aber nur dann ein neues Bild angezeigt werden, wenn die jeweilige Auswahl markiert wird.

                        Also:
                        Code:
                        void __fastcall TForm1::RadioButton1Click(TObject *Sender)
                        {
                            if (!RadioButton1->Checked)
                                return;
                           
                            // mach was...
                        }
                        Gruß vom Knut

                        Comment


                        • #13
                          das funktioniert ja nicht, denn der radiobutton wird ja gechecked, obwohl ich FormOnClose einen anderen radiobutton checke(ohne funktion).
                          der radiobutton für z.B. Loge wird dennoch wieder gechecked also ist er ja gechecked und die zeile funzt net
                          aber dennoch danke

                          Comment


                          • #14
                            Radiobuttons die zusammengehören sollen, haben alle den gleichen Vater ->

                            Beispiel

                            Radiobutton 1, 2, 3, 4 werden direkt auf das Formular gezogen. Diese haben den gleichen Vater (das Formular). Also schalten sie auch gemeinsam

                            Radiobutton 5 und 6 liegen in einer Groupbox auf dem Formular. Diese beiden beeinflussen die Buttons 1-4 nicht und umgekehrt.

                            Wenn jeder Radiobutton bei dir einzeln angesprochen werden muss -> wie schon mal gesagt -> Checkbox nutzen oder dafür sorgen, dass sie all einen eigenen Vater haben
                            Christian

                            Comment


                            • #15
                              sie sollen ja nicht alle einzeldn angesprochen werden, es soll ja nur ein radiobutton ausgewählt sein dürfen.
                              entweder loge ODER parkett.
                              aber mein problem is halt wie schon ausführlich beschrieben

                              Comment

                              Working...
                              X