刚学DELPHI遇到的几个问题?问题1、已知:form1、mainmenu1
      设form1.borderstyle=bsdialog,form1.menu=mainmenu1
      运行时发现 窗体中无菜单栏,但设 form1.borderstyle=bssizeable
      菜单栏重现,如何才能既将窗体设为 bsdialog 又能使菜单栏可见呢?问题2、当使用 onmousemove 事件时,如何得到鼠标的x,y传入参数。(即鼠标的位
       置),VB在这方面比较直观。问题3、控件的很些属性在 object inspector 上找不到.如 opendialog 的 
       historylist属性。问题4、delphi 中的按钮不能使用Ico图标吗?

解决方案 »

  1.   

    1.BorderStyle=bsSizeable,BorderIcons属性下的biMinimize,biMaximize属性设为False
    2.onmousemove事件中本身就有X,Y参数,你仔细看看
    3.有此属性,只不过没有显示在object inspector上,在代码中写吧
    4.可以啊,form有个Icon属性
      

  2.   

    问题1、Windows就是这样设计的,你只能这样用。
    问题2、和VB一样直观,注意看,在MouseMove过程有2个参数(X,y)就是你要的。
    问题3、这也是故意设计的,object inspector的属性会自动保存,如果没必要,一般不会放那去,以为一个控件属性很多,为了方便使用和减小程序,能不放那就不放。
    问题4、能,但不是所有的按钮都能。bitbtn就能。
      

  3.   

    1、用这种边界风格就不可以再使用menu,windows就是这样子的
    2、你看这个:procedure TMainForm.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);这不是有X和Y嘛!
    3、有这个属性,但是Inspector里没有
    4、BitBtn和SpeedButton都有,Glyph
      

  4.   

    to miky
      1.  [Windows就是这样设计的,你只能这样用] 
          如果我既要 bsdialog风格,又想 mainmenu菜单栏控件可见,没有别的方法吗?
      2.  关于mousemove 事件的x,y参数的问题已解决.(正如你们所说,只要在object   
          inspector 对应的事件项双击就会弹出此事件的窗口.在vb中双击窗体本身就会弹出事 
          件栏,我弄混淆了)
      4.  bitbtn 是如何装入 Ico图的? 我启动 GLYPH 属性只能加载BMP图片(图片加载窗口
          只显示BMP图片)
      

  5.   

    搂主:
    1.BorderStyle=bsSizeable,BorderIcons属性下的biMinimize,biMaximize属性设为False
    不就是dialog风格吗,又有菜单栏,只不过用户能改变大小而已,要不然在FormResize事件里写代码,不让改变大小
    如果还不行,只有楼主重写TFORM类了
      

  6.   

    参照:窗体不能改变大小的代码:
    procedure TForm1.FormCanResize(Sender: TObject; var NewWidth,
      NewHeight: Integer; var Resize: Boolean);
    begin
      ReSize:=False;
    end;