1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
TFPrincip = class(TForm)
MainMenu1: TMainMenu;
ImagedeFond1: TMenuItem;
Etir1: TMenuItem;
Mosaque1: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Déclarations privées }
Bim:TBitMap;
Etatb:Integer;
Procedure SetEtatImage(e:Integer);
procedure MPaint;
Property EImage:Integer read Etatb write SetEtatImage;
public
{ Déclarations publiques }
end;
implementation
procedure Effacer;
// rafraichissement du bureau par l'api SystemParametersInfo
// sur ma config, cette solution est la plus rapide.
begin
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);
end;
procedure TFPrincip.FormCreate(Sender: TObject);
var
s:string;
begin
s:=ExtractFilePath(application.ExeName);
if s[length(s)]<>'\' then s:=s+'\';
s:=s+'Jamai.sy';
if FileExists(s) then
begin
Bim:=TBitMap.Create;
Bim.LoadFromFile(s);
EImage:=1;
end
else
BEGIN
bim:=nil;
EImage:=-1;
END;
end;
procedure TFPrincip.FormDestroy(Sender: TObject);
begin
if EImage>=0 then Bim.Free;
end;
procedure TFPrincip.FormPaint(Sender: TObject);
begin
MPaint;
end;
procedure TFPrincip.MPaint;
var i,j:integer;
begin
if (EImage<0) then exit;
if Etatb=0 then
begin
i:=0;
while i<=Height do
begin
j:=0;
while j<=Width do
begin
canvas.Draw(j,i,bim);
j:=j+bim.Width;
end;
i:=i+bim.Height;
end;
end;
if Etatb=1 then Canvas.StretchDraw(ClientRect,Bim);
end;
procedure TFPrincip.Etir1Click(Sender: TObject);
begin
canvas.Rectangle(ClientRect);
EImage:=TMenuItem(Sender).Tag;
Effacer;
end;
procedure TFPrincip.SetEtatImage;
begin
if Etatb<>e then
begin
Etatb:=e;
etir1.Checked:=e=1;
Mosaque1.Checked:=e=0;
end;
end; |
Partager