ПРОГРАММА LAZARUS!
Еще раз всем привет) Мне снова нужна ваша помощь!
Написал программу ежедневник. По своему функционалу она должна запускаться на вкладке которая соответсвует сегодняшнему дню недели (эта функция работает). Кроме того, должна быть возможность настройки фона, размера шрифта и его стиля на каждый день, и чтобы эти настройки сохранялись в .ini файл даже после закрытия программы, чтобы при очередном запуске программа имела настройки, которые были до закрытия. Программу написал, но сохранение настроек не работает, и после закрытия и во время листания вкладок, все настройки шрифта и фона сбиваются. Пожалуйста, можете поправить код где есть ошибки? Исходник во вложении.
Код:
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ComCtrls,
ColorBox, Grids, CheckLst, ExtCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
ColorBox1: TColorBox;
ColorBox2: TColorBox;
FontDialog1: TFontDialog;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Memo1: TMemo;
TabControl1: TTabControl;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure ColorBox1Change(Sender: TObject);
procedure ColorBox2Change(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TabControl1Change(Sender: TObject);
private
public
end;
Type
dn = record
cfont,cback: TColor;
end;
var
Form1: TForm1;
m: array[1..7] of dn;
f: file of dn;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
var i: byte;
begin
assignfile(f,'week.ini');
reset(f);
for i:=1 to filesize(f) do read(f,m[i]);
closefile(f);
Form1.Caption:=FormatDateTime('ddd',Now);
for i:=0 to 6 do
if TabControl1.Tabs[i]=Form1.Caption then break;
TabControl1.TabIndex:=i;
TabControl1Change(TabControl1);
end;
procedure TForm1.TabControl1Change(Sender: TObject);
begin
ColorBox1.Selected:=m[TabControl1.TabIndex+1].cfont;
ColorBox2.Selected:=m[TabControl1.TabIndex+1].cback;
memo1.Font.Color:=ColorBox1.Selected;
memo1.Color:=ColorBox2.Selected;
end;
procedure TForm1.ColorBox1Change(Sender: TObject);
begin
memo1.Font.Color:=ColorBox1.Selected;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Font.Size:=8;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Font.Size:=14;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Memo1.Font.Size:=18;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Memo1.Font.Size:=24;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
if FontDialog1.Execute then Memo1.Font:=FontDialog1.Font;
end;
procedure TForm1.ColorBox2Change(Sender: TObject);
begin
memo1.Color:=ColorBox2.Selected;
end;
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
var i: byte;
begin
assignfile(f,'week.ini');
rewrite(f);
for i:=1 to 7 do write(f,m[i]);
closefile(f);
end;
end.