摘要: 基于Delphi的接口编程入门为什么使用接口? 举个例子好了:有这样一个卖票服务,电影院可以卖票,歌剧院可以卖票,客运站也可以卖票,那么我们是否需要把电影院、、歌剧院和客运 站都设计成一个类架构以提供卖票服务?要知道,连经理人都可以卖票,很显然不适合把经理人也包括到卖票服务的继承架构中,我们需要的只是一个共通的卖票服 务。于是,卖票的服务是个接口,电影院、歌剧院什么的只要都遵循这样一个服务定义就能很好地相互交互和沟通(如果须要的话)。 如何在Delphi中使用接口 1、声明接口IMyInterface = interface(IInterface) //说明(1)['{63E072DF 阅读全文
posted @ 2013-05-18 20:50 麦麦提敏 阅读(340) 评论(0) 推荐(0)
摘要: 首先将pagecontrol的ownerdraw设为true再在它的onDrawTab事件里写如下代码:var TmpRect: TRect;begin with PageControl1.Canvas do begin Brush.Color := $00E6F6F8; Font.Color := clblack; FillRect(Rect); TmpRect := Rect; OffsetRect(TmpRect, 0, 3); DrawTex... 阅读全文
posted @ 2013-05-18 20:49 麦麦提敏 阅读(738) 评论(0) 推荐(0)
摘要: delphi执行查询语句时的进度条怎么做procedure TForm1.FormCreate(Sender: TObject);begin ADOQuery1.ExecuteOptions := [eoAsyncFetch];//设为异步读取end;//ADOQuery的OnFetchProgress事件procedure TForm1.ADOQuery1FetchProgress(DataSet: TCustomADODataSet; Progress, MaxProgress: Integer; var EventStatus: TEventStatus);begin ProgressB 阅读全文
posted @ 2013-05-18 20:37 麦麦提敏 阅读(279) 评论(0) 推荐(0)
摘要: Fastreport使用经验(转) 在Delphi程序中访问报表对象最基本的方法就是frxReport1.FindObject。然后把返回的对象强制转换成它的类型,当然,在报表中必须真的有这么个东东。如改变一个Tfrxmemoview的内容,可以这样写TfrxMemoView(frxReport1.FindObject('memo1')).Text:='jade';还可以用TfrxReportPage的FindBand方法,这个方法的参数是Band类,如报表抬头就可以直接使用这个方法,因为抬头一个页中只有一个,如果有多个同样的类。则不能使用这种方法。如果要使用T 阅读全文
posted @ 2013-05-18 19:45 麦麦提敏 阅读(2712) 评论(0) 推荐(0)
摘要: cxgrid 双击 获取所点击行的内容创建view的 optionsselection->cellselect 设置为false ,才能触发双击事件案例:procedure TForm_Child_Archive.cxGrid1DBTableView1CellDblClick( Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);begin3 ////取得 阅读全文
posted @ 2013-05-18 19:44 麦麦提敏 阅读(576) 评论(0) 推荐(0)
摘要: 我有一个问题请教:我在BDEQUERY中使用其FILTER属性进行条件筛选时一切正常,但相同的条件拿到ADOQUERY中使用就出现错误,具体情况如下:1、BDEQUERY和ADOQUERY指向同一个数据库,其中的SQL语句相同;2、筛选条件如果是以下类型的情况都正确: (字段1= 'AAA ') (字段1= 'AAA ') OR (字段1= 'BBB ') (字段1= 'AAA ') AND (字段2= 'TTT ')3、但当出现此类情况时就会出错: ((字段1= 'AAA ') OR (字段1= 阅读全文
posted @ 2013-05-18 19:38 麦麦提敏 阅读(2826) 评论(0) 推荐(0)
摘要: Delphi 2007 代码补全、语句提示的快捷键是什么?CTRL+SPACE 代码补全,很好用的(先改了输入法热键) CTRL+SHIFT+C 编写申明或者补上函数 CTRL+SHIFT+↑(↓) 在过程、函数、事件内部, 可跳跃到相应的过程、函数、事件的定义(在INTERFACE和IMPLEMENTATION之间来回切换) CTRL+SHIFT+G 插入GUID CTRL+J (弹出DELPHI语句提示窗口,选择所需语句将自动完成一条语句)代码模板 CTRL+K+E(F) 标识符变小(大)写 CTRL+K+O(N) 选中的变小(大)写 CTRL+O+U 切换选择块的大小写 SHIFT+鼠标 阅读全文
posted @ 2013-05-12 19:13 麦麦提敏 阅读(933) 评论(0) 推荐(0)
摘要: Delphi中使用存储过程介绍Delphi + MS SQL Server是目前最为流行的管理信息系统开发环境和工具。Delphi的强大数据库操作控件极大地减轻了开发人员的工作量,在这些控件中,最常用的有 TQuery、TTable、TADOQuery、TADOTable、TADODataSete等,这些控件执行查询操作时有一个共同的特点,即将所有数据库记录从服务器取回客户端,再根据查询的条件进行筛选。很明显,如果有大量的数据在服务器与客户端之间传递,就会降低程序执行的速度,影响应用程序的性能。针对这种情况,MS SQL Server数据库和Delphi开发工具都提供了存储过程来解决这类问题。 阅读全文
posted @ 2013-05-12 19:00 麦麦提敏 阅读(1181) 评论(0) 推荐(0)
摘要: 在IDE中输入控件的名称+. 就会弹出代码完成提示,会列出该控件的所有属性、方法等,也许你对代码完成就是这样的印象,其实它还有一些好用的功能,只不过由于它的激活快捷键也是ctrl+space,与我们的中英输入法切换快捷键冲突才没有显露出来,我强烈建议大家把中英输入法切换快捷键改为其它,以使用完整的代码完成功能,下面是一些代码完成功能的演示动画,看看,很酷吧!呵呵,再实现接口时接口定义的方法可以直接过来了,真好用。处理消息时也很方便,消息的定义自动就上去了这功能没见过吧,很有趣也可以直接定位到方法的实现代码引用单元时也不用死记硬背了,也可以选了 阅读全文
posted @ 2013-05-12 18:54 麦麦提敏 阅读(630) 评论(0) 推荐(0)
摘要: Delphi编程地一些小程序1、用Enter键代替Tab键在实际的程序开发中我们经常有这样的要求,用户不喜欢用Tab键,他希望用Enter键来代替。我们应该什么做呢?首先:设定Form的KeyPreview属性为True。其次:把Form上的所有Button的Default属性设为False。最后:在Form的onKeyPress事件中添加如下代码:procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin Key := #0; Perform(Wm_NextDlg.. 阅读全文
posted @ 2013-05-12 18:18 麦麦提敏 阅读(902) 评论(0) 推荐(0)