读取多个edit控件句柄

建议首先用spy++看看窗口的层次结构   然后……

var
    handle, ehandle1,   ehandle2:   THandle;
begin

    handle:=findwindow( '父窗口类' , '父窗口标题' );
    ehandle1   :=   FindWindowEx(父窗口句柄,   0,   'Edit ',   nil);   //第一个edit的句柄
    ehandle2   :=   GetWindow(ehandle1   ,GW_HWNDNEXT);                   //遍历得到第二个edit的句柄

 

获得多个EDIT里面的内容然后提交到数据库中:

 

unit   Unit1;

interface

uses
    Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,
    Dialogs,   ExtCtrls,   StdCtrls,   DB,   ADODB;

type
    TForm1   =   class(TForm)
        Button1:   TButton;
        Edit1:   TEdit;
        Edit2:   TEdit;
        Edit3:   TEdit;
        Edit4:   TEdit;
        Edit5:   TEdit;
        Edit6:   TEdit;
        Edit7:   TEdit;
        Edit8:   TEdit;
        Edit9:   TEdit;
        Edit10:   TEdit;
        Edit11:   TEdit;
        Edit12:   TEdit;
        Button2:   TButton;
        Label1:   TLabel;
        Label2:   TLabel;
        Label3:   TLabel;
        Label4:   TLabel;
        Label5:   TLabel;
        Label6:   TLabel;
        Label7:   TLabel;
        Label8:   TLabel;
        Label9:   TLabel;
        Label10:   TLabel;
        Label11:   TLabel;
        Label12:   TLabel;
        Button3:   TButton;
        GroupBox1:   TGroupBox;
        Label13:   TLabel;
        Label14:   TLabel;
        Label15:   TLabel;
        GroupBox2:   TGroupBox;
        Label16:   TLabel;
        Label17:   TLabel;
        Label18:   TLabel;
        Label19:   TLabel;
        ADOConnection1:   TADOConnection;
        ADOQuery1:   TADOQuery;
        procedure   Button1Click(Sender:   TObject);
        procedure   Button3Click(Sender:   TObject);
        procedure   Button2Click(Sender:   TObject);
    private
        {   Private   declarations   }
    public
        {   Public   declarations   }
    end;

var
    Form1:   TForm1;

implementation

{$R   *.dfm}


procedure   TForm1.Button1Click(Sender:   TObject);

  var


    S:   string;
    L:   Integer;

x12,x11,x10,x9,x8,x7,x6,x5,x4,x3,x2,x1,main,vHandle:THandle;


