var jsq:integer; begin for jsq:=0 to ComponentCount-1 do begin if Components[jsq] is TEdit then (Components[jsq] as TEdit).Text:='' else if Components[jsq is TCheckBox then (Components[jsq] as TCheckBox).Checked:=False; end; end;
var i:integer; begin for i:=0 to Self.ControlCount-1 do begin if (self.Controls[i] is TEdit) then TEdit(self.Controls[i]).Clear; if (self.Controls[i] is TCheckBox) then TCheckBox(self.Controls[i]).Checked:=false; {And So On...} end; end;
//初始化过程 procedure ClearValue(Components:Array of Component); var i:integer; begin for i:=Low(Components) to High(Components) do begin if Components[i] is TEdit then TEdit(Components[i]).Text:='' else if Components[i] is TCheckBox then TCheckBox(Components[i]).Checked:=False; end; end; //使用方法 ClearValue([Edit1,Edit2,CheckBox1,CheckBox2])
最好采纳 pilicat(delphi迷) 的说法去自已过展。
来个复古的. procedure TForm1.Button1Click(Sender: TObject); var hwndcurr: HWND; buffer: array[0..255] of char; begin hwndcurr := getwindow(self.Button1.handle, GW_HWNDNEXT);//注意这是next,因为button我们不要 while (hwndcurr <> 0) do begin getclassname(hwndcurr, @buffer, 256); if strpas(@buffer) = 'TEdit' then begin postmessage(hwndcurr, WM_SETFOCUS, 0, 0); postmessage(hwndcurr, WM_CLEAR, 0, 0); //setwindowtext(hwndcurr ,''); end; if strpas(buffer) = 'TCheckBox' then begin postmessage(hwndcurr, BM_SETCHECK, BST_UNCHECKED, 0); end; hwndcurr := getwindow(hwndcurr, GW_HWNDNEXT); end; end;肯定比楼上各位的快,呵呵!
完全不懂API.. 请问大家怎么学习API啊??
procedure TForm2.suiButton2Click(Sender: TObject); var jsq:integer; begin for jsq:=0 to ComponentCount-1 do begin if Components[jsq] is TEdit then (Components[jsq] as TEdit).Text:='' else if Components[jsq] is TCheckBox then (Components[jsq] as TCheckBox).Checked:=False; end; end;编译后点了没有变化啊
来晚乐,呵呵 一二楼的是正确的 补充一下: if (self.Controls[i] is TEdit) 也可以写成 if Self.Components[i].ClassType=TEdit then
//改寫自pilicat(delphi迷) procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin for i:=0 to ComponentCount-1 do begin if Components[i] is TEdit then (Components[i] as TEdit).Text:=''; if Components[i] is TCheckBox then (Components[i] as TCheckBox).Checked:=False; end; end;
pilicat(delphi迷) 的代码,少写了个‘]’,呵呵
(Components[jsq] as TEdit).Text:=''可以写成=> TEdit(Componentsp[jsq]).Text吗!??
jsq:integer;
begin
for jsq:=0 to ComponentCount-1 do
begin
if Components[jsq] is TEdit then
(Components[jsq] as TEdit).Text:=''
else if Components[jsq is TCheckBox then
(Components[jsq] as TCheckBox).Checked:=False;
end;
end;
begin
for i:=0 to Self.ControlCount-1 do
begin
if (self.Controls[i] is TEdit) then
TEdit(self.Controls[i]).Clear;
if (self.Controls[i] is TCheckBox) then
TCheckBox(self.Controls[i]).Checked:=false;
{And So On...}
end;
end;
procedure ClearValue(Components:Array of Component);
var
i:integer;
begin
for i:=Low(Components) to High(Components) do
begin
if Components[i] is TEdit then
TEdit(Components[i]).Text:=''
else if Components[i] is TCheckBox then
TCheckBox(Components[i]).Checked:=False;
end;
end;
//使用方法
ClearValue([Edit1,Edit2,CheckBox1,CheckBox2])
procedure TForm1.Button1Click(Sender: TObject);
var
hwndcurr: HWND;
buffer: array[0..255] of char;
begin
hwndcurr := getwindow(self.Button1.handle, GW_HWNDNEXT);//注意这是next,因为button我们不要
while (hwndcurr <> 0) do begin
getclassname(hwndcurr, @buffer, 256);
if strpas(@buffer) = 'TEdit' then begin
postmessage(hwndcurr, WM_SETFOCUS, 0, 0);
postmessage(hwndcurr, WM_CLEAR, 0, 0);
//setwindowtext(hwndcurr ,'');
end;
if strpas(buffer) = 'TCheckBox' then begin
postmessage(hwndcurr, BM_SETCHECK, BST_UNCHECKED, 0);
end;
hwndcurr := getwindow(hwndcurr, GW_HWNDNEXT);
end;
end;肯定比楼上各位的快,呵呵!
请问大家怎么学习API啊??
var
jsq:integer;
begin
for jsq:=0 to ComponentCount-1 do
begin
if Components[jsq] is TEdit then
(Components[jsq] as TEdit).Text:=''
else if Components[jsq] is TCheckBox then
(Components[jsq] as TCheckBox).Checked:=False;
end;
end;编译后点了没有变化啊
一二楼的是正确的
补充一下:
if (self.Controls[i] is TEdit)
也可以写成
if Self.Components[i].ClassType=TEdit then
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to ComponentCount-1 do
begin
if Components[i] is TEdit then
(Components[i] as TEdit).Text:='';
if Components[i] is TCheckBox then
(Components[i] as TCheckBox).Checked:=False;
end;
end;
TEdit(Componentsp[jsq]).Text吗!??