Форум: "Основная";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];
ВнизКак добавить к TPanel свойства OnKeyPress, OnKeyUp, OnKeyDown ? Найти похожие ветки
← →
Вин2 (2005-06-13 01:47) [0]У панели есть TabStop, и значит можно перевести на неё фокус. А как отлавливать нажатия клавиш ? А то без этого смысл теряется.
← →
iskatel © (2005-06-13 03:05) [1]отлавливай их для формы, и если координаты мыши внутри панели обрабатывайю...
← →
jack128 © (2005-06-13 03:25) [2]Вин2 (13.06.05 1:47)
отлавливай их для формы, и если координаты мыши внутри панели обрабатывайю
а какое отнашение имееют события OnKeyXXX к мыши??
по сабжу:TMyPanel = class(TPanel)
published
property OnKeyPress;
property OnKeyDown;
property OnKeyUp;
end;
и создовай панель класса TMyPanel, а не панель.
Или можно сделать такtype
TPanelCrack = class(TPanel);
.....
TPanelCrack(RealPanel).OnKeyPress := PanelKeyPressHandler;
← →
iskatel © (2005-06-13 03:27) [3]нда, сплю )))
ну тогда поправка "если фокус на панели"
← →
jack128 © (2005-06-13 03:47) [4]iskatel © (13.06.05 3:27) [3]
ну тогда поправка "если фокус на панели"
угу. И если KeyPreview выставлено в True?
← →
Вин2 (2005-06-13 06:24) [5]
> и создовай панель класса TMyPanel, а не панель.
А как её создать ? Это нужно новый компонент что ли написать ?
← →
jack128 © (2005-06-13 16:49) [6]Вин2 (13.06.05 6:24) [5]
А как её создать ? Это нужно новый компонент что ли написать ?
вообще то весь код нового компонента я тебе уже дал, осталось только инсталировать его.. Если же хочешь обойтись без инсталяции компонента, смотри мой второй вариант...
← →
s11 (2005-06-13 20:09) [7]to jack128:
а "второй вариант" можно поподробнее?
type
TPanelCrack = class(TPanel);
.....
TPanelCrack(RealPanel).OnKeyPress := PanelKeyPressHandler;
Что такое RealPanel?
Вместо ..... что писать? Вот это:
published
property OnKeyPress;
property OnKeyDown;
property OnKeyUp;
?
Но это тогда будет то же самое, что и в варианте 1?
← →
Shuric © (2005-06-13 20:18) [8]Зачем так сложно :) В обработчике сообщения, если HWND панели - проверяем L, W параметры.
← →
jack128 © (2005-06-13 21:15) [9]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure Panel1KeyPress(Sender: TObject; var Key: Char);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
type
TPanelCrack = class(TPanel);
procedure TForm1.FormCreate(Sender: TObject);
begin
TPanelCrack(Panel1).OnKeyPress := Panel1KeyPress;
end;
procedure TForm1.Panel1KeyPress(Sender: TObject; var Key: Char);
begin
ShowMessage(Key);
end;
end.
← →
ЮЮ © (2005-06-14 03:16) [10]>У панели есть TabStop, и значит можно перевести на неё фокус.
Фокус ввода на панель? Полагаешь, это возможно? Можно передать фокус компоненту ввода на панели!!! Панель просто выступает элементом группировки.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.029 c