delphi程序光标问题(100分)

  • 主题发起人 主题发起人 zta
  • 开始时间 开始时间
Z

zta

Unregistered / Unconfirmed
GUEST, unregistred user!
在form上做两个edit控件,程序如下:
procedure Tform1.qr(messagetext: pchar);
begin
ret:=application.messagebox(messagetext,'确认',mb_yesno+MB_DEFBUTTON1+MB_ICONQUESTION);
end;

procedure TForm1.Edit1Exit(Sender: TObject);
begin
qr('l');
end;
运行后,当mouse点到edit1,再点到edit2时,form上无光标,why?
 
把你的代码多贴出一些
 
哈哈这100分给我吧我完全知道, 是这样的, 在你点edit2时先发生edit2的mousedown事件然后你写的edit1.onexit事件激发, 你的鼠标转而处理弹出框
这样注意, 你上次点击edit2的click事件只作了一半即mousedown,而还在等待
另一个mouseup的发生,所以这以后你的mouseclick,mousedown都无效了, 其实很
好办,你只要再放任一可视控件如button,在此控件上点击一下,完成一个完整的click事件,然后一切操作就正常了...

=============这是我的dfm文件,源代码与你相同================
object Form1: TForm1
Left = 192
Top = 107
Width = 544
Height = 375
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
object Edit1: TEdit
Left = 192
Top = 104
Width = 121
Height = 21
TabOrder = 0
Text = 'Edit1'
OnExit = Edit1Exit
end
object Button1: TButton
Left = 200
Top = 176
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 1
end
object Edit2: TEdit
Left = 336
Top = 184
Width = 121
Height = 21
TabOrder = 2
Text = 'Edit2'
end
end
 
我只想用程序解决这个问题,最好不要再增加控件。
 
咦!我试了一下,很正常啊!我用的是D4
 
代码如下:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
procedure qr(messagetext:pchar);
procedure Edit1Exit(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure Tform1.qr(messagetext: pchar);
var ret:longint;
begin
ret:=application.messagebox(messagetext,'确认',mb_yesno+MB_DEFBUTTON1+MB_ICONQUESTION);
end;
procedure TForm1.Edit1Exit(Sender: TObject);
begin
qr('l');
end;

end.
 
多人接受答案了。
 
后退
顶部