1.在SQL语句中,有一日期为'2003-6-12'如何将它变成字符型后再取它的前六位字符?2.巨难:有两应用程序,分别为A1.exe、A2.exe,A1为主程序,A2为子程序当焦点在A2程序的窗体时,如何取A1窗体的某一控件的值(如Exit1.text)?

解决方案 »

  1.   

    1、用copy可以解决你的第一个问题
      

  2.   

    1、SQL中这样写to_char('2003-6-12', 'YYYYMMDD')
    2、用消息转发器
      

  3.   

    2.超容易,遍历系统当前所有进程,找到A2进程,然后遍历A2进程上面的所有子窗体句柄,找到Edit1句柄,然后用GetWindowText就可以得到内容
      

  4.   

    1。日期跟你的系统日期设置有关系,比如是yy/mm/dd ,还是dd/mm/yy,这样你取他的前六位就没什么意义了?不是么?所以建议你先用yearof,monthof,dayof (uses DateUtils)这些函数取得你想要的日期格式,然后自己拼装起来2。这个是取得计算器上的计算结果的例子看看
    var
      Handle, ChildHandle: HWND;
      clsName: pchar;
      text:array[0..255] of char;
    begin
      getmem(clsName, 255);
      Handle := FindWindow(pchar('SciCalc'), nil);
      if Handle <> 0 then
        begin
          ChildHandle := GetWindow(Handle, GW_Child);
          while ChildHandle <> 0 do
            begin
              GetClassName(ChildHandle, clsName, 255);
              //showmessage(clsName);
              if string(clsName) = 'Static' then
                begin
                getwindowtext(ChildHandle,text,255);
                showmessage(text);
                end;
              ChildHandle := GetWindow(ChildHandle, GW_HWNDNEXT);
            end;
        end;
      freemem(clsName, 255);
    end;
      

  5.   

    1.超简
    2.用findwindowex找到句柄