一个关于窗体很奇怪的现象,我问了很多的人都不知道啊! (20分)

  • 主题发起人 主题发起人 子弹
  • 开始时间 开始时间

子弹

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序上有很多的Form.他们都是用showModal展现的。
可其中有一个窗体在显示的时候总是会闪一下,也就是会
先黑一下再显示出来,而其他的窗体却不会。真是很奇怪,
没有特殊的代码啊!数据库中也仅有几条记录用来测试。
OnShow里没有代码。
在OnCreate中的代码是这样的
procedure TFrmDwInfoEdit.FormCreate(Sender: TObject);
begin
if FrmDwInfo.ADOQuery1.Active then
Datasource1.dataset.edit;
SetFocusedControl(EditDWJC);
btnNew.Enabled := false;
bEdit := false;
bDataS := false;
bCreate := True;
end;
很简单的一段代码,怎么会这样呢?会不会是哪儿设置的不对!!!
哪位大虾能告诉我,这是为什么啊?
 
SetFocusedControl(EditDWJC);
 
把FormCreate中的代码全部注释掉,看运行结果,如果还闪的话,就检查Form的属性,
主要看以下Form.Visible 正常的话应该是False;
 
我把OnCreate中的代码注释了,问题依旧。
 
查一下调用这个窗体的写法,是不是有什么特殊的。
 
窗体上是不是有图像啊。
 
是不是你们使用的D6,而测试环境在2000或者XP下?并且你们设定了窗口的AlphaBlend?
如果是这样就会出现你说的情形!
 
To shenloqi:
我是用D6+win2000。
这个AlphaBlend属性的作用是你能告诉我吗?
 
设计时,在FORM1上点击右键,选择 View as Text 找到
object Form1: TForm1
Left = 192
Top = 107
Width = 696
Height = 480
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
end

将多余的属性删掉
 
AlphaBlend属性是设置窗口的透明度的,和AlphaBlendValue结合使用
AlphaBlend := True;
AlphaBlendValue := 100;
你的窗口就变成透明的了!:)
 
后退
顶部