TPaintBox-Inhalt löschen und neuzeichnen (war: TPaintBox)
-
Hi,
ich hab eine TPaintBox in der ich eine ganz normalen Kreis zeichne. Die größe des Kreises wird von einem TTimer mit einem Intervall von 1 ständig verändert. Dabei entsteht aber immer nen "Kreishaufen", wie im folgendem Bild zu sehen ist:
http://e-nicmar.de/10.jpgWie kann ich nun diesen Kreishaufen beseitigen, so dass ich immer nur den einen kreis habe, der sich zu den bässen der musik passend verändert?
der kreis bzw die paitbox soll aber nicht flackern.und wie kann ich ein bitmap oder icon in der paintbox darstellen?
Hier schonmal ein dickes danke an alle leser hund helfer
Greez
NicoEdit:
Bitte aussagekräftige Überschriften wählen. Danke!
-
Hallo
ich hab eine TPaintBox in der ich eine ganz normalen Kreis zeichne. Die größe des Kreises wird von einem TTimer mit einem Intervall von 1 ständig verändert. Dabei entsteht aber immer nen "Kreishaufen", wie im folgendem Bild zu sehen ist:
http://e-nicmar.de/10.jpgWie kann ich nun diesen Kreishaufen beseitigen, so dass ich immer nur den einen kreis habe, der sich zu den bässen der musik passend verändert?
der kreis bzw die paitbox soll aber nicht flackern.Entweder du übermalst die ganze PaintBox mit einem Vollrechteck (TCanvas::FillRect) in der Hintergrundfarbe, oder du überzechnest genau den alten Kreis in der Hintergrundfarbe.
und wie kann ich ein bitmap oder icon in der paintbox darstellen?
Mit TCanvas::Draw()
bis bald
akari
-
Hi,
also wenn ich jetze ein Rechteck zeichne, ist der Kreishaufen zwar wech, aber es flimmert immer noch. hier mal mein code-bsp. mit einem bitmap:void __fastcall TForm1::Timer4Timer(TObject *Sender) { int Value; float tmp=0; for (loop=2;loop<8;loop++) { tmp+=FSOUND_DSP_GetSpectrum()[loop]; } tmp=tmp/8; Value = 1000*tmp; Form1->PaintBox1->Canvas->Brush->Color = clBlack; Form1->PaintBox1->Canvas->FillRect(Rect(0,0,200,200)); Form1->PaintBox1->Canvas->Draw(Value,Value,pBitmap); }Was ist daran falsch?
Danke schonmal für eure Hilfe
Greez und thx
Nico
-
//--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Canvas->Brush->Style = bsClear; Canvas->Pen->Mode = pmXor; randomize(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { Canvas->Ellipse(100, 100, Tag, Tag); Tag = (rand() % 500) + 150; Canvas->Pen->Mode = pmNotXor; Canvas->Ellipse(100, 100, Tag, Tag); } //---------------------------------------------------------------------------Bzgl. der Funktionweise informiere dich zum Thema rubber banding.
-
Hi,
also i hab auch keine ahung was ich falsch mache. aber ich bekomme das irgendwie nicht hin. mein bitmp ist immer noch am flackern. ich hab auch schonmal bei msdn verbei geschaut, nur da is alles natürlich in VC++Greez
Nico
-
Zum Neuzeichnen, versuch mal "PaintBox1->Invalidate();".