Öffnen eines Bildes



  • und es funktioniert überhaupt nicht ohne "Dummy"?



  • Glaub, ich muss meine Aussage korrigieren, es geht auch mit leerem Image...



  • das ist ja komisch. ich habs mit leerem Image versucht. es funktioniert aber nicht.



  • Echt merkwürdig, beim ersten mal hatte ich auch keine Reaktion auf das
    Klickereignis mit leerem Image. Mit Dummy ging es dann. Und dann auch
    mit leerem Image.
    Kann ich im Moment nicht erklären...



  • ok. ich werd mal ein bissl. rumprobieren. danke.
    jetzt bin ich endlich mit meinem kleinen spielchen fertig 🙂



  • und wie krieg ich es jetzt hin, dass (nach dem klicken der maustaste auf das 2. bild) das 1. bild wieder zum vorherigen bild wird?
    das geht doch mit OnMouseUp oder?
    Aber wie krieg ich das da hin?
    das mit LoadFromFile usw. ist ja kein problem.



  • Hi,

    im einfachsten Fall setze eine Boolschen Wert, der mit dem Mausklick
    abgefragt und gesetzt wird. Somit deine beiden Bilder.
    Mach dir aber ev. mal Gedanken, die Bilder als Projektresource zu linken
    und zu laden.

    mfg
    kpeter



  • kpeter schrieb:

    im einfachsten Fall setze eine Boolschen Wert, der mit dem Mausklick
    abgefragt und gesetzt wird. Somit deine beiden Bilder.

    kannst du mir das ein wenig genauer erklären?
    wie soll das gehn?

    kpeter schrieb:

    Mach dir aber ev. mal Gedanken, die Bilder als Projektresource zu linken
    und zu laden.

    das find ich irgendwie zu kompliziert. hab das noch nie gemacht, da ich mich erstmal mit einfacheren dingen beschäftigen will 😉



  • Mach dir einfach ne Variable und speicher darin den Zustand des Bildes:

    // Irgendwo als Klassenvariable oder so
    bool zustandVomErstenBild;
    
    // In deinem onClick Event vom ersten Bild
    ...
    {
        if(zustandVomErstenBild == true)
        {
            Image1->...
            zustandVomErstenBild = false;
        }
        else
        {
            Image1->...
            zustandVomErstenBild = true;
        }
    }
    


  • blub² schrieb:

    Mach dir einfach ne Variable und speicher darin den Zustand des Bildes:

    // Irgendwo als Klassenvariable oder so
    bool zustandVomErstenBild;
    
    // In deinem onClick Event vom ersten Bild
    ...
    {
        if(zustandVomErstenBild == true)
        {
            Image1->...
            zustandVomErstenBild = false;
        }
        else
        {
            Image1->...
            zustandVomErstenBild = true;
        }
    }
    

    ach! so meinst du das! 😃
    Dankeschön!!! Klappt super!!!



  • aber wie krieg ich es hin, dass das neue bild ein paar sekunden bleibt?
    denn das geht ja sofort wieder weg



  • äh...ich weiß nicht, was passiert ist, aber wenn ich das so eingebe, dann ändert sich das nicht, also das wird nicht wieder zum vorherigen bild.



  • Hi,

    Momooo schrieb:

    aber wie krieg ich es hin, dass das neue bild ein paar sekunden bleibt?
    denn das geht ja sofort wieder weg

    Nimm eine Timer-Komponente, setze im OI Enabled auf false.

    In dein MausDown-Ereignis schreibst du

    Image1->Picture->LoadFromFile("bild2.bmp");  // neues Bild bei Mausklick
       Timer1->Enabled = true;                      // Timer anschalten
    

    In das Timer-Ereignis des Timers

    void __fastcall TForm::Timer1Timer(TObject *Sender)
    {
       Timer1->Interval  = 3000;    // Zeit in ms
       Timer1->Enabled   = false;   // Timer aus
       Image1->Picture->LoadFromFile("bild1.bmp");   // wieder altes Bild
    }
    

    mfg
    kpeter



  • Sorry, dass ich erst jetzt schreibe.
    Ich habs ausprobiert und es klappt super! 👍
    Dankeschön!


Anmelden zum Antworten