?高分求解:有谁知道我能不能在DELPHI程序中对另外一个程序的一个TCheckListBox以及TCheckBox类型的控件进行控制,以设置它的状态。(100

  • 主题发起人 主题发起人 liuchf
  • 开始时间 开始时间
L

liuchf

Unregistered / Unconfirmed
GUEST, unregistred user!
?高分求解:有谁知道我能不能在DELPHI程序中对另外一个程序的一个TCheckListBox以及TCheckBox类型的控件进行控制,以设置它的状态。(100分)<br />?高分求解:有谁知道我能不能在DELPHI程序中对另外一个程序的一个TCheckListBox以及TCheckBox类型的控件进行控制,以设置它的状态。
 
当然能了,找窗口句柄,然后找控件句柄,然后发消息。。。。
 
gz,怎么找?举例
 
zanpen2001能给举个例子么?万分感谢
 
用FindWindow或enumWindows API函数。
 
发什么消息?
我已经找到这个控件的ID,但是对于TCheckListBox,它可能有多个复选框,我如何控制其中的某几个的选中状态。
 
把找到控件ID的代码贴出来看看,大家再此基础上讨论如何进行控制。
我想找到那个控件的类(TPersistentClass)应该可以象使用Delphi的控件
那样控制它(即直接使用这个对象的方法)
 
最好是找到TCheckBox,然后SendMessage(CheckBox.handle, WM_Click, 0, 0);
 
找到控件ID的代码
unit Unit1;
interface
uses
; Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
; StdCtrls;
type
; TForm1 = class(TForm)
; ; Memo1: TMemo;
; ; Button2: TButton;
; ; procedure Button2Click(Sender: TObject);
; private
; ; { Private declarations }
; public
; ; { Public declarations }
; end;

var
; Form1: TForm1;
; function EnumWindowsFunc(Handle: THandle; List: TStringList) : boolean ; stdcall;
implementation

{$R *.DFM}

function EnumWindowsFunc(Handle: THandle; List: TStringList) : boolean ; stdcall;
var Caption: array[0..256] of Char;
; p :PChar;
; k :integer;
begin
// ;List.Add('**************One Child Windows*******************');
; if GetClassName(Handle,Caption,256) &lt;&gt; 0 then
; ; List.Add('Classname:'+Caption + ' ; handle:' + Inttostr(Handle))
; else
; ; List.Add('Classname:null'+' ; handle:' + Inttostr(Handle));
; Result :=True;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
; ;hanlemu:HWND;
begin
; ;Memo1.Clear;
; ;hanlemu := FindWindow(nil,'TestForm');
; ;EnumChildWindows(hanlemu,@EnumWindowsFunc,LParam(Memo1.Lines));
end;

end.
 
我没试过,你试试:
procedure TForm1.Button7Click(Sender: TObject);
var
; AClass: TPersistentClass;//主要就是看看这个类型能否起作用。
begin
; ; AClass := GetClass('CheckBox2');
; ; if AClass &lt;&gt; nil then
; ; ; with TComponentClass(AClass) as TCheckBox do
; ; ; begin
; ; ; ; Checked := false;
; ; ; end;
end;
 
谁用过这个消息CBN_SELCHANGE,能否给个例子
 
后退
顶部