📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, XPMan, StdCtrls, Buttons, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;
type
TForm1 = class(TForm)
XPManifest1: TXPManifest;
Memo1: TMemo;
GroupBox1: TGroupBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
GroupBox2: TGroupBox;
Memo2: TMemo;
GroupBox3: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
wl_glossary: TComboBox;
wl_srclang: TComboBox;
wl_trglang: TComboBox;
GroupBox4: TGroupBox;
Button4: TButton;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
Button5: TButton;
Button6: TButton;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
http: TIdHTTP;
SaveDialog1: TSaveDialog;
function GetHex(const aStr: string): string;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Memo1Change(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure Memo2Change(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.SetFocus;
If Memo1.SelLength = 0 then
Memo1.SelectAll;
Memo1.CopyToClipboard;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.SetFocus;
Memo1.PasteFromClipboard;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Memo1.Text := '';
BitBtn1.Enabled := False;
end;
procedure TForm1.Memo1Change(Sender: TObject);
begin
If Memo1.Text <> '' then
begin
Button1.Enabled := True;
Button3.Enabled := True;
BitBtn1.Enabled := True;
RadioButton1.Enabled := True;
end
else
begin
Button1.Enabled := False;
Button3.Enabled := False;
BitBtn1.Enabled := False;
// RadioButton1.Checked := False;
RadioButton1.Enabled := False;
end;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Memo2.SetFocus;
Memo2.SelectAll;
Memo2.CopyToClipboard;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Memo2.Text := '';
RadioButton2.Enabled := False;
RadioButton3.Enabled := False;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
s, s1: TStringStream;
gl,srl,trl,ss:String;
Inicial,Final: Integer;
begin
Case wl_glossary.ItemIndex of
0: gl := 'gl1';
1: gl := 'gl2';
2: gl := 'gl3';
3: gl := 'gl4';
4: gl := 'gl5';
5: gl := 'gl6';
6: gl := 'gl7';
7: gl := 'gl8';
8: gl := 'gl9';
9: gl := 'gl10';
10: gl := 'gl11';
11: gl := 'gl12';
12: gl := 'gl13';
13: gl := 'gl14';
14: gl := 'gl15';
15: gl := 'gl16';
16: gl := 'gl17';
17: gl := 'gl18';
18: gl := 'gl19';
19: gl := 'gl20';
20: gl := 'gl21';
end;
Case wl_srclang.ItemIndex of
0: srl := 'none';
1: srl := 'EN';
2: srl := 'ZH_CN';
3: srl := 'ZH_TW';
4: srl := 'NL';
5: srl := 'FR';
6: srl := 'DE';
7: srl := 'EL';
8: srl := 'IT';
9: srl := 'JA';
10: srl := 'KO';
11: srl := 'PT';
12: srl := 'RU';
13: srl := 'ES';
end;
Case wl_trglang.ItemIndex of
0: trl := 'none';
1: trl := 'EN';
2: trl := 'ZH_CN';
3: trl := 'ZH_TW';
4: trl := 'NL';
5: trl := 'FR';
6: trl := 'DE';
7: trl := 'EL';
8: trl := 'IT';
9: trl := 'JA';
10: trl := 'KO';
11: trl := 'PT';
12: trl := 'RU';
13: trl := 'ES';
end;
if (srl='none') then
begin
showmessage('请选择原文语言!');
exit;
end;
if (trl='none') then
begin
showmessage('请选择译文语言!');
exit;
end;
if (srl=trl) then
begin
showmessage('原文语言和译文语言不能相同!');
exit;
end;
s := TStringStream.Create('');
s1 := TStringStream.Create('');
s.WriteString('wl_url=&wl_text='+GetHex(AnsiToUtf8(memo1.Text))+'&wl_glossary='+gl+'&wl_srclang='+srl+'&wl_trglang='+trl+'&wl_ucp=1');
//s.WriteString('wl_url=&wl_text='+AnsiToUtf8(memo1.Text)+'&wl_glossary='+gl+'&wl_srclang='+srl+'&wl_trglang='+trl+'&wl_ucp=1');
http.Request.ContentType := 'application/x-www-form-urlencoded';
try
http.Post('http://www.worldlingo.com/wl/translate', s, s1)
except
http.Get(http.Response.Location, s1);
end;
// ss:=s1.ReadString;
Inicial := Pos('"wl_result"',s1.DataString)+125; //获得文本框开头文本
Final := Pos('</textarea>',s1.DataString); //获得文本框结尾
ss := Copy(s1.DataString,Inicial,Final-Inicial);
Memo2.Lines.Text := Utf8Toansi(ss);
end;
function TForm1.GetHex(const aStr: string): string;
var
i: Integer;
begin
for i := 1 to Length(aStr) do
begin
Result := Result + '%' + Format('%.2x', [Ord(aStr[i])]);
end;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
Application.Terminate;
end;
procedure TForm1.Memo2Change(Sender: TObject);
begin
If Memo2.Text <> '' then
begin
Button5.Enabled := True;
Button6.Enabled := True;
Button4.Enabled := True;
RadioButton2.Enabled := True;
RadioButton3.Enabled := True;
end
else
begin
Button5.Enabled := False;
Button6.Enabled := False;
Button4.Enabled := False;
// RadioButton1.Checked := False;
RadioButton2.Enabled := False;
RadioButton3.Enabled := False;
end;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Form2.ShowModal;
end;
procedure TForm1.Button4Click(Sender: TObject);
Var
st:TStringList;
begin
st := TStringList.Create();
st.Text :='以下为原文内容:'+#13+#10+'原文语言:'+wl_srclang.Text+#13+#10+ Memo1.Text+#13+#10;
st.Text :=st.Text+#13+#10+'以下为译文内容:'+#13+#10+'译文语言:'+wl_trglang.Text+#13+#10 + Memo2.Text;
If RadioButton1.Checked and SaveDialog1.Execute then
Memo2.Lines.SaveToFile(SaveDialog1.Filename);
If RadioButton2.Checked and SaveDialog1.Execute then
Memo2.Lines.SaveToFile(SaveDialog1.FileName);
If RadioButton3.Checked and SaveDialog1.Execute then
st.SaveToFile(SaveDialog1.FileName);
st.Free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -