请教DELPHI一个代码转换问题
delphi吧
全部回复
仅看楼主
level 4
kantleee 楼主
下面的代码是一个清空TEXT的过程,但当前不是公共的,我想建立一个公共单元,所有窗体调用这个过程,请问代码该如何改啊,求救啊
procedure TFrmGuanJianCi.ClearAllCompText;
var
i:Integer;
begin
for i:=0 to ComponentCount - 1 do
begin
if Components[i] is TEdit then
begin
(Components[i] as TEdit).Text:='';
end;
if Components[i] is TMemo then
begin
(Components[i] as TMemo).Text:='';
end;
if Components[i] is TComboBox then
begin
(Components[i] as TComboBox).Text:='';
end;
end;
end;
2017年03月30日 13点03分 1
吧务
level 14
你先弄明白Form事件里那些Sender是什么意思就知道该怎么写了
2017年03月30日 23点03分 2
level 11
第一步先看下TForm在哪个单元,包含之,然后是TEdit和TMemo。
第二步把那个函数的参数类型设置为窗口。
第三步在Components前面加上Form.,其余的不变。
如果看不懂,那么你赢了[滑稽][滑稽][滑稽]
2017年03月30日 23点03分 3
level 4
kantleee 楼主
我改成了如下情况,可以实现了,但新问题又来了,问题在代码后面说明
procedure EditClear(MyForm:TForm);
var
i:Integer;
begin
for i:=0 to MyForm.ComponentCount-1 do
begin
if MyForm.Components[i] is TEdit then
begin
(MyForm.Components[i] as TEdit).Text:='';
end;
if MyForm.Components[i] is TMemo then
begin
(MyForm.Components[i] as TMemo).Text:='';
end;
if MyForm.Components[i] is TComboBox then
begin
(MyForm.Components[i] as TComboBox).Text:='';
(MyForm.Components[i] as TComboBox).ItemIndex:= (MyForm.Components[i] as TComboBox).Items.IndexOf('');
end;
end;
end;
因为程序是主界面通过TABSHEET的方式动态打开窗体,打开代码如下,通过这种方式打开的窗体,上面这段代码就不灵了
procedure TForm1.FormOpen(FrmName, FrmCaption: string;MyFormCls: TFormClass);
var
MyTabSheet:TRzTabSheet;
MyForm:TForm;
begin
MyTabSheet := TRzTabSheet(self.FindComponent(FrmName));
if MyTabSheet = nil then
begin
try
//创建新标签页
MyTabSheet := TRzTabSheet.Create(self);
MyTabSheet.Name := FrmName;
MyTabSheet.PageControl := RzPageControl1;
MyTabSheet.Caption := FrmCaption;
MyTabSheet.Align := alClient;
try
MyForm:=MyFormCls.Create(Self);
MyForm.Parent:=MyTabSheet;
MyForm.BorderStyle:=bsNone;
MyForm.Align:=alClient;
MyForm.Show;
except
FreeAndNil(MyForm);
Abort;
end;
except
FreeAndNil(MyTabSheet);
Exit;
end;
end;
RzPageControl1.ActivePage:=MyTabSheet;
end;
2017年04月01日 05点04分 4
level 11
楼主可以用单步调试追踪一下,看看是根本没进函数,还是进了但是MyForm指空了
2017年04月01日 06点04分 5
level 8
你动态创建窗体时有无调用你自定的editclear这条命令?
2017年04月01日 06点04分 6
level 4
kantleee 楼主
有调用,但是不生效
2017年04月01日 07点04分 7
1