博文

学习DELPHI,一些比较少用的知识(2007-12-27 11:18:00)

摘要:Delphi笔记(一些比较少用的知识) 1、随机函数
一般是用Random函数,并在之前用Randomize初始化,原来还有:
RandomFrom 从参数指定的数组中随机选出一个数值(整数、字符串等)
例:RandomFrom(['D1','D2','D3','D4']) RandomRange 在整数范围随机产生一个整数。
例:X:=RandomRange(20,50);// 20<=X<=50 X为整数 2、时间函数
FormatDateTime 格式化字符串
例:FormatDateTime('yyyy年 mm月 dd日 hh时 nn分 ss秒',now())
DecodeDate 将日期分解为年月日
例:DecodeDate(now(),Year,Month,Day)//Year,Month,Day:word
同理还有 DecodeTime(now(),hour,minute,second,msecond)
反函数是 EncodeDate(Year,Month,Day:word):TDateTime;
         EncodeTime(hour,minute,second,msecond:word):TDateTime; 3、在循环中用到的中断命令
Abort 无记录异常
Break 中断循环
Continue 跳到下一循环
Exit 跳出函数过程
RunError 中止程序
Halt 中止程序,返回操作系统
4、其他函数
Odd 判断奇数偶数
Pred 前一序号的值
Succ 后一序号的值 5、类的属性
属性的索引 function GetX(Const Index:Integer):Integer;
Procedure SetX(Const Index,Value:Integer); property A:integer index(0) read GetX write SetX;
property B:integer index(1) read GetX write SetX; A,B共同使用......

阅读全文(3480) | 评论:0

判断WebBrowser控件是否已经下载完成一个网页(2007-12-11 14:35:00)

摘要:procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
  CurWebrowser: IWebBrowser;
  TopWebBrowser: IWebBrowser;
  Document: OleVariant;
  WindowName: string;
begin
  CurWebrowser := pDisp as IWebBrowser;
  TopWebBrowser := (Sender as TWebBrowser).DefaultInterface;
  if CurWebrowser = TopWebBrowser then
   ShowMessage('Complete document was loaded')
  else
    begin
    Document := CurWebrowser.Document;
    WindowName := Document.ParentWindow.Name;
    ShowMessage(Format('Frame "%s" was loaded', [WindowName]));
    end;
end;......

阅读全文(6091) | 评论:0

清除EXCEL文件单元格中的“零”(2007-11-26 11:38:00)

摘要:打开EXCEL的vba编辑器,插入一个模块,输入以下VB脚本 Public Sub Zero_Clean()
i = 1
While i < 1000        ' 1000行
    For j = 1 To 50   ' 50列
        If Cells(i, j) = 0 Then Cells(i, j) = ""
    Next j
    i = i + 1
Wend
End Sub 运行它,可以让1000行×50列范围内所有显示0的单元格变成空白格。......

阅读全文(4948) | 评论:3

[ZT]永久杜绝U盘病毒自动传播的方法(2007-11-12 12:10:00)

摘要:永久杜绝U盘病毒自动传播的方法 :    首先,说明U盘病毒传播的原理:在U盘根目录下建立一个AUTORUN.INF文件。系统在插入U盘的时候会根据这个AUTORUN.INF文件在注册表[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2]下建立一个u盘的关联项,使双击打开指定的程序(如病毒程序)。因此只需禁止在此注册表位置创建子项即可。      禁止病毒的具体方法
     1. 点开始->运行 输入 regedit.exe 回车
     2. 打开注册表编辑器后展开项[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2]
      3. 右键点MountPoints2 选择权限
     4. 依次点击“安全中的用户和组”,在下面的权限中都改成拒绝
     5. 刷新一遍,此后即使U盘有病毒也不会激活,双击U盘会正常进入U盘 经过这样的权限设置,任何情况下的autorun.inf调用将被屏蔽,在默认状态下,带autorun的光盘和优盘被装载的时候,目录会被打开,双击盘符的结果是打开目录,而不是执行程序,同时,右键也不会出现任何形式的自动运行菜单 ......

阅读全文(3339) | 评论:2

[ZT]Delphi字符串函数3(2007-10-08 14:11:00)

