• Python For Delphi 示例


    Python For Delphi 示例

    samson <yan_xiao_song@hotmail.com>            hide details    3:22 pm (50 minutes ago) 
            reply-to                python-cn@googlegroups.com      
            to              "python.cn" <python-cn@googlegroups.com>        
            date            Aug 4, 2007 3:22 PM     
            subject         [CPyUG:29962] [原创]Python For Delphi 示例 (最好的Python GUI实现方法)      
            mailed-by               googlegroups.com
    最近用Python For Delphi有了一段时间,感觉这么好的东西不与大家分享简直是暴敛天物了,而且前一段看大家讨论GUI的问题相当多,为 了让大家少走点弯路,所以萌发了写此文的念头。

    因时间有限,在此只做一个简要的实例,在该实例中,可以通过delphi操作Python中的list对象。其实P4D功能十分强大,远不止这些,还可 以用Delphi写出供Python调用的模块,这样的模块性能可是相当的高哦。 希望能够借此文抛砖引玉,勾起大家使用P4D的愿望。


    1.1. 步骤
    0。安装delphi7,安装python25
    1。安装P4D控件
    2。创建一个窗体,放置PythonEngine,PythonGUIInputOutput,Memo三个控件

    3。PythonEngine的IO属性指到PythonGUIInputOutput,PythonGUIInputOutput的Output属性指到Memo

    4。在主窗体的FormActivate事件中,添加如下代码(注意还需要增加Uses):


    uses
     VarPyth;

    procedure TForm1.FormActivate(Sender: TObject);
    var
     PyModule: variant;
     i: integer;
    begin
     PyModule:=Import('hello');
     memo1.Lines.Add(Format('模块初始化时接口对象长度:%s',
    [PyModule.IntfListDemo.Length]));
     PyModule.main();
     memo1.Lines.Add(Format('调用Python后接口对象长度:%s',
    [PyModule.IntfListDemo.Length]));
     memo1.Lines.Add('接口对象内容');
     for i:=0 to PyModule.IntfListDemo.Length-1 do
     begin
       memo1.Lines.Add(PyModule.IntfListDemo.GetItem(i));
     end;

     for i:=PyModule.IntfListDemo.Length-1 downto 0 do
     begin
       PyModule.IntfListDemo.RemoveItem(i);
       memo1.Lines.Add(Format('操纵Python对象后,接口对象长度:%s',
    [PyModule.IntfListDemo.Length]));
     end;

     PyModule.IntfListDemo.AppendStr('重新');
     PyModule.IntfListDemo.AppendStr('初始化');
     PyModule.IntfListDemo.AppendStr('Python');
     PyModule.IntfListDemo.AppendStr('变量');

     memo1.Lines.Add('接口对象内容');
     for i:=0 to PyModule.IntfListDemo.Length-1 do
     begin
       memo1.Lines.Add(PyModule.IntfListDemo.GetItem(i));
     end;
    end;
    5。创建hello.py程序,与delphi程序在同一个目录下。代码如下:

    切换行号显示
       1 # -*- coding: utf-8 -*-
       2 class MyP4DStrList(list):
       3        def CopyFrom(self,SrcList):
       4                self.Clear()
       5                for i in SrcList:
       6                        self.append(i)
       7        def Clear(self):
       8                for x in range(len(self)): del self[0]
       9        def GetItem(self,index):
      10                return self[index]
      11        def RemoveItem(self,index):
      12                del self[index]
      13        def AppendStr(self,StrToAppend):
      14                self.append(StrToAppend)
      15        def RemoveStr(self,StrToRemove):
      16                self.remove(StrToRemove)
      17
      18 IntfListDemo=MyP4DStrList()
      19
      20
      21 def main():
      22        IntfListDemo.append('hello')
      23        IntfListDemo.append('world')
      24        IntfListDemo.append('with')
      25        IntfListDemo.append('P4D')
      26
      27
      28
      29 if __name__ == '__main__':
      30        main()

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/djcsch2001/archive/2008/09/11/2915428.aspx

  • 相关阅读:
    Windows共享上网的做法
    如何花更少的时间学习更多的知识
    因权限引起的svn提交失败的错误及其解决办法
    ArcGIS二次开发入门(一)
    GeoTiff如何存储颜色表的研究
    html5文件夹上传源码
    vue文件夹上传源码
    前端文件夹上传源码
    asp.net文件夹上传源码
    使用webuploader实现大文件上传分片上传
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2035192.html
Copyright © 2020-2023  润新知