易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : delphi

Delphi使用ini配置文件连接MS SQL数据库

很早做过的一个delphi项目,把里面用到的技术总结一下,主要是针对象我这样的delphi新手,技术上做个积累吧!
假设我们的数据库配置文件ServerInfo.ini内容如下:
[ServerInfo]  
ServerIP=192.168.1.5
SQLDBName=Data 
SQLUserID=sa  
SQLPwd=  
我们定义一个连接数据库的过程DBConnect内容应如下
procedure TDM.DBConnect();
var
  ini:TiniFile;
  Server,User,Pass,DBName:string;
  begin
      ini := TiniFile.Create(ExtractFilePath(Application.ExeName)+'dbconn.ini');  //初始化ini文件
      Server := ini.ReadString('serverinfo','ServerIP','');  //数据库ip地址
      DBName := ini.ReadString('serverinfo','SQLDBName','');   //数据库名
      User := ini.ReadString('serverinfo','SQLUserID','');  //数据库用户名 
      Pass := ini.ReadString('serverinfo','SQLPwd','');  // ......

Delphi使用ini配置文件连接MS SQL数据库

很早做过的一个delphi项目,把里面用到的技术总结一下,主要是针对象我这样的delphi新手,技术上做个积累吧!
假设我们的数据库配置文件ServerInfo.ini内容如下:
[ServerInfo]  
ServerIP=192.168.1.5
SQLDBName=Data 
SQLUserID=sa  
SQLPwd=  
我们定义一个连接数据库的过程DBConnect内容应如下
procedure TDM.DBConnect();
var
  ini:TiniFile;
  Server,User,Pass,DBName:string;
  begin
      ini := TiniFile.Create(ExtractFilePath(Application.ExeName)+'dbconn.ini');  //初始化ini文件
      Server := ini.ReadString('serverinfo','ServerIP','');  //数据库ip地址
      DBName := ini.ReadString('serverinfo','SQLDBName','');   //数据库名
      User := ini.ReadString('serverinfo','SQLUserID','');  //数据库用户名 
      Pass := ini.ReadString('serverinfo','SQLPwd','');  // ......

Delphi自适应分辨率(比较完美的一个方法)

procedure TfrmMain.FormCreate(Sender: TObject); //主窗体FormCreate事件
var FWidth:integer;
begin
  if (screen.Width <> 1024) then  //假设你设计程序时的分辨率为1024
  begin
    FWidth:=width;
    scaled:=true;
    Font.Size:=(Width div FWidth)*Font.Size;
    scaleby(screen.Width,1024);
    Height:=longint(Height)*longint(Screen.Height) DIV 768;
    Width:=longint(Width)*longint(Screen.Width) DIV 1024;
  end;
end;
这是以前项目用过的一段自适应分辨率的代码,效果还不错,不过字体最好调整为宋体。 ......

Delphi遍历Panel组件上的所有控件

procedure frmMain.CLS; //主窗体自定义事件CLS
var i:integer;
begin
  for i:=0 to panel5.ControlCount -1 do
  begin
    if panel5.Controls[i] is TEdit then  //Edit组件
    begin
       ((panel5.Controls[i]) as TEdit).Text:='';
       ((panel5.Controls[i]) as TEdit).Enabled:=true;
    end  else if panel5.Controls[i] is TComboBox then  //ComboBox组件
      begin
         ((panel5.Controls[i]) as TComboBox).Text:='';
         ((panel5.Controls[i]) as TComboBox).Enabled:=true;
      end  else if panel5.Controls[i] is TDateTimePicker then  //DateTimePicker组件
        begin
          ((pane ......

使用Delphi调用WebServices接口的简单应用实例


Delphi从6.0就开始支持Web Services的开发和应用了,本文通过使用Delphi 7.0调用新浪发送短信的Web Service进行短信应用程序开发这一实例详细的介绍在Delphi中如何开发基于Web Services的应用系统。
第一步,准备工作,了解新浪短信Web Service。新浪发送短信的Web Service地址是http://smsinter.sina.com.cn/ws/smswebservice0101.wsdl,该Web Service就只有一个方法,即string sendXml(carrier,userid,password,mobilenumber,content,msgtype)。各个参数全部为string类型,其含义基本如下(可能不正确)。
Carrier:运营商名称,好像可以随便输,建议输入“Sina”,如果输入其他的值,消息发送的特别慢;
Userid:您在新浪无线上注册的手机ID,如果您没有在http://sms.sina.com.cn上注册您的手机,你是无法使用本Web Service发送短信的;
Password:您在新浪无线上注册手机时所使用的密码;
Mobilenumber:对方的手机号码;
Content:发送短消息的内容;
Msgtype:发送短消息的类型,我估计支持彩信,不过我不知道怎么使用,似乎随便输什么都可以,我使用的是“Text”。
资费标准请参看新浪无线网站上的相关说明,为了不浪费电话费,我没测试 ......

Delphi 2010 的Char

今天用delphi 2010,做一个简单的内存映射的程序,在delphi以前版本上跑的好好的程序,在2010上,居然出现了不同的效果,发送端发送的字符串,接收端只收到一半,大概程序如下:
发送端:
var
    str : String;
begin
  CopyMemory(@(PShare^.Data),str,Length(str));  //把数据拷贝到共享内存
end;
接收端:
  mmo1.Text := PShare^.Data;
查找帮助,Length的帮助中有那么一句话:For Unicode (WideString) strings, Length returns the number of bytes divided by two.
莫非是Unicode在捣鬼?上网查查,发现delphi2010里面大范围的使用了Unicode格式,pChar也从以前Ansi格式的1byte,变成2byte,在Lengh的时候就除以2,那么我这个str里面不管有什么当然就会被腰斩了。
怎么解决呢?
万一老师说,可以用ByteLength函数,但是也有人说,ByteLength函数只能对Unicode字符串求字节长度,如果要对Ansi字符串进行计算,那么结果会是正确值的两倍,虽然在这个程序中,ByteLength函数足够满足我的需求了,但是为了养成良好的习惯,我采用了另外一种方法,就是Length(str)*SizeOf(Char),这样不管是求AnsiChar还是Unicode Char的字 ......

Delphi中取整函数Round的Bug解决

Delphi中 Round函数有个Bug
一旦参数是形如 XXX.5这样的数时
如果 XXX 是奇数 那么就会 Round up
如果 XXX 是偶数 那么就会 Round down
例如 Round(17.5)=18
但是 Round(12.5)=12
下面的函数即可纠正这个 Bug 但是是临时性的
执行 DoRound(12.5) 结果为 13 正确
 function DoRound(Value: Extended): Int64;
procedure Set8087CW(NewCW: Word);
asm
MOV Default8087CW,AX
FNCLEX
FLDCW Default8087CW
end;
const
RoundUpCW = $1B32;
var
OldCW : Word;
begin
OldCW := Default8087CW;
try
Set8087CW(RoundUpCW);
Result := Round(Value);
finally
Set8087CW(OldCW);
end;
end; ......
总记录数:644; 总页数:108; 每页6 条; 首页 上一页 [15] [16] [17] [18] 19 [20] [21] [22] [23] [24]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号