摘要:adjustlinebreaks 函数 将给定字符串的行分隔符调整为cr/lf序列 ansicomparestr 函数 比较字符串(区分大小写) ansicomparetext 函数 比较字符串(不区分大小写) ansilowercase 函数 将字符转换为小写 ansiuppercase 函数 将字符转换为大写 chr 函数 返回指定序数的字符 comparestr 函数 比较字符串(区分大小写) concat 函数 合并字符串 copy 函数 返回一字符串的子串 datetimetostr 函数 将日期时间格式转换为字符串 datetimetostring 函数 将日期时间格式转换为字符串 datetostr 函数 将日期格式转换为字符串 delete 函数 从字符串中删除子串 disposestr 函数 释放字符串在堆栈中的内存空间
expandfilename 函数 返回包含绝对路径的字符串 floattostrf 函数 将浮点数转换为字符串 floattostr 函数 将浮点数转换为字符串 fmtloadstr 函数 从程序的资源字符串表中装载字符串 format 函数 格式化一系列的参数并返回pascal字符串 insert 在字符串中插入子串 inttohex 将整型数转换为十六进制数 inttostr 将整型数转换为字符串 ioresult 返回最新的i/o操作完成状态 isvalidident 测试字符串是否为有效的标识符 length 函数 返回字符串的动态长度 lowercase 函数 将给定的字符串变为小写 newstr 函数 在堆栈上分配新的字符串 pos 函数 在字符串中搜索子串 str 函数 将数值转换为字符串 stralloc 函数 给以null结束的字符串分配最大长度-1的缓冲区 strbufsize 函数 返回存储在由stralloc分配的字符缓冲区的最大字符数 strcat 函数 将一字符串附加到另一字符串尾并返回合并的字符串 strcomp 函数 比较两个字符串 strcopy 函数 将一个字符串复制到另一个字符串中 strdispose 函数 释放堆栈上的字符串 strecopy......

阅读全文(5934) | 评论:0

[ZT]Delphi字符串函数2(2007-10-08 14:06:00)

