Mehrere Bilder gleichzeitig darstellen



  • Ich möchte mehrere Bilder in einer Reihe darstellen. Wenn irgendeins angeklickt wird, soll im Großformat dargestellt werden. Nach langen Suchen im Forum bin auf die Klasse TMultiImageScroller gestossen. Ich habe dies auch in meinem Programm integriert. Als Platzhalter habe ich ein TPanel benutzt.

    in

    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    m_pImageScroller = new TMultiImageScroller(this);
    m_pImageScroller->Parent = Panel1;
    m_pImageScroller->OnClick = MISBClick;

    m_pImageScroller->Left = Panel1->Left;
    m_pImageScroller->Top = Panel1->Top;
    m_pImageScroller->Height = Panel1->Height;
    m_pImageScroller->Width = Panel1->Width;
    }

    Danach erzeuge ich über einen TButton den Scroller mit insgesamt 10 Bilder. wird alles richtig angezeigt, scrollen funktioniert ebenfalls.

    Nur jetzt habe ich das Problem, das wenn ich auf den Scroller klicke, kein Event ausgelöst wird.

    Was mach ich falsch?
    Kann mir jemand helfen ?



  • Eigentlich sollte "OnClick" gerufen werden.

    Wie hast Du im Form1
    MISBClick
    definiert/deklariert?

    Das muss zusammen passen.

    Gruss
    Frank



  • Hallo Frank,

    die Funktion is folgendermaßen definiert,

    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published: // IDE-verwaltete Komponenten
    TPanel *Panel1;
    TButton *Button1;
    void __fastcall MISBClick(TObject *Sender);
    void __fastcall FormCreate(TObject *Sender);
    void __fastcall Button1Click(TObject *Sender);
    void __fastcall FormDestroy(TObject *Sender);
    private: // Benutzer-Deklarationen

    public: // Benutzer-Deklarationen
    __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;

    Die Funktion MISBClick habe ich aus dem Beitrag übernommen, in welchem auch die Klasse TMultiImageScroller beschrieben wurde.

    Gruß

    Horst



  • Die OnClick- Routine sollte da gestartet werden.
    Geht der Debugger nicht da rein? (Mal nen Haltenpunkt in der Funktion setzen)

    WICHTIG:

    Die Scrollbox selbst MUSS Enabled sein.
    Die Panele mit den Bildern in der Scrollbox müssen beim Erzeugen auf

    Enabled=false;

    gesetzt sein.
    Schau mal, ob das in der Komponente ricjtig gesetzt wird. Ansonsten kommt das Click- Ereignis nur, wenn auf leere Stelle in der Scrollbox geclickt wird.

    Gruss
    Frank



  • Hallo Frank,

    du hattest recht.

    Ich habe für die Scrollbox Enabled = true gesetzt und für die Pannel Enabled = false gesetzt und schon hat alles funktioniert.

    Danke.

    Gruß

    Horst


Anmelden zum Antworten