Witam!
Na formie mam umieszczony paintbox kilkukrotnie szerszy niz forma.Potrzebuje,zeby wykres byl rysowany na calym paintboxie.Co zrobic,zeby po przesuwaniu paska od scrolla na formie wykres nie znikal??
Dzieki
A mi wykres nie znika!!!!!!
Macham sobie przewijakiem i widzę wszystko. Nawet nie muszę wywoływać Repaint-a czy Refresh-a. Raz go rysuję i to mi wystarcza.
Być może gdzieś go czyścisz?
Możesz przecież narysować coś poza oknem, byle tylko mieściło się w twoim polu rysowania i to też powinno być widoczne dopiero wtedy kiedy pojawi się ten obszar.
W takim razie zupelnie nie wiem o co chodzi. Przy przesunieciu scrolla wszystko znika.Taki prosty program.
Oto kod:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
PaintBox1: TPaintBox;
procedure PaintBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.PaintBox1Click(Sender: TObject);
begin
canvas.MoveTo(0,75);
canvas.LineTo(5000,75);
end;
end.
bo "canvas"-ujesz po obiekcie głównym czyli Form1 a nie PaintBoxie
użyj
[code]
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
with Sender as TPaintBox do
begin
canvas.MoveTo(0,75);
canvas.LineTo(5000,75);
end;
end;
[/code]
a wtedy canvas=em czyli płótnem będzie Twój PaintBox
[cya]