Flackern bei Timer und Image



  • @ Joe

    Mit dem Timer hat wunderbar geklappt aber bei der schleife Flackert das Bild immer noch .Ich lasse von der rechten Programmseite ein panel nach links aufgehen mit Grafik drauf aber trotz Precces message flackert die Grafikl immer noch.

    Hier der Code

    int w = 30,l = 656;  // Positionwerte des Panels mit Image
            for(w,l;w < 313,l > 400 ;w+=5,l-=5)
            {
            Panel2->Width = w;
            Panel2->Left = l;
            Application->ProcessMessages();
            //Sleep(10);
            }
    


  • Wie er schon sagte... DoubleBuffered sollte noch aktiviert werden, bei der Schleifenversion...

    -junix



  • @ junix

    Sorry habe es jetzt in der Schleife klappt aber leider nicht flackert immer noch. Wie gesgat beim Timer hat es funktioniert. Naja villeicht denke ich heute auch wenig Falsch .

    MFG Praetorianer



  • Und DoubleBuffered steht auf true, ja?



  • @Junix

    DoubleBuffered steht auf True. hhhhhmmmmm......

    ratlos. Kann das möglich sein weil ich das Image auf einen Panel habe , ich vermute dieses , aber bin mir net sicher. 😕

    Gruss



  • @ junix

    Es Lag doch am Panel habe jetzt das Panel weggemacht und sihe da es geht 😃 😃



  • So jetzt geht es ohne flackern aber nun ist das problem ich kann nix ablegen wie zum beispiel: Button oder so, auf einen panel aber funktioniert es , aber dann flackert mein image wieder. wie kann ich das beheben.

    Gruss Praetorianer 😕 😕



  • Hallo,
    Warum erstellst du dir nicht eine eigene Komponente die du von TImage ableitest und das erfüllt was du wünschst.

    Ich habe bei mir eine Komponente gemacht auf ein Panel gelegt und es funktioniert prima auch wenn ein Button im Bild ist hab ich extra noch probiert.

    Ach ja. Ich nehme die Zeichnung in einem erzeutem Bitmap vor und kopiere es mit CopyRect in den Canvas des Images.

    Vieleicht hilfts ja weiter.

    PS: Blätter mal in der Suchfunktion hier findest du ein paar nützliche Beispiele.

    Grüsse
    Waldseeduo 🙂



  • Joe_M. schrieb:

    Geht auch in einer Schleife: Application->ProcessMessages(); ...
    Flackern sollte mit DoubleBuffered = true; verschwinden...

    Zum Flackern hätte ich da noch ne Frage...
    ich erstelle ein Image während der Laufzeit ungefär so

    TSegment::TSegment(int x,TWinControl *zeiger)
    {
    Bild=new TImage(zeiger);
    Bild->Parent=zeiger;
    Bild->Left=x;
    Bild->Height=200;
    Bild->Width=100;
    Bild->Top=25;
    Bild->Canvas->Pen->Width=5;
    Bild->DoubleBuffered = true;
    }
    

    und da geht das mit DoubleBuffered nicht 😕 😡 😕

    kann mir da einer helfen?



  • TImage selbst besitzt kein DoubleBuffered. Wenn das Image aber z.B. auf einem Panel liegt, kannst Du beim dem Panel DoubleBuffered = true einstellen.


Anmelden zum Antworten