一个傻问题,以前会的,现在忘拉,请帮助!(10分)

  • 主题发起人 主题发起人 衫菜
  • 开始时间 开始时间

衫菜

Unregistered / Unconfirmed
GUEST, unregistred user!
我想遍历FROM1上的所有类是TEDIT的控件,然后把这些控件的。TEXT属性设置为空,
请问具体语句?
 
for i := 0 to ComponentCount - 1 do
if Components is tedit then
....
 
sender as tedit
好象就是这么用吧!?
用全文检索查一下,一定有的
 

1.
function EnumWindowsProc(HWND:hWnd;param:pointer): Boolean; stdcall;

function EnumWindowsProc(HWND: hWnd; param:pointer): Boolean;
var buffer:array[0..255] of Char;
begin
GetWindowText(hWnd,buffer,256);
if StrComp(buffer,PChar(sMark+sIETitle))>0 then //比较标题,如果符合,加到自定义的数组中.这儿的sMark和sIETitle是以前我用来判断IE窗口标题的,你可以改为你自己想要的标题
// if (Length(string(buffer))>0) then
begin
if (giCountWin<256) then
begin
gWinList[giCountWin].HWND:=hWnd;
StrCopy(gWinList[giCountWin].cWinBuf,buffer);
inc(giCountWin);
end;
end;
Result:=True;
end;

2.用FindWindowEx找窗口的控件.不过,先要知道窗口的handle,与上面结合着用.
ahwnd:=findwindowEX(ahwnd,0,pchar('Tbutton'),pchar('确定')); // 找到该窗口上的确定按钮

3.给你一个函数,我用来抓密码的,WIN2000下的密码都跑不掉,当然你也可以用来取得Button的文字了.
function TFrmAbout.GetPassWord: string;
var p:TPoint;
hWnd,PassChar:integer;
buf:array[0..1023] of char;
begin
GetCursorPos(p);
hWnd:=WindowFromPoint(p);
if hWnd<>0 then
begin
PassChar:=SendMessage(hWnd,EM_GetPasswordChar,0,0);
if PassChar<>0 then
begin
PostMessage(hWnd,EM_SetPasswordChar,0,0);
Sleep(50);
SendMessage(hWnd,WM_GetText,1023,Integer(@buf[0]));
SendMessage(hWnd,EM_SetPasswordChar,wparam(PassChar),0);
end else
SendMessage(hWnd,WM_GetText,1023,Integer(@buf[0]));
end;
Result:=string(Buf);
end;

 
for i := 0 to Form1.ControlCount - 1 do
if Controls is tedit then
(Controls as TEdit).Text := '';

 
上面的同志是不是贴地方了?
 
试一试下面的代码,看能不能解决您的问题:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
Name:string;
begin
for i:=0 to form1.ComponentCount-1 do
begin
Name:=form1.Components.Name;
if form1.Components is tedit then
with TEdit(FindComponent(Name)) do
text:=Name+'_Text';
end;
end;
 
分数实在比较少,大家别怪我啊!
 
多人接受答案了。
 
后退
顶部