Hallo, mit den unten angeführten Proceduren erhalte ich wie gewünscht ein Hintergrundbild, das auch nach dem Start des Programmes, dank Speicherung in der Registry, wieder am Bildschirm erscheint. Nun möchte ich aber das ich das Bild auch abschalten kann und der eingestellte normale Hintergrund der Form erscheint. Kann man mir dazu einen, einige Hinweise geben. Vielen Dank. Mfg ph.
<BR>uses registry;
<BR>procedure TForm1.FormActivate(Sender: TObject);
<BR>var reg : TRegistry;
<BR> iFile : String;
<BR>begin
<BR>//Die gespeicherten Werte aus der Registry auslesen
<BR>reg := TRegistry.Create;
<BR>reg.OpenKey('Software\HenGap\LottNeu',False) ;
<BR>try
<BR>iFile := reg.ReadString('Auswahl');
<BR>except; //Falls kein Eintrag vorhanden: Exception
<BR>iFile := 'OpenDialog1.FileName';
<BR>end;
<BR>reg.Free;
<BR>OpenDialog1.FileName := iFile;
<BR>//Die in der Registry gespeicherte Bitmap-Datei wird
<BR>//zugewiesen
<BR>if not Assigned(FWallpaper) then
<BR>FWallpaper := TBitmap.Create;
<BR>FWallpaper.LoadFromFile(OpenDialog1.FileName );
<BR>Invalidate;
<BR>end;
<BR>procedure TForm1.Button1Click(Sender: TObject);
<BR>var
<BR>reg : TRegistry;
<BR>begin
<BR>// Bild laden
<BR>if OpenDialog1.Execute then
<BR>begin
<BR>if not Assigned(FWallpaper) then
<BR>FWallpaper := TBitmap.Create;
<BR>FWallpaper.LoadFromFile(OpenDialog1.FileName );
<BR>Invalidate;
<BR>end;
<BR>reg := TRegistry.Create;
<BR>reg.OpenKey('Software\HenGap\LottNeu',true);
<BR>reg.WriteString('Auswahl',OpenDialog1.FileName );
<BR>reg.Free;
<BR>end;
<BR>procedure TForm1.WMEraseBkGnd(var Msg: TWMEraseBkGnd);
<BR>var
<BR>row, col: Integer;
<BR>begin
<BR>if not Assigned(FWallpaper) then
<BR>inherited
<BR>else
<BR>begin
<BR>// Das Bild zeichnen
<BR>for Row := 0 to ClientHeight div FWallpaper.Height do
<BR> for Col := 0 to ClientWidth div FWallpaper.Width do
<BR> BitBlt(Msg.Dc,
<BR> Col * FWallpaper.Width,
<BR> Row * FWallpaper.Height,
<BR> FWallpaper.Width,
<BR> FWallpaper.Height,
<BR> FWallpaper.Canvas.Handle,
<BR> 0,
<BR> 0,
<BR> SRCCOPY);
<BR> Msg.Result := 1;
<BR> end; { else }
<BR>end;
<BR>procedure TForm1.FormDestroy(Sender: TObject);
<BR>begin
<BR>FWallpaper.Free;
<BR>end;
<BR>uses registry;
<BR>procedure TForm1.FormActivate(Sender: TObject);
<BR>var reg : TRegistry;
<BR> iFile : String;
<BR>begin
<BR>//Die gespeicherten Werte aus der Registry auslesen
<BR>reg := TRegistry.Create;
<BR>reg.OpenKey('Software\HenGap\LottNeu',False) ;
<BR>try
<BR>iFile := reg.ReadString('Auswahl');
<BR>except; //Falls kein Eintrag vorhanden: Exception
<BR>iFile := 'OpenDialog1.FileName';
<BR>end;
<BR>reg.Free;
<BR>OpenDialog1.FileName := iFile;
<BR>//Die in der Registry gespeicherte Bitmap-Datei wird
<BR>//zugewiesen
<BR>if not Assigned(FWallpaper) then
<BR>FWallpaper := TBitmap.Create;
<BR>FWallpaper.LoadFromFile(OpenDialog1.FileName );
<BR>Invalidate;
<BR>end;
<BR>procedure TForm1.Button1Click(Sender: TObject);
<BR>var
<BR>reg : TRegistry;
<BR>begin
<BR>// Bild laden
<BR>if OpenDialog1.Execute then
<BR>begin
<BR>if not Assigned(FWallpaper) then
<BR>FWallpaper := TBitmap.Create;
<BR>FWallpaper.LoadFromFile(OpenDialog1.FileName );
<BR>Invalidate;
<BR>end;
<BR>reg := TRegistry.Create;
<BR>reg.OpenKey('Software\HenGap\LottNeu',true);
<BR>reg.WriteString('Auswahl',OpenDialog1.FileName );
<BR>reg.Free;
<BR>end;
<BR>procedure TForm1.WMEraseBkGnd(var Msg: TWMEraseBkGnd);
<BR>var
<BR>row, col: Integer;
<BR>begin
<BR>if not Assigned(FWallpaper) then
<BR>inherited
<BR>else
<BR>begin
<BR>// Das Bild zeichnen
<BR>for Row := 0 to ClientHeight div FWallpaper.Height do
<BR> for Col := 0 to ClientWidth div FWallpaper.Width do
<BR> BitBlt(Msg.Dc,
<BR> Col * FWallpaper.Width,
<BR> Row * FWallpaper.Height,
<BR> FWallpaper.Width,
<BR> FWallpaper.Height,
<BR> FWallpaper.Canvas.Handle,
<BR> 0,
<BR> 0,
<BR> SRCCOPY);
<BR> Msg.Result := 1;
<BR> end; { else }
<BR>end;
<BR>procedure TForm1.FormDestroy(Sender: TObject);
<BR>begin
<BR>FWallpaper.Free;
<BR>end;
Comment