⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit_main.pas

📁 传奇3封外挂客户端+登陆器+配置器源码............................
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  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 + -