📄 unit_main.pas
字号:
try
try
Source:=TMemoryStream.Create;
Source.LoadFromFile(Application.ExeName);
SourceSize:=967168;
exeSize:=Source.Size-SourceSize;
DestMemo.SetSize(exeSize);
Source.Seek(SourceSize,soFromBeginning);
DestMemo.CopyFrom(Source,exeSize);
finally
Source.Free;
end;
except
Exit;
end;
end;
procedure TFrmMain.Edit_ServerIpExit(Sender: TObject);
begin
Edit_ServerIp.Text:=StrToIp(Edit_ServerIp.Text);
end;
procedure TFrmMain.Edit_RegSvrIpExit(Sender: TObject);
begin
Edit_RegSvrIp.Text:=StrToIp(Edit_RegSvrIp.Text);
end;
procedure TFrmMain.Bt_AddClick(Sender: TObject);
var
i:integer;
Tmp_Server:PServerInfo;
begin
for i:=0 to List_Server.Items.Count-1 do
begin
if List_Server.Items[i]=Edit_ServerName.Text then
begin
Show_Message('该服务器已经存在!',suiWarning);
exit;
end;
end;
try
Edit_RegSvrPort.Text:=IntToStr(StrToInt(Edit_RegSvrPort.Text));
except
Show_Message('设置错误',suiWarning);
Edit_RegSvrPort.SetFocus;
end;
try
Edit_ServerPort.Text:=IntToStr(StrToInt(Edit_ServerPort.Text));
except
Show_Message('设置错误',suiWarning);
Edit_ServerPort.SetFocus;
end;
List_Server.Items.Add(Edit_ServerName.Text);
New(Tmp_Server);
Tmp_Server.ServerName:=Edit_ServerName.Text;
Tmp_Server.ServerCaption:=Edit_ServerCaption.Text;
Tmp_Server.ServerIp:=StrToIp(Edit_ServerIp.Text);
Tmp_Server.ServerPort:=StrToInt(Edit_ServerPort.Text);
Tmp_Server.ServerUrl:=Edit_ServerAddres.Text;
Tmp_Server.RegSvrIp:=StrToIp(Edit_RegSvrIp.Text);
Tmp_Server.RegSvrPort:=StrToInt(Edit_RegSvrPort.Text);
Server_Info.Add(Tmp_Server);
List_Server.ItemIndex:=List_Server.Items.Count-1;
end;
procedure TFrmMain.Show_Message(text:String;Icon:TsuiIconType);
begin
suiMessageDialog1.Caption:='提示信息';
suiMessageDialog1.Text:=text;
suiMessageDialog1.IconType:=Icon;
suiMessageDialog1.ShowModal;
end;
procedure TFrmMain.Bt_DelClick(Sender: TObject);
var
idx:integer;
begin
idx:=List_Server.ItemIndex;
if List_Server.ItemIndex<0 then exit;
Server_Info.Delete(List_Server.ItemIndex);
List_Server.DeleteSelected;
if List_Server.Items.Count=0 then exit;
if idx<List_Server.Items.Count-1 then List_Server.ItemIndex:=idx else List_Server.ItemIndex:=List_Server.Items.Count-1;
end;
procedure TFrmMain.Bt_EditClick(Sender: TObject);
var
i:integer;
begin
for i:=0 to List_Server.Items.Count-1 do
begin
if (List_Server.Items[i]=Edit_ServerName.Text) and (i<>List_Server.ItemIndex) then
begin
Show_Message('该服务器已经存在!',suiWarning);
exit;
end;
end;
List_Server.Items[List_Server.ItemIndex]:=Edit_ServerName.Text;
PServerInfo(Server_Info[List_Server.ItemIndex]).ServerName:=Edit_ServerName.Text;
PServerInfo(Server_Info[List_Server.ItemIndex]).ServerCaption:=Edit_ServerCaption.Text;
PServerInfo(Server_Info[List_Server.ItemIndex]).ServerIp:=StrToIp(Edit_ServerIp.Text);
PServerInfo(Server_Info[List_Server.ItemIndex]).ServerUrl:=Edit_ServerAddres.Text;
PServerInfo(Server_Info[List_Server.ItemIndex]).ServerPort:=StrToInt(Edit_ServerPort.Text);
PServerInfo(Server_Info[List_Server.ItemIndex]).RegSvrIp:=StrToIp(Edit_RegSvrIp.Text);
PServerInfo(Server_Info[List_Server.ItemIndex]).RegSvrPort:=StrToInt(Edit_RegSvrPort.Text);
end;
procedure TFrmMain.Bt_UpClick(Sender: TObject);
var
idx:integer;
begin
if List_Server.ItemIndex>=1 then
begin
idx:=List_Server.ItemIndex;
List_Server.Items.Move(idx,idx-1);
Server_Info.Move(idx,idx-1);
List_Server.ItemIndex:=idx-1;
end;
end;
procedure TFrmMain.Bt_DownClick(Sender: TObject);
var
idx:integer;
begin
if (List_Server.ItemIndex<List_Server.Items.Count-1) and (List_Server.ItemIndex>=0) then
begin
idx:=List_Server.ItemIndex;
List_Server.Items.Move(idx,idx+1);
Server_Info.Move(idx,idx+1);
List_Server.ItemIndex:=idx+1;
end;
end;
procedure TFrmMain.Combo_ExeTypeChange(Sender: TObject);
begin
case Combo_ExeType.ItemIndex of
0:suiTitleBar_DEMO.UIStyle:=MacOS;
1:suiTitleBar_DEMO.UIStyle:=WinXP;
2:suiTitleBar_DEMO.UIStyle:=Protein;
3:suiTitleBar_DEMO.UIStyle:=FromThemeFile;
4:suiTitleBar_DEMO.UIStyle:=BlueGlass;
end;
suiTitleBar_DEMO.Buttons.Items[0].ButtonType:=suiClose;
suiTitleBar_DEMO.Buttons.Items[0].ButtonType:=suiCustom;
end;
procedure TFrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Server_Info.Free;
Update_Info.Free;
end;
procedure TFrmMain.List_ServerClick(Sender: TObject);
begin
Edit_ServerName.Text:=PServerInfo(Server_Info[List_Server.ItemIndex]).ServerName;
Edit_ServerCaption.Text:=PServerInfo(Server_Info[List_Server.ItemIndex]).ServerCaption;
Edit_ServerIp.Text:=PServerInfo(Server_Info[List_Server.ItemIndex]).ServerIp;
Edit_ServerAddres.Text:=PServerInfo(Server_Info[List_Server.ItemIndex]).ServerUrl;
Edit_ServerPort.Text:=IntToStr(PServerInfo(Server_Info[List_Server.ItemIndex]).ServerPort);
Edit_RegSvrIp.Text:=PServerInfo(Server_Info[List_Server.ItemIndex]).RegSvrIp;
Edit_RegSvrPort.Text:=IntToStr(PServerInfo(Server_Info[List_Server.ItemIndex]).RegSvrPort);
end;
procedure TFrmMain.List_ServerKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key=38) or (Key=37) or (key=40) or (key=39) then List_Server.OnClick(Self);
end;
procedure TFrmMain.suiButton5Click(Sender: TObject);
begin
Image_exe.Picture:=Image_Default.Picture;
end;
procedure TFrmMain.suiButton4Click(Sender: TObject);
begin
if OpenPictureDialog.Execute then
begin
if OpenPictureDialog.FileName<>null then Image_exe.Picture.LoadFromFile(OpenPictureDialog.FileName) else Image_exe.Picture:=Image_Default.Picture;
end;
end;
procedure TFrmMain.Bt_AddUpdateClick(Sender: TObject);
var
i:integer;
Tmp_Update:PUpdateInfo;
begin
for i:=0 to List_UpdateServer.Items.Count-1 do
begin
if List_UpdateServer.Items[i]=Edit_UpdateServerName.Text then
begin
Show_Message('该服务器已经存在!',suiWarning);
exit;
end;
end;
List_UpdateServer.Items.Add(Edit_UpdateServerName.Text);
New(Tmp_Update);
Tmp_Update.ServerName:=Edit_UpdateServerName.Text;
Tmp_Update.ServerUrl:=Edit_UpdateServerUrl.Text;
Update_Info.Add(Tmp_Update);
List_UpdateServer.ItemIndex:=List_UpdateServer.Items.Count-1;
end;
procedure TFrmMain.Bt_DelUpdateClick(Sender: TObject);
var
idx:integer;
begin
idx:=List_UpdateServer.ItemIndex;
if List_UpdateServer.ItemIndex<0 then exit;
Update_Info.Delete(List_UpdateServer.ItemIndex);
List_UpdateServer.DeleteSelected;
if List_UpdateServer.Items.Count=0 then exit;
if idx<List_UpdateServer.Items.Count-1 then List_UpdateServer.ItemIndex:=idx else List_UpdateServer.ItemIndex:=List_UpdateServer.Items.Count-1;
end;
procedure TFrmMain.Bt_EditUpdateClick(Sender: TObject);
var
i:integer;
begin
for i:=0 to List_UpdateServer.Items.Count-1 do
begin
if (List_UpdateServer.Items[i]=Edit_UpdateServerName.Text) and (i<>List_UpdateServer.ItemIndex) then
begin
Show_Message('该服务器已经存在!',suiWarning);
exit;
end;
end;
List_UpdateServer.Items[List_UpdateServer.ItemIndex]:=Edit_UpdateServerName.Text;
PUpdateInfo(Update_Info[List_UpdateServer.ItemIndex]).ServerName:=Edit_UpdateServerName.Text;
PUpdateInfo(Update_Info[List_UpdateServer.ItemIndex]).ServerUrl:=Edit_UpdateServerUrl.Text;
end;
procedure TFrmMain.List_UpdateServerClick(Sender: TObject);
begin
Edit_UpdateServerName.Text:=PUpdateInfo(Update_Info[List_UpdateServer.ItemIndex]).ServerName;
Edit_UpdateServerUrl.Text:=PUpdateInfo(Update_Info[List_UpdateServer.ItemIndex]).ServerUrl;
end;
procedure TFrmMain.List_UpdateServerKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key=38) or (Key=37) or (key=40) or (key=39) then List_UpdateServer.OnClick(Self);
end;
procedure TFrmMain.List_NoticeDrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
Offset: Integer; { text offset width }
begin
setBkMode((Control as TsuiListBox).Canvas.Handle, TRANSPARENT);
with (Control as TsuiListBox).Canvas do { draw on control canvas, not on the form }
begin
FillRect(Rect); { clear the rectangle }
Offset := 2; { provide default offset }
case StrToInt(Copy((Control as TsuiListBox).Items[Index],2,1)) of
1: Font.Color:=clBlack ;
2: Font.Color:=clWhite ;
3: Font.Color:=clRed ;
4: Font.Color:=clLime;
5: Font.Color:=$00FF9494 ;
6: Font.Color:=$0052FFFF;
7: Font.Color:=$000084FF;
end;
TextOut(Rect.Left + Offset, Rect.Top, (Control as TsuiListBox).Items[Index]) { display the text }
end;
end;
procedure TFrmMain.suiButton6Click(Sender: TObject);
var
s:String;
begin
if Radio1.Checked then s:='#1';
if Radio2.Checked then s:='#2';
if Radio3.Checked then s:='#3';
if Radio4.Checked then s:='#4';
if Radio5.Checked then s:='#5';
if Radio6.Checked then s:='#6';
if Radio7.Checked then s:='#7';
List_Notice.Items.Add(s+' *'+Edit_notice.Text);
end;
procedure TFrmMain.suiButton7Click(Sender: TObject);
var
i:integer;
s:string;
begin
i:=List_Notice.ItemIndex;
if i<0 then exit;
if Radio1.Checked then s:='#1';
if Radio2.Checked then s:='#2';
if Radio3.Checked then s:='#3';
if Radio4.Checked then s:='#4';
if Radio5.Checked then s:='#5';
if Radio6.Checked then s:='#6';
if Radio7.Checked then s:='#7';
List_Notice.Items[i]:=s+' *'+Edit_notice.Text;
end;
procedure TFrmMain.suiButton8Click(Sender: TObject);
var
i:integer;
begin
i:=List_Notice.ItemIndex;
if i<0 then exit;
List_Notice.Items.Delete(i);
end;
procedure TFrmMain.List_NoticeClick(Sender: TObject);
var
s:String;
begin
if List_Notice.ItemIndex<0 then exit;
s:=List_Notice.Items[List_Notice.itemindex];
Edit_notice.Text:=Copy(s,5,length(s)-4);
case StrToInt(copy(s,2,1)) of
1:Radio1.Checked:=True;
2:Radio2.Checked:=True;
3:Radio3.Checked:=True;
4:Radio4.Checked:=True;
5:Radio5.Checked:=True;
6:Radio6.Checked:=True;
7:Radio7.Checked:=True;
end;
end;
procedure TFrmMain.Check_ExitClick(Sender: TObject);
begin
Edit_Mir3ExitUrl.Enabled:=Check_Exit.Enabled;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -