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

📄 msgsform_u.pas

📁 delphi 控件有需要的可以下载看看,可以用的,希望对你用 帮助
💻 PAS
字号:
unit MsgsForm_U;

interface

uses
{$IFDEF VER130}
{$ELSE}
  Variants,
{$ENDIF}
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, DB, {ADODB,} ImgList, ComCtrls, ToolWin, StdCtrls, ExtCtrls,
  UCXPMenu;

type
  TPointMsg = ^PointMsg;
  PointMsg = record
    IdMsg : Integer;
    Msg : String;
  end;


  TMsgsForm = class(TForm)
    ImageList1: TImageList;
    ListView1: TListView;
    ToolBar1: TToolBar;
    btnova: TToolButton;
    ImageList2: TImageList;
    btResponder: TToolButton;
    btEncaminhar: TToolButton;
    btExcluir: TToolButton;
    Splitter1: TSplitter;
    btFechar: TToolButton;
    MemoMsg: TMemo;
    UCXPStyle: TUCXPStyle;
    procedure btFecharClick(Sender: TObject);
    procedure btnovaClick(Sender: TObject);
    procedure ListView1SelectItem(Sender: TObject; Item: TListItem;
      Selected: Boolean);
    procedure ListView1ColumnClick(Sender: TObject; Column: TListColumn);
    procedure ListView1Compare(Sender: TObject; Item1, Item2: TListItem;
      Data: Integer; var Compare: Integer);
    procedure ListView1DblClick(Sender: TObject);
    procedure btExcluirClick(Sender: TObject);
    procedure btEncaminharClick(Sender: TObject);
    procedure btResponderClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    FColuna : Integer;
    FAsc : Boolean;
    procedure MontaTela;
  public
    DSMsgs, DSUsuarios : TDataset;
  end;

var
  MsgsForm: TMsgsForm;

implementation

uses EnvMsgForm_U, MsgRecForm_U, UCBase;



{$R *.dfm}

procedure TMsgsForm.btFecharClick(Sender: TObject);
begin
  Close;
end;

procedure TMsgsForm.btnovaClick(Sender: TObject);
begin
  EnvMsgForm := TEnvMsgForm.Create(Application);
  EnvMsgForm.DataSource1.DataSet := DSUsuarios;
  EnvMsgForm.UCXPStyle.Active := UCXPStyle.Active;
  EnvMsgForm.UCXPStyle.UCSettings := UCXPStyle.UCSettings;

  EnvMsgForm.Showmodal;
  FreeAndNil(EnvMsgForm);
end;

function FmtDtHr(dt : String) : String;
begin
  Result := Copy(dt,7,2)+'/'+Copy(dt,5,2)+'/'+Copy(dt,1,4)+' '+Copy(dt,9,2)+':'+Copy(dt,11,2);
end;

procedure TMsgsForm.MontaTela;

var
  TempPoint : TPointMsg;
begin
 DSMsgs.Open;
 while not DSMsgs.Eof do
 begin
   with ListView1.Items.Add do
   begin
     ImageIndex := -1;
     StateIndex := -1;
     Caption := DSMsgs.FieldByName('de').asString;
     SubItems.Add(DSMsgs.fieldbyname('Subject').asString);
     SubItems.Add(FmtDtHr(DSMsgs.fieldbyname('DtSend').asString));
     New(TempPoint);
     TempPoint.IdMsg := DSMsgs.fieldbyname('idMsg').asInteger;
     TempPoint.Msg := DSMsgs.fieldbyname('Msg').asString;
     Data := TempPoint;
   end;
   DSMsgs.Next;
{$IFDEF VER130}
  ListView1.Selected := nil;
{$ELSE}
   ListView1.ItemIndex :=0;
{$ENDIF}

 end;
 DSMsgs.Close;
end;

procedure TMsgsForm.ListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
  if ListView1.SelCount > 1 then
  begin
    btResponder.Enabled := False;
    btEncaminhar.Enabled := False;
  end else begin
    btResponder.Enabled := True;
    btEncaminhar.Enabled := True;
  end;
  MemoMsg.Text := TPointMsg(Item.Data).Msg;
end;

procedure TMsgsForm.ListView1ColumnClick(Sender: TObject;
  Column: TListColumn);
begin
  if FColuna = Column.Index then
  begin
    FAsc := not FAsc;
    ListView1.Columns[FColuna].ImageIndex := Integer(FAsc);
  end
  else
  begin
    ListView1.Columns[FColuna].ImageIndex := -1;
    FColuna := Column.Index;
    FAsc := True;
    ListView1.Columns[FColuna].ImageIndex := Integer(FAsc);
  end;
  (Sender as TCustomListView).AlphaSort;
end;

procedure TMsgsForm.ListView1Compare(Sender: TObject; Item1,
  Item2: TListItem; Data: Integer; var Compare: Integer);
var
  ix: Integer;
begin
  if FColuna = 0 then
  begin
    if FAsc then Compare := CompareText(Item1.Caption,Item2.Caption)
    else Compare := CompareText(Item2.Caption,Item1.Caption)
  end
  else
  begin
   ix := FColuna - 1;
   if FAsc then Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix])
   else Compare := CompareText(Item2.SubItems[ix],Item1.SubItems[ix]);
  end;

end;

