TImage als Zeichenbrett missbrauchen



  • Hallo,
    Ich missbrauche momentan ein TImage als Zeichenbrett,...
    Heist

    Ich habe ein TImage und auf button-druck

    Graphics::TBitmap *bmp = new Graphics::TBitmap();
    bmp->Width=200;
    bmp->Height=200;
    bmp->Canvas->Brush->Color = clYellow;
    bmp->Canvas->Rectangle(-1,-1,201,201);
    
    Image1->Picture->Bitmap=bmp;
    delete bmp;
    

    Habe ich ein 200x200 großes gelbes quadrat.

    eine globale var.

    bool gedruckt;
    

    speichert mir ob gerade die Maus gedrückt ist
    und beim "MouseOver"

    void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
    	  int X, int Y)
    {
    if(gedruckt){
    Image1->Picture->Bitmap->Canvas->Brush->Color = clBlack;
    Image1->Picture->Bitmap->Canvas->Rectangle(X,Y,X+2,Y+2);
    }
    }
    

    Funktioniert auch, ich kann nun auf mein Bitmap zeichnen,... nur leider flackert es zu sehr da es immer wieder neu aufgebaut ist,... kann man dies irgendwie umgehen ?



  • TImage in ein TPanel und DESSEN DoubleBuffered auf true ?



  • ne bringt leider nix 😞



  • Wenn du nicht den Umweg über ein temporäres Graphics::TBitmap gehst, dürfte da auch nichts flackern (Image1->Canvas->Rectangle...).



  • christianz schrieb:

    ne bringt leider nix 😞

    Das sollte schon klappen!

    Du musst das DoubleBuffered des Panels nur per Code setzen.

    UND: Das TImage muss IN dem TPanel sitzen!

    Gruss
    frank


Anmelden zum Antworten