📄 addlangs.pas
字号:
unit AddLangs;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, DB, ADODB;
type
TAddLangsForm = class(TForm)
lblLangNo: TLabel;
lblName: TLabel;
lblTable: TLabel;
rbNoConv: TRadioButton;
rbGbToBig5: TRadioButton;
lblFrom: TLabel;
cbFromLang: TComboBox;
edtLangNo: TEdit;
edtLangName: TEdit;
edtTableName: TEdit;
Bevel1: TBevel;
bbtnOk: TBitBtn;
bbtnExit: TBitBtn;
rbGig5ToGb: TRadioButton;
lblFont: TLabel;
cbFonts: TComboBox;
cbFrom: TCheckBox;
qryLangs: TADOQuery;
lblHelpFile: TLabel;
edtHelpFile: TEdit;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure bbtnOkClick(Sender: TObject);
procedure bbtnExitClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure cbFromClick(Sender: TObject);
private
{ Private declarations }
public
AInsert:Boolean;
{ Public declarations }
end;
var
AddLangsForm: TAddLangsForm;
implementation
uses Languages, SYSDATA, CommFun;
{$R *.dfm}
procedure TAddLangsForm.FormCreate(Sender: TObject);
begin
cbFonts.Items.Clear;
cbFonts.Items:=Screen.Fonts;
cbFromLang.Items.Clear;
qryLangs.Close;
qryLangs.SQL.Clear;
qryLangs.SQL.Add('select * from Langs order by SeqNo');
qryLangs.Open;
while not qryLangs.Eof do
begin
cbFromLang.Items.Add(qryLangs.FieldByName('LangName').Value);
qryLangs.Next;
end;
end;
procedure TAddLangsForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
qryLangs.Close;
end;
procedure TAddLangsForm.bbtnOkClick(Sender: TObject);
var
AFromTable:string;
begin
//确定
if trim(edtLangNo.Text)='' then
begin
ShowMsg('编号不能为空');
Abort;
end;
if trim(edtLangName.Text)='' then
begin
ShowMsg('名称不能为空');
Abort;
end;
if trim(edtTableName.Text)='' then
begin
ShowMsg('表名不能为空');
Abort;
end;
if trim(cbFonts.Text)='' then
begin
ShowMsg('字体不能为空');
Abort;
end;
if AInsert then
begin
qryLangs.Close;
qryLangs.SQL.Clear;
qryLangs.SQL.Add('select 1 from Langs where LangNo='+''''+trim(edtLangNo.Text)+'''');
qryLangs.Open;
if not qryLangs.IsEmpty then
begin
ShowMsg('编号已存在,不能新增');
Abort;
end;
qryLangs.Close;
qryLangs.SQL.Clear;
qryLangs.SQL.Add('select 1 from Langs where TableName='+''''+trim(edtTableName.Text)+'''');
qryLangs.Open;
if not qryLangs.IsEmpty then
begin
ShowMsg('表名已存在,不能新增');
Abort;
end;
if cbFrom.Checked then
begin
if cbFromLang.Text='' then
begin
ShowMsg('必须选择引入的数据源');
Abort;
end;
end;
//创建表
qryLangs.Close;
qryLangs.SQL.Clear;
qryLangs.SQL.Add('create table '+trim(edtTableName.Text)+'(');
qryLangs.SQL.Add(' LangID varchar(20) not null,');
qryLangs.SQL.Add(' Name varchar(255) not null,');
qryLangs.SQL.Add(' Hint varchar(255) not null,');
qryLangs.SQL.Add(' Type int not null default 1');
qryLangs.SQL.Add(')');
qryLangs.ExecSQL;
//插入数据
LanguagesForm.qryLangs.Append;
LanguagesForm.qryLangs.FieldByName('SeqNo').Value:=LanguagesForm.qryLangs.RecordCount+1;
LanguagesForm.qryLangs.FieldByName('LangNo').Value:=trim(edtLangNo.Text);
LanguagesForm.qryLangs.FieldByName('LangName').Value:=trim(edtLangName.Text);
LanguagesForm.qryLangs.FieldByName('FontName').Value:=trim(cbFonts.Text);
LanguagesForm.qryLangs.FieldByName('TableName').Value:=trim(edtTableName.Text);
LanguagesForm.qryLangs.FieldByName('HelpFile').Value:=trim(edtHelpFile.Text);
LanguagesForm.qryLangs.Post;
//引入数据
if cbFrom.Checked then
begin
if cbFromLang.Text='' then
begin
ShowMsg('必须选择引入的数据源');
Abort;
end;
//取得引入的数据源表名
qryLangs.Close;
qryLangs.SQL.Clear;
qryLangs.SQL.Add('select * from Langs where LangName='+''''+trim(cbFromLang.Text)+'''');
qryLangs.Open;
AFromTable:=qryLangs.FieldByName('TableName').Value;
if rbNoConv.Checked then //直接引入不转换
begin
qryLangs.Close;
qryLangs.SQL.Clear;
qryLangs.SQL.Add('insert into '+trim(edtTableName.Text)+'(LangID,Name,Hint)');
qryLangs.SQL.Add('select LangID,Name,Hint from '+AFromTable);
qryLangs.ExecSQL;
end
else if rbGbToBig5.Checked then //简体转繁体
begin
qryLangs.Close;
qryLangs.SQL.Clear;
qryLangs.SQL.Add('insert into '+trim(edtTableName.Text)+'(LangID,Name,Hint)');
qryLangs.SQL.Add('select LangID,Name,Hint from '+AFromTable);
qryLangs.ExecSQL;
qryLangs.Close;
qryLangs.SQL.Clear;
qryLangs.SQL.Add('select LangID,Name,Hint from '+trim(edtTableName.Text));
qryLangs.Open;
while not qryLangs.Eof do
begin
qryLangs.Edit;
qryLangs.FieldByName('Name').Value:=GBChs2Cht(qryLangs.FieldByName('Name').Value);
qryLangs.FieldByName('Hint').Value:=GBChs2Cht(qryLangs.FieldByName('Hint').Value);
qryLangs.Post;
qryLangs.Next;
end;
end
else if rbGig5ToGb.Checked then //繁体转简体
begin
qryLangs.Close;
qryLangs.SQL.Clear;
qryLangs.SQL.Add('insert into '+trim(edtTableName.Text)+'(LangID,Name,Hint)');
qryLangs.SQL.Add('select LangID,Name,Hint from '+AFromTable);
qryLangs.ExecSQL;
qryLangs.Close;
qryLangs.SQL.Clear;
qryLangs.SQL.Add('select LangID,Name,Hint from '+trim(edtTableName.Text));
qryLangs.Open;
while not qryLangs.Eof do
begin
qryLangs.Edit;
qryLangs.FieldByName('Name').Value:=GBCht2Chs(qryLangs.FieldByName('Name').Value);
qryLangs.FieldByName('Hint').Value:=GBCht2Chs(qryLangs.FieldByName('Hint').Value);
qryLangs.Post;
qryLangs.Next;
end;
end;
end;
end else //修改
begin
LanguagesForm.qryLangs.Edit;
LanguagesForm.qryLangs.FieldByName('LangNo').Value:=trim(edtLangNo.Text);
LanguagesForm.qryLangs.FieldByName('LangName').Value:=trim(edtLangName.Text);
LanguagesForm.qryLangs.FieldByName('FontName').Value:=trim(cbFonts.Text);
LanguagesForm.qryLangs.FieldByName('TableName').Value:=trim(edtTableName.Text);
LanguagesForm.qryLangs.Post;
end;
Close;
end;
procedure TAddLangsForm.bbtnExitClick(Sender: TObject);
begin
//退出
Close;
end;
procedure TAddLangsForm.FormActivate(Sender: TObject);
begin
edtLangNo.Enabled:=AInsert;
edtTableName.Enabled:=AInsert;
cbFrom.Enabled:=AInsert;
cbFrom.Checked:=AInsert;
cbFromClick(cbFrom);
if not AInsert then
begin
edtLangNo.Text:=LanguagesForm.qryLangsLangNo.Value;
edtLangName.Text:=LanguagesForm.qryLangsLangName.Value;
edtTableName.Text:=LanguagesForm.qryLangsTableName.Value;
cbFonts.Text:=LanguagesForm.qryLangsFontName.Value;
end;
end;
procedure TAddLangsForm.cbFromClick(Sender: TObject);
begin
cbFromLang.Enabled:=cbFrom.Checked;
rbNoConv.Enabled:=cbFrom.Checked;
rbGbToBig5.Enabled:=cbFrom.Checked;
rbGig5ToGb.Enabled:=cbFrom.Checked;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -