delphiup

2008年8月15日 #

delphi MDI 闪烁问题

闪烁问题这样解决:
用Delphi自带的MDI模板自动建立一个多文档工程,然后做如下修改,可使屏幕不闪烁
procedure TMainForm.CreateMDIChild(const Name: string);
var
  Child: TMDIChild;
begin
  { create a new MDI child window }
  Perform(WM_SETREDRAW, 0, 0); //锁屏幕
  Child := TMDIChild.Create(Application);
  Child.WindowState := wsMaximized; //假设在这里将新建的子窗体设为最大化
                                    //或设置子窗体的Width和Height都可以
  Child.Caption := Name;
  if FileExists(Name) then Child.Memo1.Lines.LoadFromFile(Name);
  Perform(WM_SETREDRAW, 1, 0); //解锁屏幕并重画
  RedrawWindow(Handle, Nil, 0, RDW_FRAME + RDW_INVALIDATE +
    RDW_ALLCHILDREN + RDW_NOINTERNALPAINT);
end;
这样,就是在主窗体中一直按着Ctrl+N不动,也不会闪烁了

posted @ 2008-08-15 11:28 delphiup 阅读(46) | 评论 (0)编辑

2008年7月24日 #

access 判断表是否存在

Select * From MSysObjects where name='table' and type=1 (1 table,3 view)

 

默认的情况是admin对MSysObjects没有任何权限!包括查询

  打开您的ACCESS数据库,然后

  工具 -> 选项 -> 视图 -> 隐藏对象、系统对象
前面的勾选上。

  工具 -> 安全 -> 用户与组的权限
在对象名称中选定 MSysObjects ,然后权限中设置其权限。

  OK,现在可以试一试了,以后这个数据库就可以直接读取MSysObjects表了

posted @ 2008-07-24 12:57 delphiup 阅读(129) | 评论 (0)编辑