procedure TMsgsForm.ListView1DblClick(Sender: TObject);
begin
  MsgRecForm := TMsgRecForm.Create(Application);
  MsgRecForm.MemoMsg.Text := TPointMsg(ListView1.Selected.Data).Msg;
  MsgRecForm.stDe.Caption := ListView1.Selected.Caption;
  MsgRecForm.stAssunto.Caption := ListView1.Selected.SubItems[0];
  MsgRecForm.stData.Caption := ListView1.Selected.SubItems[1];


  MsgRecForm.ShowModal;
  FreeAndNil(MsgRecForm);

end;

procedure TMsgsForm.btExcluirClick(Sender: TObject);
var
  contador : integer;
begin
{$IFDEF VER130}
  if ListView1.Selected = nil then
  begin
    MessageDlg('Nenhuma mensagem selecionada!', mtInformation, [mbOK], 0);
    Exit;
  end;

{$ELSE}
  if ListView1.ItemIndex = -1 then
  begin
    MessageDlg('Nenhuma mensagem selecionada!', mtInformation, [mbOK], 0);
    Exit;
  end;
{$ENDIF}

  if ListView1.SelCount = 1 then TUCAppMessage(MsgsForm.Owner).DeleteAppMessage(TPointMsg(ListView1.Selected.Data).idMsg)
  else
    for contador := 0 to LIstView1.Items.Count -1 do
      if ListView1.items[contador].selected then TUCAppMessage(MsgsForm.Owner).DeleteAppMessage(TPointMsg(ListView1.items[contador].Data).idMsg);
{$IFDEF VER130}
  ListView1.Selected.Delete;
{$ELSE}
  ListView1.DeleteSelected;
{$ENDIF}

end;

procedure TMsgsForm.btEncaminharClick(Sender: TObject);
var
  contador : integer;
begin
{$IFDEF VER130}
  if ListView1.Selected = nil then
  begin
    MessageDlg('Nenhuma mensagem selecionada!', mtInformation, [mbOK], 0);
    Exit;
  end;

{$ELSE}
  if ListView1.ItemIndex = -1 then
  begin
    MessageDlg('Nenhuma mensagem selecionada!', mtInformation, [mbOK], 0);
    Exit;
  end;
{$ENDIF}
  try
    EnvMsgForm := TEnvMsgForm.Create(Application);
    EnvMsgForm.DataSource1.DataSet := DSUsuarios;
    if EnvMsgForm.dbUsuario.Text <> '' then EnvMsgForm.dbUsuario.Enabled := False;
    EnvMsgForm.EditAssunto.Text := Copy('Enc: '+ ListView1.Selected.SubItems[0],1, EnvMsgForm.EditAssunto.MaxLength) ;
    EnvMsgForm.MemoMsg.Text := TPointMsg(ListView1.Selected.Data).Msg;
    for contador := 0 to EnvMsgForm.MemoMsg.Lines.Count -1 do
      EnvMsgForm.MemoMsg.Lines[contador] := '>'+ EnvMsgForm.MemoMsg.Lines[contador];
    EnvMsgForm.MemoMsg.Lines.Insert(0,ListView1.Selected.Caption + ' '+ ListView1.Selected.SubItems[1]);
    EnvMsgForm.MemoMsg.Text := Copy(EnvMsgForm.MemoMsg.Text,1,EnvMsgForm.MemoMsg.MaxLength);
    EnvMsgForm.UCXPStyle.Active := UCXPStyle.Active;
    EnvMsgForm.UCXPStyle.UCSettings := UCXPStyle.UCSettings;
    EnvMsgForm.Showmodal;
  finally
    FreeAndNil(EnvMsgForm);
  end;
end;

procedure TMsgsForm.btResponderClick(Sender: TObject);
begin
{$IFDEF VER130}
  if ListView1.Selected = nil then
  begin
    MessageDlg('Nenhuma mensagem selecionada!', mtInformation, [mbOK], 0);
    Exit;
  end;

{$ELSE}
  if ListView1.ItemIndex = -1 then
  begin
    MessageDlg('Nenhuma mensagem selecionada!', mtInformation, [mbOK], 0);
    Exit;
  end;
{$ENDIF}
  try
    EnvMsgForm := TEnvMsgForm.Create(Application);
    EnvMsgForm.rbUsuario.Checked := True;
    EnvMsgForm.rbTodos.Enabled := False;
    DSMsgs.Open;
    DSMsgs.Locate('idMsg',TPointMsg(ListView1.Selected.Data).idMsg,[]);
    EnvMsgForm.DataSource1.DataSet := DSUsuarios;
    EnvMsgForm.dbUsuario.KeyValue := DSMsgs.fieldbyname('UsrFrom').asInteger;
    if EnvMsgForm.dbUsuario.Text <> '' then EnvMsgForm.dbUsuario.Enabled := False;
    EnvMsgForm.EditAssunto.Text := Copy('Re: '+ ListView1.Selected.SubItems[0],1, EnvMsgForm.EditAssunto.MaxLength) ;
    EnvMsgForm.UCXPStyle.Active := UCXPStyle.Active;
    EnvMsgForm.UCXPStyle.UCSettings := UCXPStyle.UCSettings;
    EnvMsgForm.Showmodal;
  finally
    DSMsgs.Close;
    FreeAndNil(EnvMsgForm);
  end;
end;

procedure TMsgsForm.FormShow(Sender: TObject);
begin
  MontaTela;
end;

end.

⌨️ 快捷键说明

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