uses TypInfo;var PropInfo: PPropInfo; // 要使用 TypInfo 单元 begin for k := 0 to Self.ControlCount-1 do begin propInfo := GetPropInfo(Self.Controls[k], 'Width'); if propInfo <> nil then // 存在属性 self.Controls[k].Width := 200;//改变属性 end; end;
procedure Tform1.CreateForm2(QuerySum:TQuery); form2:Tform2; begin form2:=Tform2.Create(Application); form2.DataSource1.DataSet:=QuerySum; ... end;
TypInfo;var
PropInfo: PPropInfo; // 要使用 TypInfo 单元
begin
for k := 0 to Self.ControlCount-1 do
begin
propInfo := GetPropInfo(Self.Controls[k], 'Width');
if propInfo <> nil then // 存在属性
self.Controls[k].Width := 200;//改变属性
end;
end;
form2:Tform2;
begin
form2:=Tform2.Create(Application);
form2.DataSource1.DataSet:=QuerySum;
...
end;
SendMessage(Handle,你得消息,0,0);B窗体上写消息的接收函数,当收到"你得消息"后,改变dataset
这句,我应该如何写??
例如:将'Doc00000015'这个数值传到其中一个动态产生的窗体中的DATASET.FieldByName('doccode').value
在发送窗体如何编写?
在接收窗体如何编写?
procedure TForm1.Button1Click(Sender: TObject);
var
b: TButton;
begin
b := TButton.Create(Form1);
b.Parent := Form1;
b.Name := 'b1';
b.Caption := 'mybutton';
b.Visible := True;
b.Top := 10;
b.Left := 10;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
(FindComponent('b1') as TButton).Caption := 'OK';
end;
如果这样不是很好实现的吗?还是我理解有误?
新建一个Datamodule块,放上操作数据库的控件,在那么多的窗体中新建临时的数据集:
....
cds := TClientDataSet.Create(nil);
try
With DataModule1.BDEClientDataSet1 do
begin
Active := False;
CommandText := String(SqlString); //SQLString---sql语句查询
Active := True;
cds.Data := Data;
Active := False;
end;
....
Finally
cds.Free;
end;
。
如果要修改或插入数据,就定义一个TQuery对象:var qry: TQuery;
...
qry := TQuery.Create(nil);
try
qry.DataBase := DataModule1.BDEClientDataSet1.DatabaseName;
qry.Close;
qry.SQL.Clear;
qry.SQL.Add(sqlstr);//sqlstr为SQL语句
qry.ExecSQL;
finally
qry.Free;
end;
...
就算是动态产生的窗口,也有name属性吧,引用name属性不就行了。
procedure TForm1.Button1Click(Sender: TObject);
var
b: TButton;
begin
b := TButton.Create(Form1);
b.Parent := Form1;
b.Name := 'b1';
b.Caption := 'mybutton';
b.Visible := True;
b.Top := 10;
b.Left := 10;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
(FindComponent('b1') as TBu…这样也是可以的 ,只是操作起来不是很方便