procedure Tfr_priceNew.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure myonkeydown(Sender: TObject; var Key: Word); begin if key=13 then showmessage('adf'); end; begin edxh_code.OnKeyDown:=myonkeydown; end; 帮我看看这为什么不行
把成定义成FTfr_priceNew的类函数不就可以了? 在Tfr_priceNew.的Private域增加一个 Tfr_priceNew = class(TForm) ... private procedure myonkeydown(Sender: TObject; var Key: Word); ... end;实现代码写: procedure Tfr_priceNew.myonkeydown(Sender: TObject; var Key: Word); begin ... end;
帮我看看这个执行结果时全部的tedit onkeydown事件当中showmessage出来8了 不知道为什么,帮忙看看 private bathi:integer; bathtedit:array of Tedit; procedure Tfr_priceNew.zoneArray; begin setlength(bathtedit,9); bathtedit[0]:=edxh_code; bathtedit[1]:=edchname; bathtedit[2]:=edenname; bathtedit[3]:=edspec; bathtedit[4]:=edunit; bathtedit[5]:=edmnf; bathtedit[6]:=edtrd_price; bathtedit[7]:=edprice; bathtedit[8]:=edexctime; end;procedure Tfr_priceNew.BathKeydownEvent(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key=vk_return then begin showmessage(inttostr(bathi)); end; end;procedure Tfr_priceNew.FormCreate(Sender: TObject); var i:integer; begin zoneArray; bathi:=0; while bathi<high(bathtedit) do begin showmessage(inttostr(bathi)); BathTedit[bathi].OnKeyDown:=BathKeydownEvent; bathi:=bathi+1; end; end;
edit1.onkeydown:= 自定义的事件2;
begin
end;
...edit1.OnKeyDown := TEditOnKeyDown;
edit1.OnClick := TEditOnClick;
procedure TForm1.FormCreate(Sender: TObject);
begin
edit1.OnClick:=edit2.OnClick;
edit1.OnKeyDown:=edit2.OnKeyDown;
end;
procedure EditOnKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);edit1.OnClick := EditOnClick;
edit1.onkeydown := EditOnKeyDown;
procedure edit1Click(sender:TObject);
procedure edit1keydown(sender:TObject);
然后把这两个函数实现,
在窗体显示事件中加入下面代码:
edit1.onclick:=edit1click;
edit1.onkeydown:=edit1keydown;
Shift: TShiftState);
procedure myonkeydown(Sender: TObject; var Key: Word);
begin
if key=13 then
showmessage('adf');
end;
begin
edxh_code.OnKeyDown:=myonkeydown;
end;
帮我看看这为什么不行
类过程在实际调用的过程当中会先传入对象的self指针,跟静态过程是不同的。
在Tfr_priceNew.的Private域增加一个
Tfr_priceNew = class(TForm)
...
private
procedure myonkeydown(Sender: TObject; var Key: Word);
...
end;实现代码写:
procedure Tfr_priceNew.myonkeydown(Sender: TObject; var Key: Word);
begin
...
end;
不知道为什么,帮忙看看
private
bathi:integer;
bathtedit:array of Tedit;
procedure Tfr_priceNew.zoneArray;
begin
setlength(bathtedit,9);
bathtedit[0]:=edxh_code; bathtedit[1]:=edchname;
bathtedit[2]:=edenname; bathtedit[3]:=edspec;
bathtedit[4]:=edunit; bathtedit[5]:=edmnf;
bathtedit[6]:=edtrd_price; bathtedit[7]:=edprice;
bathtedit[8]:=edexctime;
end;procedure Tfr_priceNew.BathKeydownEvent(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if key=vk_return then begin
showmessage(inttostr(bathi));
end;
end;procedure Tfr_priceNew.FormCreate(Sender: TObject);
var i:integer;
begin
zoneArray;
bathi:=0;
while bathi<high(bathtedit) do begin
showmessage(inttostr(bathi));
BathTedit[bathi].OnKeyDown:=BathKeydownEvent;
bathi:=bathi+1;
end;
end;