Scrollbox in Vordergrund stellen (Elemente in der Scrollbox)



  • Hallo,

    habe mal eine Frage die ich leider nicht selber gelöst bekomme, da ich denke das man dafür bischen rumtricksen muss.
    Also ich habe eine ScrollBox und in der ScrollBox befinden sich Objekte z.B. ein Panel mit TLabel's und einer TImage.
    Wenn ich jetzt z.B. der ScrollBox ein Onclick Event hinzufüge funktioniert er nicht wenn ich auf ein TLabel oder auf das Bild innerhalb der ScrollBox klicke.
    Gibt es da irgendeinen weg, sodass der Event beim klicken auf ein Objekt der sich innerhalb der Scrollbox befindet trotzdem ausgeführt wird?



  • Ohne das jetzt ausprobiert zu haben würde ich vermuten, dass du einen entsprechenden Handler für die Elemente innerhalb der ScrollBox registrieren musst, also für deine TLabels und TImages.



  • mhhh...mit deiner Idee kann ich leider nichts anfangen.
    Kannst du mir vielleicht das etwas genauer erläutern !?
    Am besten mit Beispiel.



  • Du sagst doch selbst, dass du ein Panel mit mehreren TLabels und TImages in einer ScrollBox anzeigst. Du registrierst einen OnClick Handler für das OnClick Event der ScrollBox. Statt den OnClick Handler für die ScrollBox zu registrieren solltest du ihn für die TLabels und TImages im Panel registrieren.
    Wie erzeugst du deine TLabels/TImages? Per Designer oder dynamisch zur Laufzeit?



  • Ja die Objekte werden dynamisch erzeugt, jedoch hat TPanel oder TImage oder TLabel kein Event der OnMouseWheelDown ist.
    Also ich möchte das die ScrollBox mit MOUSEWHEEL vom User gescrollt werden kann auch wenn die Maus sich auf dem TPanel oder TImage oder TLabel befindet.

    Hoffe jemand kann mir dazu einen Ansatz der Lösung geben



  • Hi,

    beim dyn. erzeugen der Labels, Panels, ... ein OnClick definieren, z. B.:

    Panel->OnClick = PanelClick;
    

    wobei PanelClick die Funktion ist, in der du deine Aktionen ausführst. Welches Objekt angeklickt wurde, erfährst du über 'Sender'
    Aber such mal nach OnClick hier im Forum. Sollte dir weiterhelfen

    nur mal so aus der Hüfte geschossen 😉

    grüssle 🙂



  • Mhhh...es soll gescrollt werden nichts mit Onclick.
    Wie kann ich es schaffen das die ScrollBox gescrollt wird auch wenn die Maus sich auf dem TPanel befindet und es vom User mittel OnmoueseWheelDown gescrollt wird.



  • Sityle schrieb:

    ...
    Gibt es da irgendeinen weg, sodass der Event beim klicken auf ein Objekt der sich innerhalb der Scrollbox befindet trotzdem ausgeführt wird?

    😕 😕 😕

    Sityle schrieb:

    ...
    Mhhh...es soll gescrollt werden nichts mit Onclick.
    Wie kann ich es schaffen das die ScrollBox gescrollt wird auch wenn die Maus sich auf dem TPanel befindet und es vom User mittel OnmoueseWheelDown gescrollt wird.

    😕 😕 😕

    Also soll jetzt eine Aktion ausgeführt werden, wenn auf ein Label, Panel, oder sonstwas geklickt wird, oder soll nur gescrollt werden?

    Wenns nur scrollen sein soll, dann setze den Focus auf die Scrollbox wenn das Mausrad gedreht wird.

    ScrollBox1->SetFocus();
    

    **Untestet**

    grüssle 🙂



  • Mhh du verstehst es glaube ich nicht richtig.
    Also in der Scrollbox sind dynamisch erstellte Objekte wie TPanel,TImage und TLabel.
    So jetzt möchte ich das der User die ScrollBox mit dem Mausrad scrollen kann auch wenn er mit der Maus über einem TIMage,TPanel oder dem TPanel ist.
    Aber diese Objekte haben keinen Event wie OnMouseWheel.
    Wie kann ich das trotzdem realisieren???





  • So jetzt funktioniert es,

    SetFocus();
    

    war der richtige Anhaltspunkt.
    Es hat wegen dem Focus nicht funktioniert.



  • Sityle schrieb:

    So jetzt funktioniert es,

    SetFocus();
    

    war der richtige Anhaltspunkt.
    Es hat wegen dem Focus nicht funktioniert.

    Hab ichs also doch richtig verstanden 🙂

    grüssle 🙂


Log in to reply