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

📄 task.~pas

📁 通过串口发送多条短信的群发软件
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
  // 添加数据到列表中
  while not unselecteduseradoquery.Eof do
  begin
    ListItem:=unselecteduserlistview.Items.Add;
    ListItem.Caption:=unselecteduseradoquery.Fields.Fields[1].AsString;
    ListItem.SubItems.Add(unselecteduseradoquery.Fields.Fields[2].AsString);
    ListItem.SubItems.Add(unselecteduseradoquery.Fields.Fields[0].AsString);
    ListItem.SubItems.Add(unselecteduseradoquery.Fields.Fields[4].AsString);
    ListItem.SubItems.Add(unselecteduseradoquery.Fields.Fields[5].AsString);
    ListItem.SubItems.Add(unselecteduseradoquery.Fields.Fields[6].AsString);
    ListItem.SubItems.Add(unselecteduseradoquery.Fields.Fields[7].AsString);
    ListItem.SubItems.Add(unselecteduseradoquery.Fields.Fields[8].AsString);
    ListItem.SubItems.Add(unselecteduseradoquery.Fields.Fields[9].AsString);
    ListItem.SubItems.Add(unselecteduseradoquery.Fields.Fields[10].AsString);
    ListItem.SubItems.Add(unselecteduseradoquery.Fields.Fields[3].AsString);
    ListItem.SubItems.Add(unselecteduseradoquery.Fields.Fields[11].AsString);

    unselecteduseradoquery.Next;
  end;

  unselecteduseradoquery.Close;
  unselecteduseradoquery.Free;
end;

procedure TtaskForm.clearSpeedButtonClick(Sender: TObject);
begin
  //清空条件选项
  sexComboBox.ItemIndex:=-1;
  occupationComboBox.ItemIndex:=-1;
  birth_yearComboBox.ItemIndex:=-1;
  companyComboBox.ItemIndex:=-1;
  departmentComboBox.ItemIndex:=-1;
  jobComboBox.ItemIndex:=-1;

end;

procedure TtaskForm.querySpeedButtonClick(Sender: TObject);
begin
  self.ShowUnselectedusers(trim(sexComboBox.Text),trim(occupationComboBox.Text),
  trim(birth_yearComboBox.Text),trim(companyComboBox.Text),
  trim(departmentComboBox.Text),trim(jobComboBox.Text));
end;

procedure TtaskForm.addSpeedButtonClick(Sender: TObject);
var
  ListItem: TListItem;
  i:integer;
begin
  if unselecteduserlistview.SelCount=1 then
  begin
    //将未选客户添加已选客户栏
    ListItem:=selecteduserlistview.Items.Add;
    ListItem.Caption:=unselecteduserlistview.Selected.Caption;
    for i:=0 to unselecteduserlistview.Selected.SubItems.Count-1 do
      ListItem.SubItems.Add(unselecteduserlistview.Selected.SubItems.Strings[i]);

    //将客户从未选客户栏中删除
    unselecteduserlistview.DeleteSelected;
  end;
end;

procedure TtaskForm.deleteSpeedButtonClick(Sender: TObject);
var
  ListItem: TListItem;
  i:integer;
begin
  if selecteduserlistview.SelCount=1 then
  begin
    //将已选客户添加未选客户栏
    ListItem:=unselecteduserlistview.Items.Add;
    ListItem.Caption:=selecteduserlistview.Selected.Caption;
    for i:=0 to selecteduserlistview.Selected.SubItems.Count-1 do
      ListItem.SubItems.Add(selecteduserlistview.Selected.SubItems.Strings[i]);

    //将客户从已选客户栏中删除
    selecteduserlistview.DeleteSelected;
  end;
end;

procedure TtaskForm.exitBitBtnClick(Sender: TObject);
begin
  close;
end;

procedure TtaskForm.send_immediatelyRadioButtonClick(Sender: TObject);
begin
  DateTimePicker1.Visible:=False;
  DateTimePicker2.Visible:=False;
end;

procedure TtaskForm.select_timeRadioButtonClick(Sender: TObject);
begin
  DateTimePicker1.Visible:=True;
  DateTimePicker2.Visible:=True;
  DateTimePicker1.Date:=date;
  DateTimePicker2.Time:=time;
end;

procedure TtaskForm.sureBitBtnClick(Sender: TObject);
var
  task_id,mobile_telephone,send_time:string;
  sm_content:String;
  s:String;
  s_count:Integer;
  i:Integer;
  ListItem:TListItem;
