1.对付右键:设一个空字符的menu1,让edit1的popupmenu=menu1
2.对付ctrl+v:
procedure TForm1.myKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
(Sender as Tedit).readonly:=true;
if (key=86) and (ssCtrl in Shift) then exit;
if ((key>=48) and (key<=57)) then
(Sender as Tedit).readonly:=false;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
edit1.OnKeyDown:=myKeyDown;
edit2.OnKeyDown:=myKeyDown;
edit3.OnKeyDown:=myKeyDown;
end;
楼上的,这个方法我知道。。。
我只是想在onkeydown里面写
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if not ((key<=$39) and (key>=$30)) and not ((key<=$69) and (key>=$60)) then
。。。。这里应该写什么呢?
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
if (Sender as TEdit).Text='' then exit;
try
StrToFloat((Sender as TEdit).Text);
except
(Sender as TEdit).Text:=Copy((Sender as TEdit).Text,1,
Length((Sender as TEdit).Text)-1);
(Sender as TEdit).SelStart:=Length((Sender as TEdit).Text);
end;
end;