11 2010 档案
摘要:有几个朋友经常向我问题在DLL中怎么共用一个全局变量。比如像用户登陆后的用户名(UserName)... 其实这个问题很简单。下面我把我的做法写出来大家一起分享。 把共享的变量放在主程序里:UserName,....等等, 在主程序里写两个函数 Function CurUserName():PChar; begin Result:=pchar(UserName); end; procedure S...
阅读全文
摘要:A类互联网网址: 7位网络号 24位主机号 01111111.11111111.11111111.11111111 --->01...
阅读全文
摘要:我虽然再也没有继续像大学那样没日没夜的写计算机代码了,前几天听见我的朋友说他的公司里面老是有ip冲突,他那边工程师说只要修改了ip地址就可以上网了,可是这个男生可笨了!居然换了好多IP都被人家给占用了,求我给他写个程序,免的IP换的头疼。 那么开始吧! 首先要利用InternetGetConnectedState函数,这个函数是反应你的机器成功连网的函数,返回的是true和false 返回是tru...
阅读全文
摘要:好多人都抱怨delphi没有提供一个可以把任意数据放入数据库的控件,虽然说用代码实现也不难,但是有控件会更方便,这次我终于还是抽出空来做了 这么个控件,以后就可以直接拖放了。它支持把任意数据类型写入数据库,也可以从数据库读出到流,或是直接保存为文件。另外,我加了一些对常用图像的处理, 保存jpg或是gif格式的图像很方便,并且可以直接显示到image上。 unit RaDBOLE; inter...
阅读全文
摘要:procedure TForm1.Button1Click(Sender: TObject); var SEInfo: TShellExecuteInfo; ExitCode: DWORD; ExecuteFile, ParamString, StartInString: string; begin ExecuteFile := 'c:\Windows\sy...
阅读全文
摘要:以 JPEG 图片为例,以下代码演示了如何将一个 JPEG 图片保存为纯文本形式,并将其以图片形式读回并显示。 保存 TXT: 从 TXT 读回 JPEG:
阅读全文
摘要://从内存中加载DLL DELPHI版 unit MemLibrary; interface uses Windows; function memLoadLibrary(pLib: Pointer): DWord; function memGetProcAddress(dwLibHandle: DWord; pFunctionName: PChar): Pointer...
阅读全文
摘要: windows似乎只提供了一种启动进程的方法:即必须从一个可执行文件中加载并启动。 而下面这段代码就是提供一种可以直接从内存中启动一个exe的变通办法。 用途嘛, 也许可以用来保护你的exe,你可以对要保护的 ...
阅读全文
摘要: (1) idispatch是COM object的接口, 在Delphi中通常指一个OleObject. (2) OleVariant是一种COM object兼容的Variant类型, 可以通用任何Ole Automation 类型, 他与CreateOleObject创建的idispatch兼容 1:Com+的编写: ...
阅读全文
摘要:转自http://www.cnblogs.com/abchjb/articles/461725.html 软件重用是业界追求的目标,人们一直希望能够像搭积木一样随意“装配”应用程序,组件对象就充当了积木的角色。所谓组件对象,实际上就是预定义好的、能完成一定功能的服务或接口。问题是,这些组件对象如何与应用程序、如...
阅读全文
摘要: 今天突然用到Delphi中的二维数组,本来想用二维数组来存储用户的权限去控制登陆界面后的若干菜单子项的,可是发现用数据库存储二维数组还需要经过一些转化,于是想了个笨方法,在数据库中把二维数组转换为String字符串进行存储,读出后再还原成二维数组,下面是我写的两个转化函数。 二维数组的形式如下:a[(1,1,1,1,1,1,1,1,1,1),(1,1,1,1,1,1,1,1,1,1)...
阅读全文
摘要:delphi很早就已经可以进行三层的开发了. 但一直到现在, 网上这方面的东西太少 了. 要么太老, 甚至不完全正确. 例如: 如 何进行多表更新(提交), 很多回复还是说用ADOConnection的事务, (如果要同时更新SQL SERVER和Oracle数据库的表怎么 办). 当然也有说用SetComplete, SetAbort的. 但说的很简单, 其中的注意事项又是什么呢. ...
阅读全文
摘要:一年前开发了一个MIDAS的程序,最近修改服务端,可是这个服务无法注册,最后终于找到了解决办法,这个相关文章如下:(算是备份吧) (一)MIDAS是什么? Delphi中MIDAS到底是什么呢?和他相关组件是什么呢? MIDAS(Multitiered Distributed Application Services)多层分布式应用服务。 Delphi所提出...
阅读全文
摘要:从Dll中导出类,想必大家首先想到的是使用bpl包。这种方式有一个不好,那就是使用者必须清楚这个包中含有那些类,也就是说必须知道类的名字——这在一定意义上是个限制,试想一种情况,使用者定义了一个底层的抽象类(abstract class),然后在此基础上定义了许多应用类(concrete class),那么,对于使用者来说,他希望在不知道具体有哪些类的情况下能使用这些类——这么说似乎有些玄,但实际...
阅读全文
摘要:1.VarArrayCreate procedure TForm1.Button1Click(Sender: TObject); var V, W : Variant; i : Integer; begin V := VarArrayCreate([1,4], varVariant); V[1] := 1; V[2] := '...
阅读全文
摘要:webwx (2006-07-06 17:41:00) 比如: var tempVr: OleVariant; begin tempVr := VarArrayCreate([1..2], varOleStr); tempVr[1] := VarArrayOf([1, 2, 3, 4, 5]); tempVr[2] := VarArrayOf([6, 7, 8, 9, 10]); en...
阅读全文
摘要:在进程内自动化服务器中定义一个函数方法,需要在函数返回时,返回多个值,这就需要采 用数组的类型,比如,我定义了一个方法: function Calculate(inputtime: Integer): PSafeArray; safecall; 需要返回一个数组,如何实现呢?是否采用safearray类型呢? 在定义参数时采用的是safearray类型,怎么实现呢? 参考D5开发人员指南 23章,...
阅读全文
摘要:在服务器端建立一个remoteDataModule,MyTest,定义一个方法Testing,客户端可以通过 DcomConnection1.Appserver.Testing调用此远程方法!在服务器端的type library里手工建立一个接口,ITest1,然后,建立一数据模块, TDataModule3 = class(TDataModule,ITest1) 进行业务...
阅读全文
摘要:在COM+中,如何传递一个Record,或一个Record数组? (可以传递ADO的记录集吗?好像VB可以,但VB传递的记录集,Delphi可以用吗?) 当然可以 看看一下代码 1。定义一个结构 ///////////////////自定义的欠费统计结构 towe=record name:shortstring; ...
阅读全文
摘要:ADO+SQL Server 2K+Delphi 5+miads做的三层结构. 中间层RDM自定了一个接口,有一个参数为olevariant类型,把数据库中的image类型的数据 传给Client,想通TMemoryStream把数据读到olevariant中,失败. 问题1:如何把一个TMemoryStream中的数据读到一个olevariant型变量中? 问题2:如上面描述,有否其他方法实现?...
阅读全文
摘要:由于COM+是执行在COM+的执行环境中,因此Delphi 的程序员无法像Delphi的分布式多层应用系统一样可以直接在 Delphi 的IDE 中设定应用程序服务器的断点来调试。 事实上, Delphi 仍然可以在 Delphi 的集成开发环境中调试 COM+组件,也可以让程序员在集成开发环境中在COM+组件的程序单元中设定断点,然后执行客户端应用程序调用 COM+组件。此时 Delphi 便会...
阅读全文
摘要:http://www.delphibbs.com/delphibbs/dispq.asp?LID=3331412 来自:lich, 时间:2006-1-17 12:59:27, ID:3331615 | 编辑 Midas 中有相关的代码 来自:lich, 时间:2006-1-17 13:08:26, ID:3331624 | 编辑 使用 SConnect.pas...
阅读全文
摘要:有一系统用ado+socket三层方式 服务器端:Ado--sqlserver 客户端:socket连接方式 问: 1.当客户端需要查询或更新数据时,在客户端的clientdataset的commandtext 里写入语句,让服务器端去执行,是否合理? 2.当需要查询一个数据量较大的数据库时,采用select top 10000(为查询最大数,用户设置) * from table 然后...
阅读全文
摘要:好久没来这里,我来尝试着为初学者做一个入门讲座。 业务:客户的需求描述稍作整理,就可以认为是业务 业务逻辑:业务的计算机具体实现,对于数据库应用来说,往往可以具体为一个SQL语句 你现在正跟客户进行关于工资模块需求的交谈: 客户说,我想要查某个部门的工资表,有时需要查某个人的工资表,这个工资表是按月查询的 你现在可以根据这个需求建立这样的工资服务模型(基于Com+): mtsSalary.dll ...
阅读全文
摘要:许多初学者问这类问题,这里做个总结 ================================= 接口不支持错误,是Com Based组件在调试阶段经常发现的错误。在不同的操作系统中,这个错误表达有所不同,Interface not Suported,类没有注册,没有注册类别,指的都是同一种错误。 Com Based...
阅读全文
摘要:众所周知,delhpi对象有属性、方法和事件,但我们不能在TLB编辑器中 找到com事件,这里告诉您如何创建Com事件。 Writing COM Automation Events - by Borland Developer Support Staff Abstract:A short tutorial on writing simple Automation server and client...
阅读全文
摘要:unit TransComponent; {本工具供Com/DCom间传递组件(从TComponent继承的所有对象) 调用 VariantToComponent 时会出现 "Class <TClassName> not Found "提示 多次 , 在调用单元的initialization段加以下语句: RegisterClass(<ClassName>...
阅读全文
摘要:定义两个接口类型: IIntf1=interface ['{85460100-EB0D-11D9-8395-BA555218190B}'] procedure I1Func1(p1:string); procedure I1Func2(p1,p2:string); end; IIntf2=interface ['{85460101-EB0D-...
阅读全文
摘要:delphi 引用方式: Project->Import Type Library -> 可以看到 MyQoo Library (Version 1.0)名称 ->Create Unit ->在Borland\import资料夹产生MyQoo_TLB.pas单元給其他程式引用 应用范列: unit Unit1; interface uses ...
阅读全文
摘要:http://www.2ccc.com/article.asp?articleid=1359 转自csdn的Blog:感觉还可以,对我们在编程中还有用,所以发给大家. 编写Delphi应用程序时,经常会遇到一些ActiveX控件[注:扩展名为OCX的控件或DLL的类型库],它们为应用程序的开发提供了简单的操作途径。然而,这些程序在发布的同时,面临Active...
阅读全文
摘要: ActiveX控件也就是一般所说的OCX控件,它是ActiveX技术的一部分。ActiveX是微软公司推出的基于组件对象模型COM的技术,包括对Windows 32位应用编程接口(Win32 API)和组件对象模型的一系列扩充和增强,目标是把计算机桌面环境与因特网环境集成起来,同时保护在Windows技术中现有的开发投资。微软的ActiveX技术根...
阅读全文
摘要:本文通过一个编程实例介绍了Delphi 7下编写不可视ActiveX控件的方法,并给出了源代码。为使用Delphi编写其他类型ActiveX控件的读者提供参考和借鉴。 关键词 Delphi,ActiveX控件,定时器,VCL组件 一、前言 Delphi下有大量优秀的且提供源码的VCL组件,如果想在其他开发环境(如VB 6.0,VC 6.0,VS.net等)中使用它们,就必须把这些VCL组件转...
阅读全文
摘要:举个例子: 假设a表和b表的数据是这样的。 abidnameidstock1a1152b2503c select * from a inner join b on a.id=b.id 这个语法是连接查询中的内连接,它产生的结果是 两个表相匹配的记录出现在结果列表中。 根据上面的表,出现的结果是这样的 a.ida.nameb.idb.stock1a1152b250select * from a,b ...
阅读全文
摘要:来源:http://www.delphibbs.com/delphibbs/dispq.asp?lid=3263037 该控件可以将任意文件打包进.dfm(使用zlib压缩),可以用该控件编写只有一个exe的绿色软件,或者用于自己编写安装程序。 使用非常简单,设计期将该控件放入form, 指定FileName属性即可将该文件内容打包进dfm中。运行时可以调用FileRes1.ResToFile解...
阅读全文
摘要:来源:http://www.delphibbs.com/delphibbs/dispq.asp?lid=2190549 procedure TForm1.Button1Click(Sender: TObject); type TDebugDL = record Parm1:String; Parm2:String; P...
阅读全文
摘要:笔者在前一段的工作中,需要开发一套简单的网络数据传输程序。由于平时常用Delphi做点开发,故此次也不例外。Delphi 7中带有两套TCP Socket组件:Indy Socket组件(IdTCPClient和IdTCPServer)和Delphi原生的TCP Socket组件(ClientSocket和ServerSocket)。但是,Borland已宣称ClientSocket和Server...
阅读全文
摘要:赵跃龙 张 兵 (中南大学计算机系,湖南长沙 410083) 【摘要】本文通过对WinSock的分析,在Delphi下进行了客户段和服务器端的多线程控制,以提高在网络上的数据传输性能! 【关键词】Winsock, Thread 1引言 Windows Sockets规范以U.C. Berkeley大学BSD UNIX中流行的Socket接口为范例定义了一套Microsoft Windows下网络编...
阅读全文
摘要:1、WSAStarup函数 用于初始化Winsock [声明] int WSAStarup(WORD wVersionRequested,LPWSADATA lpWSAData); [参数] wVersionRequested - 要求使用Winsock的最低版本号 lpWSAData - Winsock的详细资料 [返回值] 当函数成功调用时返回0 失败时返回非0的值 2、socket函数 用...
阅读全文
摘要:来自交大bbs 发信人: maomaony (毛毛), 信区: Visual 标 题: 运行时自动注册ActiveX控件 发信站: 交通大学思源BBS (Mon Mar 6 19:44:42 2000), 转信 让Delphi应用程序在运行时自动注册ActiveX控件 Flier@stu.ccnu.edu.cn 在使用Delphi或VB等可视化编程语言制作程序时,常常会用到...
阅读全文
摘要:摘 要:描述了MTS和COM+组件的原理,演示如何创建、安装、分 关键字:MTS COM COM+ 类 别:COM & ActiveX CoDelphi.com版权所有,未经允许,不得进行任何形式转载 简述 ·MTS是一种中间层COM组件宿主环境 ·中间层组件应当是无状态的 ·依靠无状态模式,MTS可以缓冲资源,在客户端之...
阅读全文
摘要:用过Delphi的编程爱好者们都知道,Delphi中Visual Component Library(VCL)中具有大量的组件,尤其是第三方设计的VCL,如Ahm系列,LMD系列,VenusPro等,在程序中适当的使用它们会让你的程序在界面上或者功能上增色不少,这让许多VB迷们馋的掉口水,因为毕竟免费的并且功能强大的ActiveX控件太少了,本文就是为那些到处找控件的VB迷写的。 ---- 为方便...
阅读全文
摘要:ASP中的ActiveX服务器组件为标准的Automation ActiveX组件,只要使用由ASP提供的接口和遵守ASP有关规则便可。Delphi 4.0作为一种高效、快速、强大的开发语言,为开发COM组件提供了很强的功能,但不知道什么原因,很少有人运用Delphi编写ASP中的ActiveX服务器组件。本文意在通过举例介绍如何运用Delphi编写ASP中的ActiveX 组件。 通过以下步骤创...
阅读全文
摘要:http://www.delphibbs.com/delphibbs/dispq.asp?lid=140562 ASP中的ActiveX服务器组件为标准的Automation ActiveX组件,只要使 用由ASP提供的接口和遵守ASP有关规则便可。Delphi 4.0作为一种高效、快 速、强大的开发语言,为开发COM组件提供了很强的功能,但不知道什么原因, 很少有人运用Delphi编写ASP中的...
阅读全文
摘要:在现在以及未来的操作系统中COM(组件对象模板)技术占有的比例越来越大了! COM是什么呢?你可以理解它为对象性质的API(区别于函数性质的API),因为一般函数性质的API调用是这样的:Sendmessage(handle,msgunit,wparam.lparam);而对于COM中的方法(这里改叫方法了)调用是这样的:ShellLink.SetPath(pchar(filepath));在这里...
阅读全文
摘要:第六章 DCOM 目的: 客户和服务器端使用DCOM,以及实现远程数据集; DCOM:分布式COM; DCOM服务器与COM服务器没有区别,只是位于远程电脑上; DCOM服务器的配置: DCOM的调用: 必须通过Proxy/Stub对象,并且是通过RPC协议; CoClass的CreateRemote方法(Create调用本地); Proxy: 远程COM对象在应用程序执行中的影象(Image),...
阅读全文
摘要:第一章 在Delphi中使用接口 1.1 定义接口: 目的:什么是接口,以及和抽象类的关联以及不同点。 抽象类(备注理解接口最简单的方法) 永远不能创建一个抽象类的实例; 本身不能实现功能,依靠派生类实现; 接口 被申明为interface类型。接口名从字母I开始。类类型名从T开始。 所有的接口从IUnknown继承; 不能创建接口实例; 不能在接口中指定范围指示。所有的方法都是公有型(publi...
阅读全文
摘要:接口把类给包装了。类是应用程序功能的实现,所以必然会导致大而全,而接口是简单的,看看各个接口及其方法,都是很少的。 类喜欢采用深层继承关系,这样一来改变一个父类属性将导致一堆子类属性的更新,但是接口可以申明而不实现,接口是不推荐深层继承的。 我觉得MS对COM的说明是正确的,我们用了接口后可以在对用户隐藏内部实现的情况下面同时保护老功能还能使用,这也是光用类难以达到的。因为类就意 味着要实现新功能...
阅读全文
摘要:http://www.delphibbs.com/delphibbs/dispq.asp?lid=618422俺需要一个类似下面的方法! send.exe <pic.BMP >report.txt 不过要求通过程序声称pic.bmp的数据且不通过程序中转直接输出给已经运行的DOS下程序 send.exe并获得其运行结果的字符输出!因为同时可能有多个调用所以不能通过文件中转! funct...
阅读全文
摘要:DameWare NT Utilities是一个非常棒的管理软件。 我在局域网里使用过,里面的远程执行命令行的功能写得很逼真(界面和本机CMD环境感觉差不多) 这样的功能如何用Delphi实现 包括它那逼真的界面。。。 不是这样。是管道!! 下面是一些代码,还没有调试成功。现在没时间调试了。 unit Unit1; interface uses Windows, Messages, SysUtil...
阅读全文
摘要:问题: 很简单的问题(RD.Attr and faDirectory)=faDirectory等于(RD.Attr=faDirectory)嘛? 来源:http://www.delphibbs.com/delphibbs/dispq.asp?lid=2497760 来自: 3333W, 时间: 2004-03-11 16:49:00, ID: 2497760 我一直不明白啊,如果相...
阅读全文
摘要:问题:200分,多个线程把搜集的数据各自生成txt文件,只启动一个线程添加到数据库,请指教? http://www.delphibbs.com/delphibbs/dispq.asp?lid=1233274 来自:yecloudy, 时间:2002-7-31 9:16:00, ID:1233274 [显示:小字体 | 大字体] 200分,多个线程把搜集的数据各自生成txt文件,只启动...
阅读全文
摘要:★★★关于线程同步: Synchronize()是在一个隐蔽的窗口里运行,如果在这里你的任务很繁忙,你的主窗口 会阻塞掉;Synchronize()只是将该线程的代码放到主线程中运行,并非线程同步。 临界区是一个进程里的所有线程同步的最好办法,他不是系统级的,只是进程级的,也就是说他可能利用进程内的一些标志来保证该进程内的线程同步,据Richter说是一个记数循环;临界区只能在同一进程内使用;临界...
阅读全文
摘要:首部 function Languages: TLanguages; $[SysUtils.pas 功能 返回系统语言对象 说明 通过此函数可以得到系统的语言环境 参考 type SysUtils.TLanguages 例子 ///////Begin Languages procedure TForm1.Button1Click(Sender: TObject); var I: Integer;...
阅读全文
摘要:首部 function AnsiResemblesText(const AText, AOther: string): Boolean; $[StrUtils.pas 功能 返回两个字符串是否相似 说明 ANSI(American National Standards Institute)美国国家标准协会;不区分大小写 参考 function StrUtils.SoundexProc; var S...
阅读全文
浙公网安备 33010602011771号