@theo
{$H+} ist an. Hier mal der koplette Code.
Code: Alles auswählen
unit main;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls, opbitmap,
StdCtrls, Menus, ExtDlgs, IniFiles, windows;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
LiBo_Files: TListBox;
MainMenu1: TMainMenu;
MenuItem1: TMenuItem;
MenuItem2: TMenuItem;
MenuItem3: TMenuItem;
MenuItem4: TMenuItem;
MenuItem5: TMenuItem;
MenuItem6: TMenuItem;
OpDi_Pic: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure MenuItem3Click(Sender: TObject);
procedure MenuItem6Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
var RWCINI : TINIFile;
Progdir:String;
{ TForm1 }
//Programm beenden
procedure TForm1.MenuItem3Click(Sender: TObject);
begin
Close;
end;
//Programmstart
procedure TForm1.FormCreate(Sender: TObject);
var i:Integer;
myPicList:TStrings;
begin
ProgDir:=ExtractFilePath(ParamStr(0));
//INI auslesen
RWCINI:=TINIFile.Create(ProgDir+'RWC.INI');
myPicList:=TStringList.Create;
RWCINI.ReadSection('Papers', myPicList); //alle Bezeichner der Sektion auslesen
if myPicList.Count>0 then //nur wenn Bezeichner vorhanden sind...
begin
for i:=0 to myPicList.Count-1 do //Alle Werte einlesen
begin
LiBo_Files.Items.Add(RWCINI.ReadString('Papers', myPicList.Strings[i], ''));
end;
end;
myPicList.Free;
RWCINI.Free;
end;
//Beim Programmende
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
var i:Integer;
begin
DeleteFile(PChar(ProgDir+'RWC.INI'));
RWCINI:=TINIFile.Create(ProgDir+'RWC.INI');
for i:=0 to LiBo_Files.Items.Count-1 do
begin
RWCINI.WriteString('Papers', IntToStr(i+1), LiBo_Files.Items.Strings[i]);
end;
RWCINI.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
var myPic:String;
begin
myPic:=LiBo_Files.Items.Strings[LiBo_Files.ItemIndex];
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, PChar(myPic)^, SPIF_SENDCHANGE OR SPIF_UPDATEINIFILE );
MessageDlg(myPic, mtError, [mbOK],0);
end;
//Bild zur Liste hinzufügen
procedure TForm1.MenuItem6Click(Sender: TObject);
var i:Integer;
begin
if OpDi_Pic.Execute then
begin
//Schleife für alle gewählten Bilder
for i:=0 to OpDi_Pic.Files.Count-1 do
begin
LiBo_Files.Items.Add(OpDi_Pic.Files.Strings[i]);
end;
end;
end;
initialization
{$I main.lrs}
end.