摘要:      首部 function AnsiResemblesText(const AText, AOther: string): Boolean;
      $[StrUtils.pas
      功能 返回两个字符串是否相似
      说明 ANSI(American National Standards Institute)美国国家标准协会;不区分大小写
      参考 function StrUtils.SoundexProc; var StrUtils.AnsiResemblesProc
      例子 CheckBox1.Checked := AnsiResemblesText(Edit1.Text, Edit2.Text);
      ━━━━━━━━━━━━━━━━━━━━━
      首部 function AnsiContainsText(const AText, ASubText: string): Boolean;
      $[StrUtils.pas
      功能 返回字符串AText是否包含子串ASubText
      说明 不区分大小写
      参考 function StrUtils.AnsiUppercase; function StrUtils.AnsiPos
      例子 CheckBox1.Checked := AnsiContainsText(Edit1.Text, Edit2.......

阅读全文(14343) | 评论:0

[ZT]Delphi字符串函数1(2007-10-08 14:03:00)

摘要:      首部 function CharLength(const S: String; Index: Integer): Integer;
      $[SysUtils.pas
      功能 返回字符串中指定位置的字符宽度
      说明 CharLength(‘English汉‘, 1) = 1;CharLength(‘English汉‘, 8) = 2
      参考 function System.Assert;function SysUtils.StrCharLength
      例子 SpinEdit1.Value := CharLength(Edit1.Text, SpinEdit2.Value);
      ━━━━━━━━━━━━━━━━━━━━━
      首部 function NextCharIndex(const S: String; Index: Integer): Integer;
      $[SysUtils.pas
      功能 返回下一个字符的位置
      说明 CharLength(‘你好‘, 1) = 3;CharLength(‘你好‘, 3) = 5
      参考 function System.Assert;function SysUtils.StrCharLength
      例子 SpinEdit1.Value := NextCharIndex(Edit1.Text......

阅读全文(4345) | 评论:0

[ZT]程序只允许运行一个实例的三种例子(2007-08-31 17:23:00)

摘要:程序只允许运行一个实例的三种例子 一:互斥体 program test;
uses
  Windows; var
    MutexHandle: Longword; begin
  if OpenMutex(MUTEX_ALL_ACCESS, FALSE, 'test')=0 then
  begin
    MutexHandle := CreateMutex(nil,TRUE,'test'); //创建一个互斥体,禁止重复运行
    MessageBox(0, pchar('try run another?'), pchar('It Works'), 0);
    ReleaseMutex(MutexHandle);                                //关闭互斥体
  end;
end. 异常退出了,互斥体还不消失 二:全局原子 program test; Uses Windows const iAtom=‘SingleApp’; begin
 if GlobalFindAtom(iAtom)=0 then
 begin
   GlobalAddAtom(iAtom);
        MessageBox(0, pchar('only 1'), pchar('It Works'), 0);
   GlobalDeleteAtom(GlobalFindAtom(iAtom));
 end;
end. 三:内存影射 除了能保存全局变量,还可以唯一标志,但异常退出的话也不能消失......

阅读全文(3840) | 评论:0

[ZT]SQL SERVER在计算机之间移植(3)(2007-08-26 11:24:00)

摘要:第 5 步:如何移动 DTS 包
第 5 步是可选操作。如果 DTS 包在源服务器上存储在 SQL Server 中或存储库中,您可以在需要时移动这些包。要在服务器之间移动 DTS 包,请使用下列方法之一。
方法 1
1. 在源服务器上将 DTS 包保存到一个文件中,然后在目标服务器上打开 DTS 包文件。
2. 将目标服务器上的包保存到 SQL Server 或存储库中。
注意:您必须用单独的文件逐个地移动这些包。
方法 2
1. 在 DTS 设计器中打开每个 DTS 包。
2. 在包菜单上,单击另存为。
3. 指定目标 SQL Server。
注意:在新服务器上,包可能无法正常运行。您可能必须对包进行更改,更改包中任何对旧的源服务器上的连接、文件、数据源、配置文件和其他信息的引用,以便引用新的目标服务器。您必须根据每个包的设计逐个包进行这些更改。
本文中介绍的步骤不移动数据库关系图以及备份与还原历史记录。如果您必须移动这些信息,请移动 msdb 系统数据库。如果您移动 msdb 数据库,则不必执行“第 4 步:如何移动作业、警报和运算符”或“第 5 步:如何移动 DTS 包”。     经常更新和优化的数据库可以以更快的速度运行。然而,将数据库直接从一个比较小的磁盘转移到另一个比较大的磁盘,这样的想法是不可能实现的。在转移数据库之前,你必须将数据库断开所有的操作。使用sp_detach_db存储程序可以将数据库从SQL Server 2000分离开来,从而达到数据库的离线操作。同样可以运行另一个存储程序sp_attach_db将数据库重新连接。 Sp_detach_db是一个功能强大的存储程序,它只能由系统管理人员运行。除了具备“分离”功能之外,这一程序在分离数据库之前也自动运行所有表的UPDATE STATISTICS。 以下的范例分离了MyDatabase数据库: EXEC sp_detach_db 'MyDatabase' 现在可以转移我们的数据库到一个新的磁盘并重新连接它们。连接数据库操作可能比较复杂,除了提供数据库名称,你可以选择SQL Server数据库文件的位置。 在以下的范例中,我们可以从一个新位置D:\AnyFolder......

阅读全文(3742) | 评论:0

[ZT]SQL SERVER在计算机之间移植(2)(2007-08-26 11:22:00)

摘要:第 1 步:导入和导出数据(在 SQL Server 数据库之间复制对象和数据)
您可以使用数据转换服务导入和导出数据向导来复制整个数据库或有选择地将源数据库中的对象和数据复制到目标数据库。*在传输过程中,可能有人在使用源数据库。如果在传输过程中有人在使用源数据库,您可能会看到传输过程中出现一些阻滞现象。
*在您使用导入和导出数据向导时,源服务器与目标服务器的字符集、排序顺序和整序不必相同。
*因为源数据库中未使用的空间不会移动,所以目标数据库不必与源数据库一样大。同样,如果您只移动某些对象,则目标数据库也不必与源数据库一样大。
*SQL Server 7.0 数据转换服务可能无法正确地传输大于 64 KB 的文本和图像数据。但 SQL Server 2000 版本的数据转换服务不存在此问题。 第 2 步:如何传输登录和密码
如果您不将源服务器中的登录传输到目标服务器,当前的 SQL Server 用户就无法登录到目标服务器。目标服务器上的登录的默认数据库可能与源服务器上的登录的默认数据库不同。您可以使用 sp_defaultdb 存储过程来更改登录的默认数据库。
第 3 步:如何解决孤立用户
在您向目标服务器传输登录和密码后,用户可能还无法访问数据库。登录与用户是靠安全识别符 (SID) 关联在一起的;在您移动数据库后,如果 SID 不一致,SQL Server 可能会拒绝用户访问数据库。此问题称为孤立用户。如果您使用 SQL Server 2000 DTS 传输登录功能来传输登录和密码,就可能会产生孤立用户。此外,被允许访问与源服务器处于不同域中的目标服务器的集成登录帐户,也会导致出现孤立用户。 1. 查找孤立用户。在目标服务器上打开查询分析器,然后在您移动的用户数据库中运行以下代码:
exec sp_change_users_login 'Report'
此过程将列出任何未链接到一个登录帐户的孤立用户。如果没有列出用户,请跳过第 2 步和第 3 步,直接进行第 4 步。 2. 解决孤立用户问题。如果一个用户是孤立用户,数据库用户可以成功登录到服务器,但却无权访问数据库。如果您尝试向数据库授予登录访问权,则会因该用户已经存在而出现下列错误消息:
Microsoft SQ......

阅读全文(3611) | 评论:0