Announcement

Collapse
No announcement yet.

Flackern verhinder

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

  • Flackern verhinder

    Hallo zusammen,

    ich weiss das dies nicht nur eine Anfängerfrage ist, sondern auch hier schon des öfteren gestellt wurde. Nur scheinbar bin ich zu dumm, um die Antworten richtig umzusetzen.

    Mein Ziel ist es an einer bestimmten stelle des Mauscursors eine art InfoBox anzuzeigen (aktuelle Position des Cursors).

    Hab es schon mit <pre>DoubleBuffered = true;</pre> versucht. Hat aber leider auch nicht geholfen.

    Dazu ein kleines Code Beispiel:

    <pre>
    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
    Form1->ControlStyle<<csOpaque;
    Form1->DoubleBuffered = true;
    }
    </pre>
    //---------------------------------------------------------------------------
    <pre>
    void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
    {
    Form1->Refresh();
    Form1->Canvas->Brush->Color = clGreen;
    Form1->Canvas->TextOutA(X+15,Y+20,"Info");
    }
    </pre>

    Ich bin euch für jeden Tip dankbar.

    Gruß Walter

  • #2
    Du solltest das im OnPaint Ereignis machen und im MouseMove nur einen boolschen Wert setzen der dann im OnPaint anzeigt, das da jetzt was ausgegeben werden soll

    So wirkt m.E. das

    DoubleBuffered = true;

    nich
    Christian

    Comment


    • #3
      Hey,

      erstmal vielen dank für die schnelle Antwort. Hab erst jetzt die Zeit gefunden das zu testen.

      Auch nachdem ich deinen Vorschlag übernommen habe, flackert das Bild, wenn ich den Mauszeiger etwas schneller bewege.

      Kann das damit zu tun haben das ich zuerst Form1 neu zeichnen lasse und erst dann dadrauf das Rechteck male? Wenn ja, dann stellt sich mir die Frage wie ich es hinbekomme das im Hintergrund zuerst das Rechteck von der Zeichenfläche gelöscht wird, an einer neuen Position hingemalt wird und dann zum Schluss erst das Form1 mit dem neu positioniertem Rechteck neu gezeichnet wird.

      Für eure Mühe bin ich sehr dankbar.

      Gruß Walte

      Comment

      Working...
      X