起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: huixiangtao

【结贴】请问Delphi7中的控件在x3_3002中可以使用不?**

[复制链接]
发表于 2008-4-25 16:40:48 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-25 17:39:23 | 显示全部楼层

我在网上找到了sp2包,现在版本和你们一样了,也不出错了。

我在网上找到了sp2包,现在版本和你们一样了,也不出上面错了。
不过加入.dll及.bpl后,工具栏中还是没有出来新的控件,可能是那儿还有问题。不过和成功近了一步^_^谢谢大家帮助,
回复 支持 反对

使用道具 举报

发表于 2008-4-28 09:09:12 | 显示全部楼层
看手册:重置控件工具箱
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-28 09:55:27 | 显示全部楼层

我重置了工具栏,但是不出来,

我重置了工具栏,但是不出来。
我参考了如何在X3中引入外部控件.pdf,Page10,page14,到了第四步,但是出现page6,问题5,又出现问题3,Error loading type library,是不是使用Socket.pas文件还要改造?
但是我用delphi6打开你们的adocomps.dll也会出Error loading type library呀,却是可以加入x3正常使用的。
你们谁能帮我实验一下如何把Internet控件组加到x3中不,要用到TTCPServer,XMLDocument,现在催得比较急了,非常感谢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-28 10:13:53 | 显示全部楼层

发现对象浏览器中TTcpServer也出来了,只是x3工具栏中不出现

发现对象浏览器中TTcpServer也出来了,只是x3工具栏中不出现

object.jpg

44.37 KB, 下载次数: 156

回复 支持 反对

使用道具 举报

发表于 2008-4-28 10:28:38 | 显示全部楼层
检查一下,是否Register函数问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-28 11:59:34 | 显示全部楼层

好象加上register就能出来了,

好象加上register就能出来了,下午再试下使用是否都正常。
谢谢~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-28 12:24:28 | 显示全部楼层

TTcpServer好了,不过加xmlDocument是有问题,

我希望把TXmlDocument,和TTcpServer中放在我的MyInternet控件中。刚才只有Sockets.pas文件时TTcpServer是好的。
Sockets.pas
procedure Register; //taohx 2008-4-28
implementation
procedure Register;
begin
  RegisterComponents('MyInternet', [TTcpServer]);
  RegisterComponents('MyInternet', [TTcpClient]);
end;
XMLDoc.pas
procedure Register; //taohx 2008-4-28
implementation
procedure Register;
begin
  RegisterComponents('MyInternet', [TXMLDocument]);
  RegisterComponents('MyInternet', [TXMLNode]);
  RegisterComponents('MyInternet', [TXMLNodeList]);
end;

MySocket.bat内容:
delphiimporter "Sockets.pas;XMLDoc.pas" internet.dll -pl -pb -DMSWINDOWS;VER140;D3;D4;D5;D6;WIN32 -u%cd%;%cd%ImpSrc;%cd%lib -cinternet.ipr -o%cd%lib
pause
运行时错误,如图

exist.jpg

34.1 KB, 下载次数: 150

回复 支持 反对

使用道具 举报

发表于 2008-4-28 13:57:04 | 显示全部楼层
应该是平台中已经有了。
楼主只导入tcpserver、tcpclient就可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-28 17:12:54 | 显示全部楼层

xml的问题

我在delphi中下列代码是可以用的,但是在平台上运行时出错,该如何改呢?(实现把xml读出写到数据库中)
procedure  TForm1.xmlMsg2DB(xmlData:String);
var
  xmlDoc:IXMLDocument;
  rootNode,curNode:IXMLNode;
  i:Integer;
  s:String;
begin
    ////DataSet
    if not ADODataSet1.Active then
    begin
    ADODataSet1.Open;
    end;
    xmlDoc:= TXMLDocument.Create(nil);
    xmlDoc.Active:=true;
    xmlDoc.Encoding :='GB2312';
    xmlDoc.LoadFromXml(xmlData);//
    rootNode:=xmlDoc.DocumentElement;// rootNode
    curNode:=rootNode.ChildNodes.FindNode('alarmItem');
    try
      if curNode <> nil then
     begin
         ADODataSet1.Append; //因故障xml只有一条报警,故只须插入一次
         for i :=0  to curNode.ChildNodes.Count -1 do
          begin
           s:=s+curNode.ChildNodes.NodeValue+',';
           ADODataSet1.FieldByName(curNode.ChildNodes.NodeName).AsString:=curNode.ChildNodes.NodeValue;
           end;
          ADODataSet1.Post;
          edtXmlData.Text:=s;
          ADODataSet1.Refresh;
          DBGrid1.Refresh;
     end;
    except
       on e:exception do
        showmessage('Xml-->DataBase Failed!'+e.Message);
    end;

end;

////改在x3平台上用
procedure TBJJKGNTCPFS.xmlMsg2DB(xmlData:String);
var
  xmlDoc:TXMLDocument;
  rootNode,curNode:IXMLNode;
  i:Integer;
  s:String;
begin
    ////DataSet
    if not dsb_Alarm.DataSet.Active then
    begin
    dsb_Alarm.DataSet.Open;
    end;
    //xmlDoc:= TXMLDocument.Create(nil);//delphi
    xmlDoc:= TXMLDocument.Create(Self); //执行到这儿出错
    xmlDoc.Active:=true;
    xmlDoc.Encoding :='GB2312';
    xmlDoc.LoadFromXml(xmlData);//
    rootNode:=xmlDoc.DocumentElement;// rootNode
    curNode:=rootNode.ChildNodes.FindNode('alarmItem');
    try
      if curNode <> nil then
     begin
         dsb_Alarm.DataSet.Append; //因故障xml只有一条报警,故只须插入一次
         for i :=0  to curNode.ChildNodes.Count -1 do
          begin
           s:=s+curNode.ChildNodes.GetText+',';
           dsb_Alarm.DataSet.FieldByName(curNode.ChildNodes.NodeName).AsString:=curNode.ChildNodes.GetText;
           end;
          dsb_Alarm.DataSet.Post;
          edtXmlData.Text:=s;
          dsb_Alarm.DataSet.Refresh;
          DataGrid1.Refresh;
     end;
    except
       on e:exception do
        jsDialogs.ShowMsg(e.Message,'Xml-->DataBase Failed!');
    end;

end;

xmlerror.jpg

29.92 KB, 下载次数: 140

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-11 21:07 , Processed in 0.040663 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表