Форум: "Начинающим";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];
ВнизEdit Найти похожие ветки
← →
Ivolg © (2006-06-30 16:22) [0]Я создаю Edit таким образом:
[CODE]
var
Edit:TEdit;
begin
Edit:=TEdit.Create(self);
Edit.Parent:=Form1;
Edit.Show;
[/CODE]
Как отловить событие OnKeyDown ?
← →
Loginov Dmitry © (2006-06-30 16:24) [1]
var
Edit:TEdit;
begin
Edit:=TEdit.Create(self);
Edit.Parent:=Form1;
//Edit.Show;
Edit.OnKeyDown := MyKeyDown;
← →
Ega23 © (2006-06-30 16:28) [2]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure MyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
With TEdit.Create(Self) do
begin
Parent:=Self;
SetBounds(100, 100, 100, 24);
OnKeyDown:=MyKeyDown;
end;
end;
procedure TForm1.MyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
ShowMessage("MyKeyDown");
end;
end.
← →
Ivolg © (2006-06-30 16:31) [3]Спасибо, разобрался )
← →
Ivolg © (2006-07-02 12:39) [4]Почему-то, когда я создаю второй Edit, то процедура MyKeyDown обрабатывается во втором Edit"е, а в первом - нет...
← →
PSPF2003 © (2006-07-02 12:42) [5]Напиши код
← →
PSPF2003 © (2006-07-02 12:51) [6]Напиши код как ты его создаеш
← →
Ivolg © (2006-07-02 12:55) [7]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure MyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Tab:TTabSheet;
implementation
{$R *.DFM}
procedure TForm1.MyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
ShowMessage("MyKeyDown");
end;
end.
procedure TForm1.Button1Click(Sender: TObject);
var
Edit:TEdit;
begin
Tab:=TTabSheet.Create(PageControl1);
Tab.PageControl:=PageControl1;
Edit:=TEdit.Create(Self);
edit.Parent:=PageControl1.Pages[PageControl1.PageCount-1];
edit.OnKeyDown:=MyKeyDown;
end;
end.
← →
PSPF2003 © (2006-07-02 13:03) [8]Я не понял а что у тебя неработает?
← →
Ivolg © (2006-07-02 13:11) [9]Хм, странно... Щяс проверил - работает, а недавно неработало... Значит баг где-то был...
← →
PSPF2003 © (2006-07-02 13:18) [10]Бывает у меня делфи переодически просится зарегистрироватся :)
← →
Ivolg © (2006-07-02 13:52) [11]На мамом-то деле бага небыло...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
PageControl1: TPageControl;
procedure Button1Click(Sender: TObject);
procedure MyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Tb2:TTabSheet;
Edit:TEdit;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit:=TEdit.Create(Self);
Tb2:=TTabSheet.Create(PageControl1);
Tb2.PageControl:=PageControl1;
edit.Parent:=PageControl1.Pages[PageControl1.PageCount-1];
edit.OnKeyDown:=MyKeyDown;
end;
procedure TForm1.MyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
caption:=edit.Text;
end;
end.
Когда создается 1-й Edit, то все нормально... Когда я создаю 2-й, то при написании текста на 1-ом Edit"e, текст берется из последнего созданного, т.е
из 2-го Edit"a...
← →
Ketmar © (2006-07-02 15:29) [12]вот же удивительно, да? переменную Edit перезаписали, а тупая Delphi и не догадалась, что надо использовать не новое значение, а то, которое было до присваивания. сносите вы эту Delphi, она ни на что не годна.
хинт: sender в обработчике для кого передают?
← →
Ivolg © (2006-07-02 15:41) [13]Я уже разобрался... Просто сделал массив TEdit"ов и все...
← →
Ketmar © (2006-07-02 16:26) [14]доблестные китайские комсомольцы пишут код, который уже написан...
← →
PSPF2003 © (2006-07-02 16:35) [15]
> доблестные китайские комсомольцы пишут код, который уже
> написан...
:))))
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.014 c