📄 ga.~pas
字号:
unit ga;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls,GADelphi;
type
TgaFrm = class(TForm)
Label1: TLabel;
BitBtn1: TBitBtn;
randomseed: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
CheckBox1: TCheckBox;
Panel1: TPanel;
Memo1: TMemo;
popsize: TEdit;
lchrom: TEdit;
maxgen: TEdit;
pcross: TEdit;
pmutation: TEdit;
BitBtn2: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure randomseedKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure popsizeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure lchromKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure maxgenKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure pcrossKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure pmutationKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
gaFrm: TgaFrm;
rrandomseed:Single;
rpopsize,rlchrom,rmaxgen:Integer;
rpcross,rpmutation:single;
rprintstrings:integer;
str:string;
implementation
{$R *.dfm}
procedure TgaFrm.BitBtn1Click(Sender: TObject);
var
gga:tga;
begin
screen.Cursor:=crHourGlass;
if (randomseed.Text='') or (popsize.Text='') or (lchrom.Text='') or
(maxgen.Text='') or (pcross.Text='') or (pmutation.Text='') then
begin
showmessage('请输入完整数据!');
randomseed.SetFocus;
exit;
end;
str:=ExtractFilePath(application.exename)+'\gadata.txt';
try
rrandomseed:=strtofloat(randomseed.Text);
rpopsize:=strtoint(popsize.Text);
rlchrom:=strtoint(lchrom.Text);
rmaxgen:=strtoint(maxgen.Text);
rpcross:=strtofloat(pcross.Text);
rpmutation:=strtofloat(pmutation.Text);
if CheckBox1.Checked then
rprintstrings:=1
else
rprintstrings:=0;
except
showmessage('请输入合法数据!');
exit;
end;
gga:=tga.create(str,rrandomseed,rpopsize,rlchrom,rmaxgen,rpcross,rpmutation,rprintstrings);
gga.go;
BitBtn2.Enabled:=true;
screen.Cursor:=crDefault;
end;
procedure TgaFrm.randomseedKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
popsize.SetFocus;
popsize.SelectAll;
end;
end;
procedure TgaFrm.popsizeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
lchrom.SetFocus;
lchrom.SelectAll;
end;
end;
procedure TgaFrm.lchromKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
maxgen.SetFocus;
maxgen.SelectAll;
end;
end;
procedure TgaFrm.maxgenKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
pcross.SetFocus;
pcross.SelectAll;
end;
end;
procedure TgaFrm.pcrossKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
pmutation.SetFocus;
pmutation.SelectAll;
end;
end;
procedure TgaFrm.pmutationKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
CheckBox1.SetFocus;
end;
procedure TgaFrm.FormCreate(Sender: TObject);
begin
randomseed.SelectAll;
BitBtn2.Enabled:=false;
end;
procedure TgaFrm.BitBtn2Click(Sender: TObject);
begin
BitBtn2.Enabled:=false;
memo1.ScrollBars:=ssBoth;
memo1.Clear;
memo1.Lines.LoadFromFile(str);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -