CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  语言基础/算法/系统设计

请教一个有关于自定义FORM的初级问题

楼主kaada(kaada)2005-06-02 14:57:23 在 Delphi / 语言基础/算法/系统设计 提问

我想用一张底图来替换DELPHI的MAINFORM,请问,  
  1、我关闭窗口可以调用form1.close方法,那最小化窗口要使用哪一种方法。  
  2、我因为使用底图,我想把原来的窗口不可视,透明化掉,要怎么做,  
  我使用的是DELPHI   7, 问题点数:80、回复次数:11Top

1 楼47522341(睡到8:30)回复于 2005-06-02 15:05:09 得分 50

没太弄懂楼主的意思;  
  透明化窗体可以通过如下设置实现:  
  1:修改窗体Alphablend属性值为true  
  2:修改AlphaBlendValue属性值;0为完全透明;255为不透明Top

2 楼kaada(kaada)回复于 2005-06-02 15:50:14 得分 0

我就是想不用DELPHI默认窗体做我的MAINFORM,我想自定义一张BMP的图做我的FORM界面,不要原来的标题,边框,不知道这样说可以否Top

3 楼Microsnow(冰火)回复于 2005-06-02 16:38:59 得分 10

当然可以,你可以在窗体上放一个Image,将BMP图片载入,让Image充满整个窗体,然后再将窗体的BorderStyle属性设成bsNone即可.Top

4 楼xixuemao(钱不是问题,问题是没钱)回复于 2005-06-02 16:44:03 得分 10

设置form的style属性(记不清了)Top

5 楼xixuemao(钱不是问题,问题是没钱)回复于 2005-06-02 16:47:05 得分 0

delphi里有个控件Application,可以控制最小化窗体。Top

6 楼csnight(午夜飞行)回复于 2005-06-02 17:00:01 得分 10

菜单项project-->options,里面设置工程主窗体Top

7 楼kaada(kaada)回复于 2005-06-02 19:35:17 得分 0

首先谢谢大家的帮助,各位我都会适当加分,如果分不足,我会增加管理分。  
  不好意思,原先没有说清楚,是我自已的失误,我想建立一个无标题FORM,把外框架隐藏掉,FORM1.BORDERSTYLE   :=   BSNONE,后来我在UNIT里加了一段代码,让窗口可以移动,  
      private  
          procedure   WmNCHitTest(var   Msg:   TWMNCHitTest);  
          message   WM_NCHITTEST;  
   
  procedure   TForm1.WmNCHitTest(var   Msg:   TWMNCHitTest);  
  begin  
        DefaultHandler(Msg);  
     if   Msg.Result   =   HTCLIENT   then  
            Msg.Result   :=   HTCAPTION;  
   
  end;  
  但这样的一个结果,就是,窗口是可以移动了,但是FORM内的其它事件,比如FORM1.Image3Click等其它事件不能被触发,都被拦截,请问现在要怎么办。  
  Top

8 楼47522341(睡到8:30)回复于 2005-06-03 08:11:17 得分 0

你现在重载了消息处理函数;但在结束后没将句柄交给父类窗体处理;  
  所以;等于屏蔽了所有其他的消息处理;  
  解决方式:   在消息处理函数最后加上一句inherited;   就可以了;  
  fx:  
  procedure   TForm1.WmNCHitTest(var   Msg:   TWMNCHitTest);  
  begin  
        DefaultHandler(Msg);     //这句好像作用不大  
     if   Msg.Result   =   HTCLIENT   then  
            Msg.Result   :=   HTCAPTION;  
        inherited;       //加上这句  
  end;  
  Top

9 楼47522341(睡到8:30)回复于 2005-06-03 08:14:07 得分 0

sorry;  
  上述代码不对;  
  没经过测试;我回头再看看Top

10 楼47522341(睡到8:30)回复于 2005-06-03 08:24:27 得分 0

procedure   FormMouseMove(Sender:   TObject;   Shift:   TShiftState;   X,Y:   Integer);  
   
  procedure   TForm1.FormMouseMove(Sender:   TObject;   Shift:   TShiftState;   X,   Y:   Integer);  
  begin  
  if   (ssLeft   in   Shift)   then   begin  
  ReleaseCapture;  
  SendMessage(Form1.Handle,WM_SYSCOMMAND,SC_MOVE+1,0);  
  end;  
  end;  
   
  上面这个测试通过;我会再试试看为什么第一个不行^_^  
  Top

11 楼kaada(kaada)回复于 2005-06-03 11:23:29 得分 0

呵呵,一大早上班就看到你的贴子,谢谢了。  
  是我自已也疏忽了,非常不好意思。  
  程序是正常通过,高兴。Top

相关问题

  • 怎样自定义form颜色呢?
  • 自定义 Form 设计中的参数传递问题
  • VFP中 如何在Form中创建自定义方法?
  • 有谁做过web form的用户自定义控件?
  • 如何在Form中响应自定义的Windows消息
  • 为什么我的自定义控件不能加入form?
  • 自定义控件的 事件问题(win form)
  • 自定义的类如何访问其他类(如FORM等)?
  • 如何让自定义的Form成为PageControl中页面
  • 求助。奇怪的自定义Form问题

关键词

  • 属性
  • delphi
  • 消息
  • 窗体
  • twmnchittest
  • wmnchittest
  • msg
  • 透明
  • 消息处理
  • tform

得分解答快速导航

  • 帖主:kaada
  • 47522341
  • Microsnow
  • xixuemao
  • csnight

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo