Wenn ich nun ein zweites Formular(fenster) in der Anwendung aufrufe werden die gezeichneten Linien mit dem Fenster wegradiert ...
nicht so schön ... wie kann ich das unterbinden mit Lock und unlock oder sowas?? hab da noch keine Lösung ...
Spendiere deiner Zeichenmethode eine eigene private Procedure:
Delphi-Quellcode:
procedure TForm1.Zeichnen;
begin
Form1.Canvas.MoveTo(10,500);
Form1.Canvas.LineTo(300,500);
end;
Rufe in OnPaint deines Formulars diese Methode auf:
Delphi-Quellcode:
procedure TForm1.FormPaint(Sender: TObject);
begin
Zeichnen;
end;
Begründung: Der ursprünglichen OnPaint-Methode deiner Formular-Instanz ist die Methode Zeichnen nicht bekannt, weshalb beim Repaint deines Formulars auch nur das wiederhergestellt wird, was eigentlich zum Formular gehört. Mit dem zusätzlichen Code in OnPaint erweiterst du praktisch die On-Paint-Methode deines Formulars, so daß bei einem Neuzeichnen des Formulars auch deine Linien wieder gezeichnet werden.