auf Formular zeichnen (war: Probleme mit Borland C++ Builder 6.0)
-
Hey @all,
1.Frage: ich habe da ein kleines Problem mit dem zeichnen auf dem Formular, und zwar wenn die Zeichenoperation in einem Timer mache funktioniert alle, jedoch wenn ich direkt im Form zeichne sehe ich nichts, kann mir da jemand helfen? Denn wenn ich einen Timer benutze, dann fängt das ganze zu Flimmern an.
Beispiel was funktioniert:void __fastcall TForm1::FormCreate(TObject *Sender) { Timer1->Interval = 100; } void __fastcall TForm1::Timer1Timer(TObject *Sender) { buildGameObjects(); drawBall(ClientWidth/2-4, ClientHeight-38); drawBeam((ClientWidth)/2-25, ClientHeight-20); }
Beispiel was NICHT funktioniert:
void __fastcall TForm1::FormCreate(TObject *Sender) { buildGameObjects(); drawBall(ClientWidth/2-4, ClientHeight-38); drawBeam((ClientWidth)/2-25, ClientHeight-20); }
2.Frage: Ich habe mir da eine Methode geschriebn(drawBeam), diese möchte ich irgendwie dazu bringen, das wenn ich mit der Maus herumfahre, der Balken entweder nach links oder rechts bewegt, und ich keinen Mauszeiger mehr sehe.
drawBeam:TForm1::drawBeam(int x1, int y1) { int _corner=5, x2, y2; if(x1==-1) x1=ClientWidth/2-25; if(y1==-1) y1=ClientHeight-20; x2=x1+50; y2=y1-10; // Setze Farb-Optionen _frameColor = clWhite; _fillColor=_frameColor; _fillBrush = bsSolid; // Füllung Canvas->Brush->Color = _fillColor; Canvas->Brush->Style = _fillBrush; // Rahmen Canvas->Pen->Color = _frameColor; // Zeichne Balken Canvas->RoundRect(x1, y1, x2, y2, _corner, _corner); return 0; }
Wäre für jede Hilfe Dankbar
MfG smog_atEdit:
Bitte aussagekräftige Überschriften wählen. Danke!
-
zu 1) Du musst immer dann (neu)zeichnen, wenn das erforderlich ist. Üblicherweise benutzt man dafür das OnPaint-Ereignis.
zu 2) Den Cursor kannst du mit crNone verschwinden lassen, und für das "Bewegen" des Balkens bietet sich das OnMouseMove-Event an.
In Zukunft aber bitte nur eine Frage/Thema pro Thread. Danke!
-
Vielen Dank Jansen,
Könntest Du mir eventuell ein konkretes Beispiel dazu geben,
habe erst vor kurzem angefangen mit Borland C++ zu programmieren.Vielen Dank
smog_at