转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
Delphi&BCB一线程序员开发经验         ★★★★

Delphi&BCB一线程序员开发经验

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1565 更新时间:2009/4/23 18:26:27

当界面显示完后 该有数据默认显示出来 TDBGird TListView TTreeView ComboBox 都该有数据显示

ComboBox1.ItemIndex := 0;

一般来说新增和修改都会单对用一个界面来编辑。当新增完后回到浏览界面时 所有组件都要定位到刚刚新增的记录上,修改也如此。当删除时要定位到下一条记录。

ListView 和DBGird 要具有排序的功能 单击标题可按数字 字母 日期 升/降

ListView 和DBGird 当被选定数据 焦点被移动按钮上作动作时 要显示当前选择的数据是哪行!!

void __fastcall TfrmGather760::lvDataCustomDrawItem(TCustomListView *Sender, TListItem *Item, TCustomDrawState State,bool &DefaultDraw) //这段代码 会在选定行下画黄底

{

  if(Sender->Selected !=NULL)

  if(Item->Index == Sender->Selected->Index)

  {

    Sender->Canvas->Brush->Color = clYellow;

    Sender->Canvas->Font->Color  = clBlue;

  }

}

对一般超过2秒的操作要在函数中

TCursor OldCursor;

OldCursor = Screen->Cursor;

Screen->Cursor = crSQLWait;

try{ 。。。。。。} __finally{Screen->Cursor = OldCursor;}

 

 

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);

begin

  if (Shift = []) and (Key = VK_RETURN) then  //以回车键代替Tab键

    Perform(WM_NEXTDLGCTL, 0, 0);

 

  if Key = VK_NEXT then //按PageUp PageDown使TPageControl切换页面

  begin

    if PageControl.ActivePageIndex = PageControl.PageCount - 1 then

      PageControl.ActivePageIndex := 0

    else

      PageControl.ActivePageIndex := PageControl.ActivePageIndex + 1;

  end

  else if Key = VK_PRIOR then

  begin

   if PageControl.ActivePageIndex = 0 then

     PageControl.ActivePageIndex := PageControl.PageCount - 1

   else

    PageControl.ActivePageIndex := PageControl.ActivePageIndex - 1;

 end;

end;

end.

 

6 按钮互徹

 当每完成一个操作动作时 有些按钮要变成无效状态,在什么情况下又恢复有效。虽然只有一段话,如果不设置无效的话会经常带来各种致命错误!因为你是无法预测用户将会如何去操作你的软件,可用Rose来画出状态图或者用Word来表示!

7 性能

  当数据多时超过100条,ComboBox Listbox TreeView ListView DBGrid 等数据显示组件边输入边查询

支持模糊查询 模糊查询无非就是 Like ‘%XXX%’可以做个单独的窗口把查到的数据显示在窗口中

void __fastcall TfrmGather760::Edt_NameKeyPress(TObject *Sender,char &Key)

{

   if(Key != VK_RETURN)

return;

String sSQL;

sSQL  ="  Select Name as 姓名, Sales as  薪水 , from employee";    

sSQL +=" where Name like ''''%"+ LowerCase(Edt_Name->Text.Trim()) + "%'''' ";

TfrmPubDlg *pubDlg = new TfrmPubDlg(this);

pubDlg->ExecuteQuery(sSQL);

pubDlg->ShowModal();

.....

}

8 其他

 在开发一个模块时会单独使用个单元和DFM用作公共单元。会在单元里面 作个字符传结构体

Struct  TableName

{

 String Name;

String FiledName;

......

}; //主要的是在更多的单元里保持一致 尤其是当表名发生改变时

std::vector<String> sErrorArry //统一出错提示

而Delphi ResoucString 段 可以被资源化更容易本地化

 

新增修改时 对数据的检查 全部集中在保存按钮下

void __fastcall TForm3::Btn_SaveClick(Sender)

{

  if(Edt_Name->Text.IsEmpty())

  {

   ShowMessage(“”);

  Edit_Name->SetFocus(); //焦点要定位

  return;

}

ModalResult = mrOk;

}

 

在校的学生们大部分的毕业设计都是数据库之类的不是两层就是三层。要认真去做毕业设计的程序,要花钱请同学帮你做测试,提出更多的操作便利性。只有通过别人的测试,使用你的能力才会提高,代码大多数是异常处理和用户友好性!你带着作品去找工作会非常容易找到好的公司

 

其实从事数据库前台开发,重要的是写用户友好性代码!作程序员不仅仅是智力劳动 更是体力和心力的劳动!

上一页  [1] [2] 


[Delphi程序]Delphi(BCB)中编译器版本宏定义  [Delphi程序]如何用Tprinter设计BCB操作数据库程序中的报表
[Delphi程序]用日志钩子来实现键盘钩子功能之delphi/bcb版本  [Web开发]ADO多表更新BCB實現
[Sql Server]BCB 6 sp4 + SQL Server 2k 存取JPEG图像,绝对好…  
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台