Python For Delphi 示例

简介: Python For Delphi 示例 samson             hide details    3:22 pm (50 minutes ago)          reply-to                python-cn@googlegroups.

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

相关文章
|
3月前
|
数据挖掘 Python
Python示例,展示如何找到最近一次死叉之后尚未形成金叉的位置
【10月更文挑战第7天】金融分析中,“死叉”指短期移动平均线(如MA5)跌破长期移动平均线(如MA10),而“金叉”则相反。本文提供Python代码示例,用于找出最近一次死叉后未形成金叉的位置,涵盖移动平均线计算、交叉点判断及结果输出等步骤,适合金融数据分析。
52 4
|
4月前
|
Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
|
4月前
|
存储 Python
Python示例:分解一个不多于指定位的正整数
Python示例:分解一个不多于指定位的正整数
34 0
|
24天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
64 8
|
1月前
|
API Python
【Azure Developer】分享一段Python代码调用Graph API创建用户的示例
分享一段Python代码调用Graph API创建用户的示例
51 11
|
2月前
|
网络安全 Python
Python网络编程小示例:生成CIDR表示的IP地址范围
本文介绍了如何使用Python生成CIDR表示的IP地址范围,通过解析CIDR字符串,将其转换为二进制形式,应用子网掩码,最终生成该CIDR块内所有可用的IP地址列表。示例代码利用了Python的`ipaddress`模块,展示了从指定CIDR表达式中提取所有IP地址的过程。
55 6
|
2月前
|
数据挖掘 Python
Python示例,展示如何找到最近一次死叉之后尚未形成金叉的位置
金融分析中,“死叉”指短期移动平均线(如MA5)跌破长期移动平均线(如MA10),而“金叉”则相反。本文提供Python代码示例,用于找出最近一次死叉后未形成金叉的位置,涵盖移动平均线计算、交叉点判断及结果输出等步骤,适合金融数据分析。
26 1
|
4月前
|
机器学习/深度学习 数据采集 算法
数据稀缺条件下的时间序列微分:符号回归(Symbolic Regression)方法介绍与Python示例
有多种方法可以处理时间序列数据中的噪声。本文将介绍一种在我们的研究项目中表现良好的方法,特别适用于时间序列概况中数据点较少的情况。
69 1
数据稀缺条件下的时间序列微分:符号回归(Symbolic Regression)方法介绍与Python示例
|
4月前
|
Python
Python编程的循环结构小示例(二)
Python编程的循环结构小示例(二)
60 1
|
3月前
|
Linux Android开发 开发者
【Python】GUI:Kivy库环境安装与示例
这篇文章介绍了 Kivy 库的安装与使用示例。Kivy 是一个开源的 Python 库,支持多平台开发,适用于多点触控应用。文章详细说明了 Kivy 的主要特点、环境安装方法,并提供了两个示例:一个简单的 Hello World 应用和一个 BMI 计算器界面。
106 0