Autor Beitrag
Uli Schoch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81



BeitragVerfasst: Mo 22.12.03 17:11 
Hallo zusammen
Ich verwende (immer noch) Delphi 3 und Windows XP. Ich habe folgenden code geschrieben:


ausblenden 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 user profile iconPeter Lustig: Code- durch Delphi-Tags ersetzt
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: 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:

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 81



BeitragVerfasst: 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