您正在查看 "delphi学习" 分类下的文章 2011-10-22 13:02 var sb: SCROLLINFO; begin sb.cbSize := SizeOf(sb); GetScrollInfo(RichEdit1.Handle, SB_VERT |
2011-04-14 20:28 一、服务程序和桌面程序的区别
Windows 2000/XP/2003等支持一种叫做“系统服务程序”的进程,系统服务和桌面程序的区别是:
系统服务不用登陆系统即可运行;系统服务是运行在System Idle Process/System/smss/winlogon/services下的,而桌面程序是运行在Explorer下的;系统服务拥有更高的权限,系统服务拥有Sytem的权限,而桌面程序只有Administrator权限;在Delphi中系统服务是对桌面程序进行了再一次的封装,既系统服务继承于桌面程序。因而拥有桌面程序 |
2010-11-30 20:41 http://www.delphifeeds.com/go/s/74482 var AField : TField;// <= line added begin Assert(AdoQuery1.Active,'Dataset is not active!'); try AdoQuery1.DisableControls; AField := AdoQuery1.FieldByName('MyFieldName');// <= 这里是重点 AdoQuery1.First; whilenot AdoQuery1.Eof do |
2009-09-09 10:26 Delphi中利用webbrowser控件来实现自动填表,此例为一模板,稍作修改可用来自动申请QQ、邮箱、论坛ID之类(不包含验证码识别)。
代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,MSHTML, SHDOCVW,IdGlobal;
|
2009-08-03 17:08 窗体创建事件中加如下代码:
focusRectangle := TShape.Create(self) ;
focusRectangle.Shape := stRectangle;
focusRectangle.Visible := false;
focusRectangle.Brush.Style := bsClear;
focusRectangle.Pen.Style := psDot;
focusRectangle.Pen.Color := clRed;
focusRectangle.Pen.Width := 1;
在Screen的OnActiveControlChange事件中处理:
|
2009-06-04 10:14 一直关注free pascal好久了,可是总是感觉BUG多没用过,这几天闲来无事,用用看,听说支持CE,塞班系统,可是我搞了好久都没搞定,郁闷。
http://www.lazarus.net.cn/中文社区 |
2008-12-27 18:57 //最常用的 string var str: string; {定义} begin str := '万一'; {赋值} ShowMessage(IntToStr(Length(str))); {长度是: 4} end;
//长字符串 AnsiString; 在当前版本(2007)中的默认状态下, String 就是
|
2008-11-19 17:35 相信很多delphi爱好者因在vista不能正常使用delphi7而烦恼,甚至有些朋友说vista的出现就是delphi的未日了。我可以明确告诉 大家,delphi7绝对可以在vista下正常使用。在vista上安装过d7的朋友都知道,当你正常安装d7后,启动d7时,屏幕会出现一个对话框。 对话框的提示很明显,delphi不能rename一个文件,这说明了什么?会不会是用户的权限不够?没错,你猜对了。我现在给大家提供一个解决方案,大 家可以参考一下。
step1,修改“C:\Program Files\Borland\Delphi7\Bin”的权限(右击上面的目录-》属性-》安全- |
2008-11-15 7:45 前言:
Delphi 支持三种文件类型: 文本文件、记录文件、无类型文件。
文本文件是以行为单位进行读、写的。由于每一行的长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。
文本文件只能单独为读或写而打开,在一个打开的文本文件上同时进行读、写操作是不允许的。
文本文件的打开需要两个步骤:1.文件变量与文件名关联;2.初始化读写。
1.文件变量与文件名关联:
AssignFile(VarTxt, FileName);
FileName 如果省略路径将默认当前目录。
|
2008-11-13 15:10 在 Delphi 中存储系列对象, 大家常用 TList 类; 有了 TObjectList(在 Contnrs 单元)以后, 存储对象就有了更好的选择, 因为从 TObjectList 列表中移除的对象同时会得到释放.
很少有人使用 TStringList 储存对象, 殊不知用 TStringList 储存对象也有 TList 和 TObjectList 所不及的优势.
我想在继续探讨前先重复一个概念: 对象的 "指针" 和 "首地址":
我们通过对象的指针可以找到对象, 也就是说指针是指向了对象; 对象也不过是一系列数据, "指针" 一般是指向这组数据的 "首地址 |
2008-11-13 13:17 //TStringList 常用方法与属性: var List: TStringList; i: Integer; begin List := TStringList.Create; List.Add('Strings1'); {添加} List.Add('Strings2'); List.Exchange(
|
2008-11-07 14:27 StringOfChar 是反复 "字符" 成 "字符串" 的函数;
DupeString 是反复 "字符串" 成 "新字符串" 的函数;
StringOfChar 来自 System 单元, 可以直接使用;
DupeString 来自 StrUtils 单元, 使用时需要 uses StrUtils;
如果仅仅是反复 "字符", 当然应该用 StringOfChar , 它是用汇编代码实现的, 速度会稍好一些.
|
2008-11-04 20:53 在cxGrid1DBTableView1 CustomDrawIndicatorCell事件中写代码
procedure TForm1.ADOQuery1AfterOpen(DataSet: TDataSet);
begin
if DataSet.RecordCount>0 then
cxGrid1DBTableView1.OptionsView.IndicatorWidth :=
Canvas.TextWidth(IntToStr(DataSet.RecordCount)) + 4 ;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
|
2008-10-31 11:35 刚刚在盒子上看到的,感觉不错
在edit的OnKeyDown响应函数里写这么句就可以了
SendMessage(ListBox1.Handle,WM_KEYDOWN,Key,0);
|
2008-10-30 14:07 var i: Integer; d: Real; begin i := Trunc(1234.5678); {截取整数} ShowMessage(IntToStr(i)); {1234} i := Trunc(-1234.5678); ShowMessage(IntToStr(i)); {-1234}
i := Round(1234.5678); {四舍五入} Sho
|
| | |