begin
  //检查是否已选择联系人
  if selecteduserlistview.Items.Count=0 then
  begin
    application.MessageBox('请选择联系人!','提示',MB_OK);
    exit;
  end;
  // 检查是否已输入短信内容
  if smMemo.Text='' then
  begin
    application.MessageBox('请输入短信内容!','提示',MB_OK);
    smMemo.SetFocus;
    exit;
  end;

  sm_content:=smMemo.Text;
  //短信分段
  while sm_content<>'' do
  begin
    //取适当长度的短信
    s_count:=0;
    s:='';
    while (sm_content<>'') and (s_count<70) do
    begin
      //该字符为中文
      if Ord(sm_content[1])>=128 then
      begin
        //字符计数加1
        s_count:=s_count+1;
        //取该中文字符
        s:=s+Copy(sm_content,1,2);
        //删除该中文字符
        delete(sm_content,1,2);
      end
      //该字符为英文
      else
      begin
        //字符计数加1
        s_count:=s_count+1;
        //取该中文字符
        s:=s+Copy(sm_content,1,1);
        //删除该中文字符
        delete(sm_content,1,1);
      end;
    end;

    //等待1秒    
    sleep(1000);

    //生成任务编号
    task_id:=datetimetostr(now);

    // 判断是立即发送还是定时发送
    if send_immediatelyRadioButton.Checked then
      send_time:=task_id
    else
      send_time:=datetostr(DateTimePicker1.Date)+' '+timetostr(DateTimePicker2.Time);

    //生成电话号码串
    for i:=0 to selecteduserlistview.Items.Count-1 do
      mobile_telephone:=mobile_telephone+
      selecteduserlistview.Items.Item[i].SubItems.Strings[1]+';';

    // 向 taskadocommand 对象
    try
      taskadoquery.Append;
      taskadoquery.Fields.Fields[0].AsString:=task_id;
      taskadoquery.Fields.Fields[1].AsString:=mobile_telephone;
      taskadoquery.Fields.Fields[2].AsString:=send_time;
      taskadoquery.Fields.Fields[3].AsInteger:=selecteduserlistview.Items.Count;
      taskadoquery.Fields.Fields[4].AsInteger:=0;
      taskadoquery.Fields.Fields[5].AsInteger:=0;
      taskadoquery.Fields.Fields[6].AsInteger:=selecteduserlistview.Items.Count;
      taskadoquery.Fields.Fields[7].AsString:=s;
      taskadoquery.Fields.Fields[10].AsString:=mobile_telephone;

      taskadoquery.Post;
    except
      application.MessageBox('发生错误!','提示',MB_OK);
      exit;
    end;

    //将新建任务信息添加到任务列表中
    ListItem:=mainForm.taskListView.Items.Add;
    ListItem.ImageIndex:=2;
    ListItem.Caption:=task_id;
    ListItem.SubItems.Add('等待');
    ListItem.SubItems.Add(send_time);
    ListItem.SubItems.Add(inttostr(selecteduserlistview.Items.Count));
    ListItem.SubItems.Add('0');
    ListItem.SubItems.Add('0');
    ListItem.SubItems.Add(inttostr(selecteduserlistview.Items.Count));
    ListItem.SubItems.Add(s);
  end;

  close;
end;

procedure TtaskForm.smMemoChange(Sender: TObject);
var
  s:String;
  s_len:Integer;
begin
  //对短信内容进行编码
  s:=EncodeChinese(smMemo.Text);
  //计算短信长度
  s_len:=Length(s) div 4;
  
  if s_len mod 70 =0 then
    charcountStaticText.Caption:=inttostr(s_len)+'/'+
    inttostr(s_len div 70)
  else if s_len mod 70 <>0 then
    charcountStaticText.Caption:=inttostr(s_len)+'/'+
    inttostr(s_len div 70 + 1)

end;

procedure TtaskForm.insert_smSpeedButtonClick(Sender: TObject);
begin
  //初始化
  inserttextForm.selectedtext:='';

  //取得选中的文本信息
  if inserttextForm.ShowModal=mrOK then
    smMemo.Text:=smMemo.Text+inserttextForm.selectedtext;
end;

procedure TtaskForm.selecteduserListViewInsert(Sender: TObject;
  Item: TListItem);
begin
  //显示当前的已选的联系人的数量
  selecteduserLabel.Caption:='已添加'+IntToStr(selecteduserlistview.Items.Count)+
  '个联系人';
end;

procedure TtaskForm.selecteduserListViewDeletion(Sender: TObject;
  Item: TListItem);
begin
  //显示当前的已选的联系人的数量
  selecteduserLabel.Caption:='已添加'+IntToStr(selecteduserlistview.Items.Count-1)+
  '个联系人';
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -