Здравствуйте, Я загружаю в свой программу картинки в формате Bmp и рисую их на Canvas. Но вот когда хочу Стереть нарисованное, то "скинированый" фон пропадает. Подскажите, как можно решить эту проблему. До нажатия на кнопку очистить. http://radikal.ru/F/s61.radikal.ru/i172/1003/e6/0a99c30f3d59.jpg.html И после. http://radikal.ru/F/i037.radikal.ru/1003/da/2488a5cf29a9.jpg.html
И второй вопрос: В тех Bmp, что я загружаю в программу фон белый, и когда я запускай он таким и остаёться, хотя я включил прозрачность(pic_Letter.Transparent:=true). В чём может быть проблема?
| Код | unit U_Trans;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, sEdit, sButton, sSkinManager, sRadioButton, ExtCtrls, sPanel, jpeg;
type TForm1 = class(TForm) sSkinManager1: TsSkinManager; sB_trans: TsButton; sE_Name: TsEdit; sRB_man: TsRadioButton; sRB_Woman: TsRadioButton; sB_Clear: TsButton; Image1: TImage; procedure FormCreate(Sender: TObject); procedure sB_transClick(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure sB_ClearClick(Sender: TObject); { Private declarations } public { Public declarations } end;
var Form1: TForm1; pic_Letter:TBitmap; Man:Boolean= true;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin pic_Letter:=TBitmap.Create; pic_Letter.Transparent:=true;
end;
procedure TForm1.sB_transClick(Sender: TObject); var i:byte; Fname,name1:string; x,y:integer; begin //sB_ClearClick(Sender); x:=50; y:=50; name1:=sE_Name.Text; For i:=1 to Length(name1) do begin If ord(name1[i])<>32 then begin Fname:=name1[i]+'.bmp'; pic_Letter.LoadFromFile('Letters\' +Fname); Canvas.Draw(x,y,pic_Letter); y:=y+pic_Letter.Height; end; end; if sRB_man.Checked then pic_Letter.LoadFromFile('Letters\man.bmp') else pic_Letter.LoadFromFile('Letters\woman.bmp'); Canvas.Draw(x,y,pic_Letter); y:=y+pic_Letter.Height; Canvas.Brush.Style:=bsClear; Canvas.Pen.Width:=3; Canvas.RoundRect(x-10,40,x+(pic_Letter.Width+10),y+10,80,80);
end;
procedure TForm1.FormDestroy(Sender: TObject); begin pic_Letter.Free; end;
procedure TForm1.sB_ClearClick(Sender: TObject); begin //sSkinManager1.Active:=false; Canvas.Brush.Color:=Form1.color; Canvas.FillRect(Rect(0,0,Form1.Width,Form1.Height)); //sSkinManager1.Active:=true; end;
end.
|
|