Entwickler-Ecke
Sonstiges (Delphi) - Flackerndes Rechteck
Uli Schoch - Mo 22.12.03 17:11
Titel: Flackerndes Rechteck
Hallo zusammen
Ich verwende (immer noch) Delphi 3 und Windows XP. Ich habe folgenden code geschrieben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Timer1Timer(Sender: TObject); begin with Form1.Canvas do begin brush.Color:=clyellow; Rectangle(0,0,300,300); pen.Width:=5; moveto(50,50); LineTo(190,190); end; Timer1.Enabled:=true; end; |
Ein Timer, der alle 100 ms zuschlägt, zeichnet ein Rechteck und dann eine schräg nach unten verlaufende Linie auf das Form. Das Unschöne ist nun, dass das Reckeck im Bereich der Linie flackert. Ein schwarzer "Schatten" läuft quer durch das Recheck nach unten. Kann man etwas dagegen tun?
Danke für Hinweise
Uli
Moderiert von
Peter Lustig: Code- durch Delphi-Tags ersetzt
ErnestoChe - Mo 22.12.03 17:17
Hi,
das wirst du kaum verändern können, wenn das alle 100 ms im Timer gezeichnet wird. Höchstens mit Doublebuffered := True könntest du das eindämmen:
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.FormCreate(Sender: TObject); begin Doublebuffered := True; end; |
Aber warum muss das im Timer neugezeichnet werden? Schreib doch den Code in das
OnPaint der Form. Dann wird es jedesmal dann neugezeichnet, wenn die Form neugezeichnet wird.
MFG
- Ernesto -
Uli Schoch - Mo 22.12.03 19:04
Hallo Ernesto
Danke für die schnelle Antwort, ich werds versuchen mit Doulebuffered. Mein Code war nur das einfachstmöglich Beispiel, in dem der Effekt auftritt. In meinem Projekt gehts um ein Zeigerinstrument, das alle 100 ms einen neuen Wert bekommt. Dann muss jedesmal der Zeiger neu angezeigt werden.
Gruss
Uli
Uli Schoch - Di 23.12.03 10:36
Nochmals Hallo Ernesto
Das mit dem Doublebuffered war nix, der Compiler meldet "unbekannter Bezeichner". Vielleicht gibts das in Delph 3 noch nicht.
Gruss
Uli
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!