Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Вниз

Не перерисовывается график! в Bitmap   Найти похожие ветки 

 
txt ©   (2004-01-09 17:10) [0]

Задача такая, я рисую график, он должен сохраняться  в файл, всё вроде нормально, но когда я хочу другой график
нарисовать, у меня фон не отчищается от первого и получается что один наслаивается на 2-й т.д.! как очищать перед перерисовкой? Или может у меня битмап не разруш-ся при выходе?
Зарание благодарен! Ниже приведён код проги
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs,unit1, StdCtrls, formula;

type
 TForm2 = class(TForm)
   procedure FormPaint(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);

   procedure Button1Click(Sender: TObject);
 private
      Bitmap:TBitmap;
       { Private declarations }
 public
   { Public declarations }
 end;

var
 Form2: TForm2;
s,s2:string;
w,h,i,ok:integer;
y1:extended;
x:real;
implementation

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);

begin
Bitmap:=TBitmap.Create;

end;

procedure TForm2.FormDestroy(Sender: TObject);
begin
 Bitmap.Free;
 bitmap:=nil ;
end;

procedure TForm2.FormPaint(Sender: TObject);
function c(im:real):integer;
begin
result:= round(canvas.TextWidth(floattostr((im)/ok))/2) ;
end;

begin
ok:=form1.spinedit1.Value;
canvas.Pen.Color:=$00575757;
canvas.Font.Name:="Times New Roman";
canvas.Font.Color:=clblue;
Bitmap.canvas.Font.Size:=7;
Bitmap.canvas.Pen.Width:=1;

w:=round(clientWidth/2);
h:=round(clientHeight/2);

Bitmap.canvas.MoveTo(0,h); Bitmap.canvas.LineTo(clientwidth,h);
Bitmap.canvas.MoveTo(w,0); Bitmap.canvas.LineTo(w,clientheight);

Bitmap.Width:=2*w;
Bitmap.Height:=2*h;
Canvas.CopyRect(Rect(0, 0, 2*w, 2*h), BitMap.Canvas, Rect(0, 0,2*w, 2*h));
Bitmap.SaveToFile("c:\123.bmp");
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
if (form1.edit1.Text="") then exit;
w:=round(clientWidth/2);h:=round(clientHeight/2);
Bitmap.canvas.Pen.Width:=3;
 x:=-30;
s:=form1.edit1.Text;
if (form1.panel1.Visible)and(form1.Edit2.text<>"") then
s2:=form1.edit2.Text else s2:=s;
Preparation(s,["x"]);
Preparation(s2,["x"]);
while x<= 30 do begin
application.ProcessMessages;
x:=x+0.001;
if x<=form1.SpinEdit2.Value then
Recogn(ChangeVar(s,"x",x),y1) else
Recogn(ChangeVar(s2,"x",x),y1);

Bitmap.canvas.pixels[round(x*ok)+w,h-round(y1*ok)]:=clred;
   end;
   repaint;
end;
end.


 
марсианин ©   (2004-01-09 21:42) [1]

в чем проблема? надо чтоб очищался фон -- очищай! например Canvas.FillRect"ом закрась все..


 
txt ©   (2004-01-09 22:10) [2]

непонян в какой строчке и что конкретно прописать?


 
марсианин ©   (2004-01-10 00:31) [3]

тебе вообще-то виднее в какую строчку вписывать.. перед началом рисования в битмапе

как функцию использовать - смотри хелп, там и пример есть...



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.039 c
3-1077630209
SM
2004-02-24 16:43
2004.03.28
Ув. мастера, как в IB создать кальк. поле с отсечением дроб. част


1-1078921135
fatal
2004-03-10 15:18
2004.03.28
Как лучше организовать выбор?


14-1077883017
Praco
2004-02-27 14:56
2004.03.28
Вовочка, сын Вовочки дает прикурить


1-1078948667
tim5
2004-03-10 22:57
2004.03.28
Дата и время


3-1078141417
Saris
2004-03-01 14:43
2004.03.28
Добавление степеней в DBGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский