Borland 基础与应用开发课程认证试题整理集三_Delphi_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Delphi > Borland 基础与应用开发课程认证试题整理集三

Borland 基础与应用开发课程认证试题整理集三

 2011/7/26 8:00:19    程序员俱乐部  我要评论(0)
  • 摘要:试题61下列代码执行后,其正确的输出结果序列为:[考题]typeTA=classprocedureOne;virtual;procedureTwo;end;TAA=class(TA)procedureOne;override;procedureTwo;end;procedureTA.One;beginShowMessage('基类One');end;procedureTA.Two;beginShowMessage('基类Two');end;procedureTAA.One
  • 标签:应用 开发 Borland 应用开发
试题61     下列代码执行后,其正确的输出结果序列为:[考题]
    type
    TA = class
      procedure One; virtual;
      procedure Two;
    end;
    TAA = class(TA)
      procedure One; override;
      procedure Two;
    end;
    procedure TA.One;
    begin
      ShowMessage('
基类One');
    end;
    procedure TA.Two;
    begin
      ShowMessage('
基类Two');
    end;
    procedure TAA.One;
    begin
      ShowMessage('
派生类One');
    end;
    procedure TAA.Two;
    begin
      ShowMessage('
派生类Two');
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      fa: TA;
      ca: TAA;
    begin
      Memo1.Clear;
      fa := TA.Create;
      ca := TAA.Create;
      fa.One;
      ca.One;
      fa.Free;
      ca.Free;
      fa := TAA.Create;
      fa.One;         //
重点考这里
      fa.Two;
      fa.Free;
    end;

试题62     三大数据模块和公司(Corba:OMG组织;
    DCOM
MS微软公司,RMIRemote Mothod Invocation):SUN公司
试题63     试题:exception主体结构
    Exception = class(TObject)
    private
        FMessage: string;
    public
        constructor Create(const Msg: string);
          property Message: string read FMessage write FMessage;
    end;
试题64     销毁一个窗口的事件发生的顺序OnCloseQuery   OnClose   OnDestroy
试题65     创建一个窗口的事件发生的顺序OnCreate OnShow OnActivate OnResize OnPaint
   
按键发生的系列事件顺序如下:OnKeyDown OnKeyPress OnKeyUp
   
鼠标单击的时间顺序onMouseDown OnClick OnMouseUp
   
双击鼠标 OnMouseDown OnClick OnMouseUp OnDblClick OnMouseDown OnMouseUp
   
注意:OnEnterOnExit事件 如果没有焦点则在单/双击多发生一个事件OnEnter
试题66     Polygon(const Points:array of TPoint);     //封闭图形,用当前的画刷填充,边框用Pen
      PolyLine(const Points:array of TPoint); //
画多边形,用当前的Pen
试题67     ArcEllipseLineToMoveToPie, Rectangle方法的使用以及参数
试题68     类层次结构图,Tobject 开始的整个VCL类图,有考类之间的继承关系
    TObject->TPersistent->TComponent->TControl->{TGraphicControl/TWinControl}
    TObject->Exception->
    TObject->TInterfaceObject
试题69     TWinControl即窗口控件的三大特征:句柄、焦点、部分可以为父
    TGraphicControl
即图形控件的三大特征:无句柄、无焦点,全部不可以为父
试题70     TControl类中,控件为了显示出来要指定父parent,但是为父的一定是TwinControl 窗口控件
    Enabled   visible parent  
属性进来了
试题71     控件关系Tcontrol->TgraphicControl->Speedbutton
    Tbutton->BitBtn
   
因为没有多继承,所以先确定一个主类加以继承,然后把另一个类作为一个属性
试题72     Sizeof(self)   //4
        Sizeof(sender) //4
   
类的函数 instancesize(real size) 返回实例空间
试题73     祖先类的选择原则:
     
非可视组件最好的基类:TComponent
     
作图形控件最好的基类:TgraphicControl
     
作窗口控件最好的基类:TcustomControl,因为它引入了Canvas属性
     
组件命名问题:在组件名称之前加一些个性化东西如TLSLPerson
试题74     procedure Register;
    begin
      RegisterComponents('Wujispace', [TLSLPerson]);
    end;
    Register
的大小写不能改变,参数含义:(组件面板页名称,组件类名字-〉开放数组)
试题75     在设计组件时候,属性如果为字符串则不能有缺省值 即不能使用 default
试题76     为组件建立位图图标
     
默认使用父类图标,父类没有则使用缺省的Delphi位图
     
Image Editor建立DCR文件,并在其中建立24*24位图,保存时候位图名应与
   
组件类名完全相同并大写,DCR名字同组件包名相同这时候在包文件中编写{$R *.dcr}
     
如果dcr文件不同于组件包名的话,需要在包文件中指定{$R 文件所在路径}
     
注意:左下角的颜色决定了透明色。这个*号表示:名字相同的情况下缺省。
试题77     定义定制的事件
    1
.通过添加事件属性在发布部分建立事件句柄
    property OnPersonClick:TnotifyEvent read FpersonClick write FpersonClick;
    2
.在保护部分添加事件调度程序
    procedure PersonClick;dynamic;
    3
.在私有部分定义消息处理过程,访问调度程序
    FOnPersonClick:TnotifyEvent;
    procedure WMLButtonClick(var Msg:TWMMouse);message WM_LBUTTONDOWN;
试题78     属性中的default作用:属性的值如果在设计器改变且不同于default的值则该属性要保存
   
dfm文件中,如果相同则不保存。如果去掉default则属性都会保存在dfm文件中。
   
如果保留default部分,删除create中的属性赋值,结果同上,这个来自Tpersistent.
   
注意:有没有default都不会对属性初始化,初始化只在构造方法中。如果构造方法中
   
没有对属性初始化则所有属性初始值为0或者空。
试题79     组件拖放到窗体上由IDE自动实现组件的OwnerParent的设置
   
创建组件对象的时候指定Owner需要注意:Owner必须比被拥有者存活的时间长
试题80     测试组件对象,注意:1. 事件的赋值和处理方式
    2.
顺序 * 创建组件对象     * 测试组件对象 *释放对象
试题81     异常处理注意:中四个关键字和两套结构[异常共2]
    try        
决定一个代码保护块的起始
    except
有异常才执行
    finally
有没有异常都执行
    raise  
抛出一个异常
      1
)如何处理在程序中出现的异常
      2
)当程序中出现错误时候,如何引发异常 raise 异常实例初始化
      3
异常处理它处理的是异常而不是错误,其实错误还没有发生
      4
)多个异常如何处理
试题82     要想IDE环境直接显示异常消息对话框,而不是进入异常调试状态请在
    Tools
中的Debugger Options中的Language Exceptions页中
   
不勾选 Stop On Delphi Exception
试题83     分析下面的代码中调用了那个异常处理
    try
      i := StrToInt('Sam');
      ShowMessage(IntToStr(i));
    except
      on A: EDatabaseError do   ShowMessage(A.message);
      on B: EDivByZero do     ShowMessage(B.Message);
      on C: Exception do     ShowMessage('Exception: ' + C.Message);
      on D: EConvertError do   ShowMessage('EConvertError: ' + D.Message);
    end;
   
只执行了:On C:Exception do 这一条,实际上应该由On D: 来处理的!
试题84     异常机制做了这样两件奇妙的事
   
1)错误消息自动包含在异常类的message属性中出现;
   
2)异常帮助你避免发生错误之后意外地执行任何敏感的代码。
试题85     自定义异常类,为创建自己的异常,需要声明一个异常类:
    type
      ESillySpellingError = class(Exception);

试题86     异常处理完后,还可以在把这个异常继续抛出
   
此时就没有必要再实例化和初始化一个异常对象,直接使用 Raise 即可。
   
因为此时异常处理中已经知道这个异常是属于哪个异常类了。
试题87     如何使下面代码中光标在处理完计算后保持crDefault,可以使用处理异常保护
    try
      try
        for I := 1000 downto 0 do
          J := J + J div I;
        MessageDlg('Total: ' + IntToStr(J), mtInformation, [mbOK], 0);
      finally
        Screen.Cursor := crDefault;
      end;
    except
      on E: EDivByZero do ShowMessage('Error in Algorithm');
    end;

试题88     包是被Delphi
发表评论
用户名: 匿名