Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];

Вниз

OnKeyUP -события   Найти похожие ветки 

 
KIE   (2003-04-16 14:21) [0]

Возникла одна проблемма:

Есть несколько форм , у которых значение KeyPreview установлено в TRUE. В одной форме при нажатии клавиши Enter должно происходить её закрытие и открытие второй формы - с этим все нормально, НО, когда открывается вторая форма, то код нажатой клавиши передается ей. Вроде все путем, так и должно, но есть одна трабла - за клавишей Enter во второй форме у меня забито совсем бругое действие и оно соответственно срабатывает автоматически после открытия формы второй формы. МНЕ ТАК НЕ НАДО.
Мне надо так, в первой Enter нажали она закрылась и открылась другая форма (вторая). Если во второй нажали Enter то выполнилось то, что обычно выполняется автоматически после открытия данной формы. Пробовал по закрытию формы обнулять параметр т.е.
Мне сказали что надо Key приравнять к нулю, ну .... вроде что-то, осталась другая проблемма.
Если есть форма в которой KeyPreview = FALSE и на ней есть кнопка, нажимаем на ней (ч/з клаву по Enter-у) тогода в открывшуюся форму, в которй KeyPreview = TRUE тоже передается значение клавиши, и соответственно срабаитывает то что за ней закреплено в обработчике, а мне опять так не надо!
Как сделать так, что бы не передовались коды клавишь от формы в форму (в от обработчика в обработчик)??????


 
Shirson   (2003-04-16 16:01) [1]

Если ты работаешь именно с Enter, то можно попробовать такой вариант:
У всех форм KeyPreview в FALSE :)
На каждую форму ложишь кнопку. Обычную. Default у кнопки ставишь в true, TabStop в False. Кнопку убираешь за границы формы.
На обработчик этой кнопки вешаешь свой код.
Усё.
Попробуй, может поможет.


 
KIE   (2003-04-16 21:15) [2]

В том то и проблемма, что не только с Enter-ом работаю, а ещё есть куча кнопок. И вот еще одна проблемма тогда сразу может возникнуть - алгоритм и код программы ГИГАНСКО БОЛЬШОЙ. Пусть писал его я, и в нем разбираюсь - исправлять придется очень много, естьвероятность появления подводного камня (ошибки), которую выцепить потом будет сложно.

Может проще как-то можно?


 
default   (2003-04-16 21:59) [3]

unit Unit1;

interface

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

type
TForm1 = class(TForm)
procedure FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin

Caption := Name + " : " + IntToStr(Key);
Hide;
Form2.Show

end;

end.

unit Unit2;

interface

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

type
TForm2 = class(TForm)
procedure FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin

Caption := Name + " : " + IntToStr(Key);
Form1.Show;
Hide

end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin

Application.Terminate

end;

end.

Не понимаю почему "НО, когда открывается вторая форма, то код нажатой клавиши передается ей." ?
Ничего не должно передаваться...


 
Song   (2003-04-17 10:07) [4]

Key:=0



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
3-91227
off
2003-04-08 12:52
2003.04.28
Количество пользователей и InterBase?


1-91395
Гость
2003-04-16 15:30
2003.04.28
Программное нажатие Print Screen


3-91153
Askik
2003-04-09 11:59
2003.04.28
Как отлавливать в чем ошибка неудачного подключения к серверу?


3-91215
Эдуард
2003-04-10 12:13
2003.04.28
UDF - ФУНКЦИЯ


14-91528
passm
2003-04-10 17:07
2003.04.28
Windows XP & LPT1 привелегии пользователей ??





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский