Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Наследник TStringGrid'a


неважно ©   (2006-06-12 17:04:00) 


procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 Windows.Beep(800,50);
end;

Пищит при нажатии.

Ладно,идем дальше...Делаем наследника от TStringGrid'a

TMyGrid = class (TStringGrid)
 procedure KeyDown(var Key: Word; Shift: TShiftState);override;
 ...
 end;
...
procedure TMyGrid.KeyDown(var Key: Word; Shift: TShiftState);
begin
 Windows.Beep(800,50);
 inherited;
end;

Пищит только на первой букве любой ячейки. Странно!!!
Вопрос : как ловить все нажатия клавиш в наследнике?


Leonid Troyanovsky   (2006-06-14 06:56:00) [1]


> неважно   (13.06.06 22:44) [7]

> > http://groups.google.com/group/fido7.ru.delphi/msg/b7f75355f95bbd2b
> Это я видел...даже пользуюсь иногда ;)


Чем-чем пользуешься?

--
Regards, LVT.


неважно   (2006-06-13 22:44:00) [2]

2 Leonid Troyanovsky ©
> http://groups.google.com/group/fido7.ru.delphi/msg/b7f75355f95bbd2b
Это я видел...даже пользуюсь иногда ;)

З.Ы. Ладно,спасибо и на этом.


Leonid Troyanovsky   (2006-06-13 19:00:00) [3]


> неважно   (12.06.06 22:48) [5]

> Может я что-то делаю не так???


Не очень понятно, что именно требуется, но, то,
что пищит лишь при первом нажатии вполне понятно,
бо, после оного фокус получает окно Editor, которое и
обрабатывает дальнейшие нажатия.

Т.е., если хочется больше звуков, то требуется заменить
editor на свой, с расширенной функциональностью. См., например,
http://groups.google.com/group/fido7.ru.delphi/msg/b7f75355f95bbd2b

--
Regards, LVT.


неважно   (2006-06-12 22:48:00) [4]

2 2 Юрий Зотов ©   (12.06.06 20:44) [2]
Проверил и в D7. Результат тот же :(

Может я что-то делаю не так???

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs,Grids;

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
 //
 TMyGrid = class(TStringGrid)
   procedure KeyDown(var Key: Word; Shift: TShiftState); override;
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 with TMyGrid.Create(Self) do
 begin
   Parent:=Self;
   Height:=300;
   Width:=500;
   Options:=Options+[goEditing];
 end;
end;

{ TMyGrid }

procedure TMyGrid.KeyDown(var Key: Word; Shift: TShiftState);
begin
 inherited;
 Windows.Beep(800,50);
end;

end.


неважно   (2006-06-12 22:01:00) [5]

2 Rial ©   (12.06.06 19:05) [1]
Не помогло.

2 Юрий Зотов ©   (12.06.06 20:44) [2]
>У меня оба грида работают одинаково.
Ну и что делать? Не работает,блин. Кстати,версия как раз 5


Rial   (2006-06-12 21:22:00) [6]


> Юрий Зотов ©   (12.06.06 20:44) [2]
>
> > Rial ©   (12.06.06 19:05) [1]
> У Вас какая версия Delphi?


Есть такая проблема...
D5.


> Проверил. У меня оба грида работают одинаково.

А я еще тупее поступил. Увидел то, что обычно сам не делаю,
проверил - работает. И всего то. Бесполезен - что ж, судьба такая.


Юрий Зотов   (2006-06-12 20:44:00) [7]

> Rial ©   (12.06.06 19:05) [1]
У Вас какая версия Delphi?
Впрочем, независимо от этого совет Ваш, извините, бесполезен.

> Наследник TStringGrid'a
Проверил. У меня оба грида работают одинаково.


Rial   (2006-06-12 19:05:00) [8]

inherited KeyDown(Key,Shift);


Наверх

Титульная страница Поиск, карта сайта Написать письмо