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

📄 search.pas

📁 SM_Msg.rar 手机短信发送程序
💻 PAS
字号:
unit Search;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls, XPMenu, ExtCtrls, Buttons, DB, ADODB, DBCtrls,
  dbcgrids;

type
  TfrmSearch = class(TForm)
    XPMenu1: TXPMenu;
    ADOQry_PhoneNoteSearch: TADOQuery;
    ADOQry_SysTableSet: TADOQuery;
    ADOQry_SysTableSetTable_Name: TWideStringField;
    ADOQry_SysTableSetClass: TWideStringField;
    ADOQry_SysTableSetName: TWideStringField;
    ADOQry_SysTableSetPhoneNum1: TWideStringField;
    ADOQry_SysTableSetPhoneNum2: TWideStringField;
    ADOQry_SysTableSetFax: TWideStringField;
    ADOQry_SysTableSetHomePhone: TWideStringField;
    ADOQry_SysTableSetMobilePhone: TWideStringField;
    ADOQry_SysTableSetEmail: TWideStringField;
    ADOQry_SysTableSetUnit: TWideStringField;
    ADOQry_SysTableSetOfficeAdd: TWideStringField;
    ADOQry_SysTableSetCommAdd: TWideStringField;
    ADOQry_SysTableSetPost: TWideStringField;
    ADOQry_SysTableSetRetic: TWideStringField;
    ADOQry_SysTableSetQQNum: TWideStringField;
    ADOQry_SysTableSetBz: TWideStringField;
    sgrdString: TStringGrid;
    Panel1: TPanel;
    Label2: TLabel;
    Label1: TLabel;
    edtSearch: TEdit;
    cmbxSearch: TComboBox;
    Bevel1: TBevel;
    bit_Search: TBitBtn;
    bit_Select: TBitBtn;
    bit_AllSelect: TBitBtn;
    bit_Close: TBitBtn;
    Bevel2: TBevel;
    Bevel3: TBevel;
    Panel13: TPanel;
    procedure sgrdStringDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure FormShow(Sender: TObject);
    procedure bit_SearchClick(Sender: TObject);
    procedure edtSearchKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
   procedure sgr_Refresh;
    { Private declarations }
  public
   function SearchPar:string;
    { Public declarations }
  end;

var
  frmSearch: TfrmSearch;
  ResultPar:string;

implementation

{$R *.dfm}
uses SM_MsgDLL, ADOSM_Data, SM_Msgp;

procedure TfrmSearch.sgr_Refresh;
begin
 sgrdString.RowCount:=2;
 sgrdString.Rows[1].Clear;
end;

function TfrmSearch.SearchPar:string;
begin

end;

procedure TfrmSearch.sgrdStringDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
var
  OldAlign,
  OldBkMode,
  OldTextColor:Integer;
  Text_Height, X, Y:Integer;
begin
  Inherited;
  with sgrdString.Canvas do
  begin
    if ((ACol=1)or(ACol=2))and(State=[]) then
      Font.Color:=clBlack;
    FillRect(Rect);
    OldBkMode:=SetBkMode(Handle, OPAQUE);
    OldAlign:=SetTextAlign(Handle, TA_Center);
    Text_Height:=TextHeight('Test');
    X:=(Rect.Left+Rect.Right) div 2+1;
    Y:=(Rect.Bottom+Rect.Top-Text_Height) div 2;
    if Y<0 then Y:=0;
    OldTextColor:=Font.Color;
    if (ARow=0)or(ACol=0) then
    begin
      Font.Color:=clWhite;
      TextOut(X+1, Y+1, sgrdString.Cells[ACol, ARow]);
    end;
    Font.Color:=OldTextColor;
    TextOut(X, Y, sgrdString.Cells[ACol, ARow]);
    SetTextAlign(Handle, OldAlign);
    SetBkMode(Handle, OldBkMode);
  end;
end;

procedure TfrmSearch.FormShow(Sender: TObject);
var
 i:integer;
begin
cmbxSearch.Clear;
with ADOQry_SysTableSet do
 begin
  Close;
  Parameters.ParamByName('FTableName').Value:='PhoneNote';
  Open;
 end;
if ADOQry_SysTableSet.RecordCount>0 then
for i:=0 to ADOQry_SysTableSet.FieldCount-2 do
begin
 sgrdString.Cells[i,0]:=ADOQry_SysTableSet.Fields[i+1].Text;
 cmbxSearch.Items.Add(ADOQry_SysTableSet.Fields[i+1].Text);
end;
end;

procedure TfrmSearch.bit_SearchClick(Sender: TObject);
var
 Search_Value,sqlStr:string;
 i:integer;
begin
sgr_Refresh;
sqlstr:='select * from PhoneNote where ';
Search_Value:=Trim(edtSearch.Text);
if search_value<>'' then
begin
i:=cmbxSearch.ItemIndex;
sqlstr:=sqlstr+ADOQry_SysTableSet.Fields[i+1].FieldName+' like ';
sqlstr:=sqlstr+''''+search_Value+'%''';
i:=1;
with ADOQry_PhoneNoteSearch do
 begin
  Close;
  SQL.Clear;
  SQL.Add(sqlstr);
  ExecSql;
  Open;
 end;
 if ADOQry_PhoneNoteSearch.RecordCount>0 then
  while not ADOQry_PhoneNoteSearch.Eof do
   begin
    with sgrdString do
     begin
      Cells[0,i]:=ADOQry_PhoneNoteSearch.Fields[1].Value;
      Cells[1,i]:=ADOQry_PhoneNoteSearch.Fields[2].Value;
      Cells[2,i]:=ADOQry_PhoneNoteSearch.Fields[3].Value;
      Cells[3,i]:=ADOQry_PhoneNoteSearch.Fields[4].Value;
      Cells[4,i]:=ADOQry_PhoneNoteSearch.Fields[5].Value;
      Cells[5,i]:=ADOQry_PhoneNoteSearch.Fields[6].Value;
      Cells[6,i]:=ADOQry_PhoneNoteSearch.Fields[7].Value;
      Cells[7,i]:=ADOQry_PhoneNoteSearch.Fields[8].Value;
      Cells[8,i]:=ADOQry_PhoneNoteSearch.Fields[9].Value;
      Cells[9,i]:=ADOQry_PhoneNoteSearch.Fields[10].Value;
      Cells[10,i]:=ADOQry_PhoneNoteSearch.Fields[11].Value;
      Cells[11,i]:=ADOQry_PhoneNoteSearch.Fields[12].Value;
      Cells[12,i]:=ADOQry_PhoneNoteSearch.Fields[13].Value;
      Cells[13,i]:=ADOQry_PhoneNoteSearch.Fields[14].Value;
     end;
     ADOQry_PhoneNoteSearch.Next;
     inc(i);
     sgrdString.RowCount:=sgrdString.RowCount+1;
   end else
   begin
    ErrorMsg(1,'没有所查询的记录!');
    exit;
   end;
  sgrdString.RowCount:=sgrdString.RowCount-1;
end else ErrorMsg(1,'查询值不能为空!');
end;

procedure TfrmSearch.edtSearchKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Key=VK_RETURN) then  bit_Search.OnClick(nil);
end;

end.

⌨️ 快捷键说明

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