Главная страница
    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.032 c
14-1077924171
Cobalt
2004-02-28 02:22
2004.03.28
Закончился MMP


14-1074852867
stas
2004-01-23 13:14
2004.03.28
Мобилы


14-1077805034
Style
2004-02-26 17:17
2004.03.28
Set Focus


3-1077182609
RavenD
2004-02-19 12:23
2004.03.28
утилиты?


1-1078663901
Ученик2
2004-03-07 15:51
2004.03.28
Отчет в Word. Где ошибка?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский