unit MainForm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, Gauges, StdCtrls, Img, Fractals; type TMainF = class(TForm) List: TListBox; Gauge: TGauge; CtrMenu: TMainMenu; File1: TMenuItem; Generate1: TMenuItem; Palette1: TMenuItem; Help1: TMenuItem; NoneAvailable1: TMenuItem; About1: TMenuItem; New1: TMenuItem; Open1: TMenuItem; Save1: TMenuItem; Julia1: TMenuItem; Mandelbrot1: TMenuItem; IFS1: TMenuItem; Random1: TMenuItem; New2: TMenuItem; Open2: TMenuItem; Save2: TMenuItem; Exit1: TMenuItem; FrcOpenD: TOpenDialog; FrcSaveD: TSaveDialog; PalOpenD: TOpenDialog; PalSaveD: TSaveDialog; FullFrac: TCheckBox; procedure FormCreate(Sender: TObject); procedure New1Click(Sender: TObject); procedure Open1Click(Sender: TObject); procedure Save1Click(Sender: TObject); procedure Exit1Click(Sender: TObject); procedure Save2Click(Sender: TObject); procedure Open2Click(Sender: TObject); procedure New2Click(Sender: TObject); procedure Random1Click(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } end; var MainF: TMainF; implementation uses Pal; {$R *.DFM} procedure TMainF.FormCreate(Sender: TObject); begin Randomize; Left := 0; Top := 0; end; procedure TMainF.New1Click(Sender: TObject); Var I,J : Word; begin NewPal := True; PalForm.Show; end; procedure TMainF.Open1Click(Sender: TObject); Var T : File of Cardinal; I : Byte; begin NewPal := False; If PalOpenD.Execute Then Begin AssignFile(T, PalOpenD.Filename); Reset (T); For I := 0 to 255 Do Read(T,CPal[I]); CloseFile(T); End; PalForm.Show; end; procedure TMainF.Save1Click(Sender: TObject); Var T : File Of Cardinal; I : Byte; begin If PalSaveD.Execute Then Begin AssignFile(T, PalSaveD.Filename); ReWrite (T); For I := 0 to 255 Do Write(T,CPal[I]); CloseFile(T); End; end; procedure TMainF.Exit1Click(Sender: TObject); begin Close; end; procedure TMainF.Save2Click(Sender: TObject); begin If FrcSaveD.Execute Then FrcForm.FrcImg.Picture.SaveToFile(FrcSaveD.Filename); end; procedure TMainF.Open2Click(Sender: TObject); begin If FrcForm.Visible Then FrcForm.Close; If FrcOpenD.Execute Then FrcForm.FrcImg.Picture.LoadFromFile(FrcOpenD.Filename); FrcForm.ClientHeight := FrcForm.FrcImg.Height; FrcForm.ClientWidth := FrcForm.FrcImg.Width; FrcForm.Show; end; procedure TMainF.New2Click(Sender: TObject); begin If FrcForm.Visible Then FrcForm.Close; FrcForm.ClientHeight := StrToInt( InputBox( 'Set Height','Set fractal height in pixels','330') ); FrcForm.ClientWidth := StrToInt( InputBox( 'Set Width','Set fractal width in pixels','480') ); FrcForm.Show; end; procedure TMainF.Random1Click(Sender: TObject); Var P,Q,R,S : Word; begin If Not FrcForm.Visible then FrcForm.Show; If FullFrac.Checked Then Julia(FrcForm.FrcImg, 0,FrcForm.FrcImg.Width,0,FrcForm.FrcImg.Height) Else With FrcForm Do Begin P := StrToInt( InputBox( 'x1','x1','0') ); Q := StrToInt( InputBox( 'x2','x2','480') ); R := StrToInt( InputBox( 'y1','y1','0') ); S := StrToInt( InputBox( 'y2','y2','330') ); Julia( FrcImg,P,Q,R,S); End; end; procedure TMainF.FormShow(Sender: TObject); Begin // FrcForm.Show; PalForm.Show; end; end.