请教知道了一个control的类名称,怎样获得该control的名称啊?
解决方案 »
- select count(*) from问题
- application.message()
- 哪个老师讲讲怎样控制MEMO一次只能录入多少字符啊?急!急!
- strpas转换出现访问内存有错,请教!
- 我加了一个DBMEMO,DBMEMO里显示的内容很多,可是DBMEMO里没有滚动条,可以加滚动条吗?谢谢!
- 如何在使用Quick report的程序中设置打印机,选择打印机
- 请教Getfileversion问题
- 重分(100分)求解:如何减小delphi程序的大小(我做的程序老是很大!)
- 怎样对动态生成的控件进行事件的截获。
- 服了,怎么还有人用Delphi啊,时空穿越了吗?
- 再散一次吧,这里有多少重庆的朋友啊
- 类中怎么定义的线程?
Sender.ClassName 类名.
var i: integer;
begin
for i := 0 to self.ControlCount -1 do
begin
if (UpperCase(self.Controls[i].ClassName)= 'TLABEL') THEN
begin
showmessage(Tlabel(TWinControl(self.Controls[i])).Name ) ;
Tlabel(TWinControl(self.Controls[i])).Name := 'xxx'+inttostr(i) ;
Tlabel(TWinControl(self.Controls[i])).Caption := 'hello';
end;
end;
end;
"这个control的名称", 是編程的時候, 為了方便記憶才記錄了,
到了運行時, 應該只有handle才能找到對應的控件了!至少, 你編碼時, 能控制本程序, 如
form1.edit1.text := 'xxx';
但編繹後, 應該只有一個對應的內存地址來表示 edit1 而已
LPTSTR lpClassName,
int nMaxCount
);就我知道的, 只有這個
如果針對特定的delphi程序, 也許有辦法, 但比較麻煩
Pt: TPoint;
CurrentHandle: THandle;
ClassName: array[0..1023] of Char;
S : array [0..99] of char;
ilen : integer;
begin GetCursorPos(Pt);
CurrentHandle := WindowFromPoint(Pt);
GetClassName(CurrentHandle, ClassName, Length(ClassName));
Caption := ClassName;
ilen := GetWindowTextLength(CurrentHandle); Edit1.Text := inttostr(ilen);
GetWindowText(CurrentHandle,S,ilen+2);
Edit2.Text := S;
end;以上这段程序对于delphi编写的程序可以读出输入框中的数据,但是对于其他windows程序
却读不出内容,不知道为何,请高手继续指点.