begin
    vHandle   :=   FindWindow(nil, '证件照图片浏览 ');
    if   vHandle   =   0   then
    ShowMessage   ( '目标窗口没找到! ');
    main   :=   FindWindowEx(vHandle,   0, 'edit ',nil);
    x1:=findwindowex(vhandle,main, 'edit ',nil)   ;
    x2:=findwindowex(vhandle,x1, 'edit ',nil)   ;
    x3:=findwindowex(vhandle,x2, 'edit ',nil)   ;
    x4:=findwindowex(vhandle,x3, 'edit ',nil)   ;
    x5:=findwindowex(vhandle,x4, 'edit ',nil)   ;
    x6:=findwindowex(vhandle,x5, 'edit ',nil)   ;
    x7:=findwindowex(vhandle,x6, 'edit ',nil)   ;
    x8:=findwindowex(vhandle,x7, 'edit ',nil)   ;
    x9:=findwindowex(vhandle,x8, 'edit ',nil)   ;
    x10:=findwindowex(vhandle,x9, 'edit ',nil)   ;
    x11:=findwindowex(vhandle,x10, 'edit ',nil)   ;
    x12:=findwindowex(vhandle,x11, 'edit ',nil)   ;



    L   :=   x1;
    if   L   <=   0   then   Exit;
    SetLength(S,   L);
    SendMessage(x1,   WM_GETTEXT,   L,   Integer(@S[1]));
    edit1.Text:=s;

    L   :=   x2;
    if   L   <=   0   then   Exit;
    SetLength(S,   L);
    SendMessage(x2,   WM_GETTEXT,   L,   Integer(@S[1]));
    edit2.Text:=s;

    L   :=   x3;
    if   L   <=   0   then   Exit;
    SetLength(S,   L);
    SendMessage(x3,   WM_GETTEXT,   L,   Integer(@S[1]));
    edit3.Text:=s;

    L   :=   x4;
    if   L   <=   0   then   Exit;
    SetLength(S,   L);
    SendMessage(x4,   WM_GETTEXT,   L,   Integer(@S[1]));
    edit4.Text:=s;

        L   :=   x5;
    if   L   <=   0   then   Exit;
    SetLength(S,   L);
    SendMessage(x5,   WM_GETTEXT,   L,   Integer(@S[1]));
    edit5.Text:=s;

    L   :=   x6;
    if   L   <=   0   then   Exit;
    SetLength(S,   L);
    SendMessage(x6,   WM_GETTEXT,   L,   Integer(@S[1]));
    edit6.Text:=s;

        L   :=   x7;
    if   L   <=   0   then   Exit;
    SetLength(S,   L);
    SendMessage(x7,   WM_GETTEXT,   L,   Integer(@S[1]));
    edit7.Text:=s;

    L   :=   x8;
    if   L   <=   0   then   Exit;
    SetLength(S,   L);
    SendMessage(x8,   WM_GETTEXT,   L,   Integer(@S[1]));
    edit8.Text:=s;

        L   :=   x9;
    if   L   <=   0   then   Exit;
    SetLength(S,   L);
    SendMessage(x9,   WM_GETTEXT,   L,   Integer(@S[1]));
    edit9.Text:=s;

    L   :=   x10;
    if   L   <=   0   then   Exit;
    SetLength(S,   L);
    SendMessage(x10,   WM_GETTEXT,   L,   Integer(@S[1]));
    edit10.Text:=s;

        L   :=   x11;
    if   L   <=   0   then   Exit;
    SetLength(S,   L);
    SendMessage(x11,   WM_GETTEXT,   L,   Integer(@S[1]));
    edit11.Text:=s;

    L   :=   x12;
    if   L   <=   0   then   Exit;
    SetLength(S,   L);
    SendMessage(x12,   WM_GETTEXT,   L,   Integer(@S[1]));
    edit12.Text:=s;


end;

procedure   TForm1.Button3Click(Sender:   TObject);
begin
form1.Close;
end;

procedure   TForm1.Button2Click(Sender:   TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add( 'select   *   from   学生信息 ');
ADOQuery1.Open;
ADOQuery1.Edit;
ADOQuery1.Last;
ADOQuery1.Append;

ADOQuery1.FieldByName( '图片编号 ').AsString:=Edit1.Text;
ADOQuery1.FieldByName( '姓名 ').AsString:=edit2.Text;
ADOQuery1.FieldByName( '身份证 ').AsString:=Edit3.Text;
ADOQuery1.FieldByName( '学校 ').AsString:=Edit4.Text;
ADOQuery1.FieldByName( '学校代码 ').AsString:=edit5.Text;
ADOQuery1.FieldByName( '性别 ').AsString:=Edit6.Text;
ADOQuery1.FieldByName( '学号 ').AsString:=Edit7.Text;
ADOQuery1.FieldByName( '毕业时间 ').AsString:=edit8.Text;
ADOQuery1.FieldByName( '学位 ').AsString:=Edit9.Text;
ADOQuery1.FieldByName( '办学性质 ').AsString:=Edit10.Text;
ADOQuery1.FieldByName( '学生代码 ').AsString:=edit11.Text;
ADOQuery1.FieldByName( '专业 ').AsString:=Edit12.Text;


ADOQuery1.Post;
edit1.text:= ' ';
edit2.text:= ' ';
edit3.text:= ' ';
edit4.text:= ' ';
edit5.text:= ' ';
edit6.text:= ' ';
edit7.text:= ' ';
edit8.text:= ' ';
edit9.text:= ' ';
edit10.text:= ' ';
edit11.text:= ' ';
edit12.text:= ' ';

end;

end.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值