1.窗口字体显示不完整
Font属性下将Charset选择成"GB2312_CHARSET"
Size是字体大小的意思,一般除了大标题,其他字体设置为10即可
Style是设置字体的形式:fsBold是黑体,fsItalic是斜体,下面2个依次是是加下划线和杠字体的意思
 
2.批量移动组件
用鼠标将需要移动的组件选中,就可以了,如果不方便选择,也可以在左上角的ObjectTreeView中,选择要移动的组件(连续选择可以按shift,间隔着选择可以按ctrl)
 
3.批量复制/删除组件
方法参考"批量移动组件"   复制:ctrl+c, 删除:delete
 
4.设置字体背景透明
选择要设置的组件,将Transparent属性设置为:True
 
5.运行查询操作以后,窗口有信息残留
解决办法参考这段代码:(FrmQuery是窗体的名称,依据实际情况改变即可)
procedure TFrmMain.SpeedButton4Click(Sender: TObject);
begin
FrmQuery:=TFrmQuery.Create(Self);
try
   FrmQuery.ShowModal;
finally
    FrmQuery.Free;
end;
end;
 
6.添加和修改信息时无法输入完整字句
如:在姓名后的空白框中想输入4个字的名字,却发现只能输2个或3个字,解决方法是:
打开数据库文件,找到存放信息的表,然后右击选择:设计视图,在"字段大小"那里调整数值大小(一个汉字占2的大小,10个就占20个,依次类推...)
  
 
7.去掉恼人的数据库登录对话框
将DMCu中各个ADOConndition组件的LoginPrompt属性设置为false即可
 
8.如何将中文数据库做成Rave报表
建立报表数据库连接的过程请看D:\Delphi设计\Delphi书籍\Delphi应用系统开发-蒋丽华-电子教案\第
数据库连接建立好以后,会提示错误(大概意思是**已存在),那是因为Rave5不支持中文数据库,我们可以按以下步骤解决:

先选择Data View Dictionary下的那个分支
然后在Name那个框中将DataView1 改成任意英文名
改好以后再右击刚改名的那个数据库,选择”Refresh”
然后在Name中修改成任意英文,同时FieldName也改成数据表的对应项的名字
然后继续按”Refresh”,重复上一步骤,直到你所想打印的数据项全部添加完毕.

 
9.如果你觉得Rave设计报表时,数据项的字太大,可以按以下步骤修改
  
将”Font”里的属性设置好就可以了.
 
10. Rave打印预览最大化
将Rave中的RvSystem那个组件的属性设置成wsMaximized
并将的Engine属性与RvSystem组件相关联
 
11.关于彩色DBGrid的制作
双击DBGrid的属性(如图),添加代码:
procedure TFrmCourseSup.DBGrid1DrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
begin
//隔行改变网格背景色:
 if DMCu.ADOTalCourse.RecNo mod 2 = 0 then
    (Sender as TDBGrid).Canvas.Brush.Color := clInfoBk //定义背景颜色(米白色)
 else
    (Sender as TDBGrid).Canvas.Brush.Color := clskyblue; //定义背景颜色(淡蓝色)
//定义网格线的颜色:
    DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
 with (Sender as TDBGrid).Canvas do //画 cell 的边框
 begin
    Pen.Color := $00ff0000; //定义画笔颜色(蓝色)
    MoveTo(Rect.Left, Rect.Bottom); //画笔定位
    LineTo(Rect.Right, Rect.Bottom); //画蓝色的横线
    Pen.Color := $00ff0000; //定义画笔颜色(蓝色)
    MoveTo(Rect.Right, Rect.Top); //画笔定位
    LineTo(Rect.Right, Rect.Bottom); //画蓝色的竖线
 end;
end;
(注意:红色的字段中DMCu.ADOTalCourseDBGrid1分别是DBGrid组件”DataSet”和”Name”对应的属性)
  
 
12.关于变色字体的制作
一个Label一个Timer组件即可
 
procedure TForm1.Timer1Timer(Sender: TObject);
Var a,b:integer;
begin
     label1.Font.Color:=RGB(0,Random(a),Random(b)); //动态显示信息
end;
红色字体部分可以改成任意数字,但是必须保留一个Random( )才行,不然字体颜色不会变换
×××部分请注意修改,保留哪个Random( ),就声明哪个字母
procedure TForm1.FormHide(Sender: TObject);
begin
Timer1.Enabled:=false;
end;
粉红字体部分请改成相应的Timer组件名称
procedure TForm1.FormShow(Sender: TObject);
begin
Timer1.Enabled:=True;
end;
 
end.


13.更换程序背景
一个Image一个SpeedButton一个OpenPictureDialog组件即可
 
procedure TForm1.SpeedButton1Click (Sender: TObject);
var
 C_Path:string;
begin
   C_Path:=GetCurrentDir;
   if OpenPictureDialog1.Execute then
     if Length(OpenPictureDialog1.FileName)>0 then
       begin
         Image1.Picture:=nil;    //注意替换粉红色组件的名称
         Image1.Hide;
         Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
         Image1.Refresh;
         Image1.Show;
         SetCurrentDir(C_Path);
       end;
end;
 
14.数据表相关操作
1.调整数据表中各项的位置,需要到数据库中移动各项
2.如果要减少数据表中显示的项目,则在Table组件中,右击选择 ,然后选 ,在这里删除不想显示的数据项即可
15.主窗体和子窗体相关
如果嫌主窗体的窗口太大可以在主窗体的Width 和Higth中调整大小
子窗体除了FormStyle要设置成fsMDIChild外,WindowState要设置成wsMax,这样子窗体就会最大化显示
在主窗体中要调出子窗体,菜单按钮语句应该写成FrmRegisterMember:=TFrmRegisterMember.create(self);(红色字体是窗体名字)
子窗体中关闭语句(OnClose)应该写成
procedure TFrmRegisterMember.FormClose(Sender: TObject;
 var Action: TCloseAction);
begin
Action:=cafree; (不要写成Close,不然关闭子窗体时会显示堆栈溢出的错误信息)
end;
16.其他
BDE数据库的主键不要随意设,有的时候搜索数据库会搜到重复的主键信息,系统就会报错,这时去数据库里把那个主键*去掉就行了
另外有时候出现invalid use of keyword的信息不一定就是设置了重复的主键,查查Query组件的SQL语句部分,SQL语句错误有时候也会这样的
在书写SQL语句时别小看空格的作用,如:
s:='select * from member';
s:=s+' where 会员编号='+MemberId.text;
where前面应该有个空格,没有的话就变成
s:=’ select * from memberwhere会员编号=**’很明显member和where叠在一起就不正确了