Delphi操作ini配置文件

最近在做的IP设置程序~因为有些东西要保存成常量~但是又可能需要进行一些改动~所以就想到了保存到INI配置文件的办法~ 找了一下教程~还是继续分享~ 一、有必要了解INI文件的结构: ;注释 [小节名] 关键字=值 ... INI文件允许有多个小节,每个小节又允许有多个关键字, “=”后面是该关键字的值。 值的类型有三种:字符串、整型数值和布尔值。其中字符串存贮在INI文件中时没有引号,布尔真值用1表示,布尔假值用0表示。 注释以分号“;”开头。 二、定义 1、在Interface的Uses节增加IniFiles; 2、在Var变量定义部分增加一行: myinifile:Tinifile;...


全文约 190 字, 预计阅读时间为 1 分钟

Delphi获取Access中的表名

因为开始做IP设置程序~把每一栋楼划分为一个表~也就在一开始的时候要历遍数据库中的所有表来获得下拉菜单的选项,找了一些资料,结果如下: //声明变量: lString,lTableName:TStrings; //-----------获取表名信息------------- lString:=TStringList.Create; lTableName:=TStringList.Create; DM_Conn.con_Access.GetTableNames(lString,True); for i:=0 to lString.Count-1 do begin if (lString.Strings[i]<>'MSysACEs')...


全文约 85 字, 预计阅读时间为 1 分钟

Delphi“尚未调用CoInitialize”解决方法

之前写过《Delphi线程简单创建、挂起、激活与终止》,但是在运行的时候会出现没有调用CoInitialize的错误~查找了一下~随便分享解决方法~ 在CoInitialize(LPVOID),它将以特定参数调用CoInitializeEx,为当前单元初始化COM库,并标记协同模式为单线程模式。参数必须为NULL。这是关于OLE和COM的问题。 在CoInitializeEx(LPVOID),新版本,可以用参数指定协同模式,如多线程模式,但注意单元的协同模式是不能改的,如果在已经初始化为多线程的单元里初始化OLE将失败并返回RPC_E_CHANGED_MODE。 每个线程只要调用一次初始化就够了,同一线程中的后续调用也将通过,但会返回S_FALSE。后面解除初始化调用要与本调用一一对应,返回S_FALSE的CoInitialize调用也计算在内。应用程序的第一个线程将调用CoInitializeEx(COINIT_APARTMENTTHREADED或0),必须是最后一个解除初始化的。如果不按上面的顺序进行初始化/解除函数调用,在该单线程单元(STA)里后续的初始化调用将失败,应用程序将无法工作。由于无法控制本地服务器的载入/御载顺序,在DLLMain里调用初始化/解除函数是不安全的。 例: 1)在DLL中使用ADO数据库组件时,调用程序调用该DLL时会出现”尚未调用CoInitialize”错误,解决的办法是在程序初始化时调用CoInitialize(nil)方法。 initialization CoInitialize(nil); {* * * * * * *...


全文约 227 字, 预计阅读时间为 1 分钟

Delphi Access Violations 问题的解决思路

Windows用户可能经常会看到类似于错误提示:“Error:Accessviolationataddress836556F8.Readofaddress836556F8”。作为一个Delphi程序开发者,遇到这种错误的机会比其他用户更多(^_^)。 究竟什么是“AccessViolation”?如何在设计期避免它的出现? 其中AccessViolation(非法访问),GeneralProtectionFault(一般保护性错误)或者InvalidPageFault(无效页面错误),虽然说法不一样,但本质上总是由同一种错误引起的。AccessViolation常常在计算机用户运行的程序试图存取未被指定使用的存储区时遇到。 Accessviolationataddress inmodule Readofaddress 一旦Windows要在它被分配的存储区之外写数据信息,它就会覆盖其他程序甚至操作系统的命令或数据。一旦发生了这种情况,操作系统将会瘫痪或者以某种形式关闭,你必须重新启动计算机。 例如,在WindowsNT/2000下一个程序遇到这种错误时,Dr.Watson出现并且停止了该程序,捕获了一些快速的细节状态,再把它们用文本形式记录下来。AccessViolation是某些最令人气恼的Windows程序遇到的错误之一。本文的目的就是让你找到Delphi中AccessViolation的解决之道。首先声明一点,AccessViolation和MicrosoftAccess没有任何关系。 用Delphi开发程序时,我们可以把遇到的AccessViolation分成两大类:运行期和设计期。 一、设计期的AccessViolation 1.硬件原因 在启动或关闭DelphiIDE以及编译一个Delphi工程时容易出现设计期的AccessViolation。在你的计算机运行中出现AccessViolation信息可能由各种各样的原因引起,包括系统BIOS、操作系统或者是硬件驱动线,有些声卡、显卡、网卡实际上也会导致这种错误。为什么这么说?计算机里的每一块卡都有它的设备驱动程序。对于不同的制造商、不同版本的Windows或者不同版本的Delphi都可能会遇到不同的问题。如下的几个步骤可能有助于你解决遇到的这些问题: 按照必要的步骤来证实你安装的驱动程序之间没有冲突。 有时降低显示分辨率可能会使某些古怪的显卡驱动程序稳定一些。 如果使用双处理器的主板,则保证对每个处理器的修改步骤一样。...


全文约 335 字, 预计阅读时间为 2 分钟

Delphi利用ADOQuery将SQL查询结果存放到数组

最近在用Delphi做交换机存活测试软件~因为要将Access数据库中的IP地址表等导入数组~研究了一下~大家分享一下~~ 比如 select B from A ,把查询的字段B放到一个数组中(假设是字符型的): procedure TForm1.Button1Click(Sender: TObject); var A: Array of String;//定义动态数组...


全文约 45 字, 预计阅读时间为 1 分钟