请问TControl(Components[I]).Name是什么类型的?到 ADOQuery1.Open;就出错,提示例名'LABEL2'无效。var
i: integer;
sComName: string;
begin
for i:=0 to Frm_Design.ComponentCount-1 do
begin
if Components[i] is TControl then
begin
sComName:= TControl(Components[I]).Name;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * From 窗体状态表 where 控件名称= '+ sComName);
ADOQuery1.Open;// TControl(Components[I]).Name:= ADOQuery1.FieldByName('控件名称').AsString;
TControl(Components[I]).Left:= ADOQuery1.FieldByName('左').AsInteger;
TControl(Components[I]).Top:= ADOQuery1.FieldByName('上').AsInteger;
TControl(Components[I]).Height:= ADOQuery1.FieldByName('高').AsInteger;
TControl(Components[I]).Width:= ADOQuery1.FieldByName('宽').AsInteger;
// Components[I].ClassName:= ADOQuery1.FieldByName('类').AsString;
end;
end;
end;
i: integer;
sComName: string;
begin
for i:=0 to Frm_Design.ComponentCount-1 do
begin
if Components[i] is TControl then
begin
sComName:= TControl(Components[I]).Name;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * From 窗体状态表 where 控件名称= '+ sComName);
ADOQuery1.Open;// TControl(Components[I]).Name:= ADOQuery1.FieldByName('控件名称').AsString;
TControl(Components[I]).Left:= ADOQuery1.FieldByName('左').AsInteger;
TControl(Components[I]).Top:= ADOQuery1.FieldByName('上').AsInteger;
TControl(Components[I]).Height:= ADOQuery1.FieldByName('高').AsInteger;
TControl(Components[I]).Width:= ADOQuery1.FieldByName('宽').AsInteger;
// Components[I].ClassName:= ADOQuery1.FieldByName('类').AsString;
end;
end;
end;
这个Name就是一个string。。看起来也没什么错误。。你把SQL语句放到后台执行一下看看。。
ADOQuery1.Parameters.ParamByName('Q').Value:=sComName;