因为是初学者,所以不太看得懂程序,调用一个新建窗体,代码如下:
按下新建按钮后调用下面的程序
if Sender=nil then Exit;
  if Sender is TtreeNode then
      SendMessageToClint(nil, TreeRm.Selected)
  else
      SendMessageToClint(Sender, nil);
sendMessageToClint 函数如下:
procedure TfrmCarrierDB.SendMessageToClint(Sender: TObject; Node: TtreeNode);
var
  szHandle: THandle;
  i: integer;
begin
  szHandle:=0;  for i:=0 to FrmList.Count-1 do
  begin
      if TFrmAncestor(FrmList.Items[i]).Tag=Windows_id then
      begin
          szHandle:=TFrmAncestor(FrmList.Items[i]).Handle;
          break;
      end;
  end;  {
  如果句柄为0,说明是主窗体自己的消息,
  应该向自己发消息
  }  if (szHandle>0) and (Sender<>nil) then
  begin
      if Sender=SM22 then PostMessage(szHandle, Msg_Add, 0, 0);
  end;  if (szHandle>0) and (Node<>nil) then
  begin
      case Node.ImageIndex of
      0:PostMessage(szHandle, Msg_ALL, 0, 0);
      1:PostMessage(szHandle, Msg_TRN, TpTran(Node.Data).Tran_ID, 0);
      2:PostMessage(szHandle, Msg_RTU, TPRTU(Node.Data).RTU_ID, 0);
      3:PostMessage(szHandle, Msg_ARE, TPArea(Node.Data).ID, 0);
      4:PostMessage(szHandle, Msg_SUB, TPSubArea(Node.Data).Sub_Sect_ID, 0);
      5..13:PostMessage(szHandle, Msg_MTR, TPMeterData(Node.Data).M_ID, 0);
      end;
  end;
end;
然后TFrmAncestor就是一个什么也没有的窗体,后来就出现了新建的窗体了,里面有很多原来信息的,实在不懂