Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "Основна";
Поточний архів: 2002.01.08;
Завантажити: [xml.tar.bz2];

Вниз

Як змусити TEdit НЕ генерувати звуковий сигнал при включеному обработчике натискань клавіш. Знайти схожі гілки


voronkov   (2001-12-18 12:27) [0]

Втомив цей трабл і не знаю як боротися. У TEdit використовую обробник натискань клавіш OnKeyDown. Ловлю натискання клавіш типу Enter, Escape і інших. Після натискання таких клавіш звучить звуковий сигнал. Якщо стоїть звукова карта, то сигнал з набору звукової схеми, якщо не варто, то працює динамік комп'ютера. Користувачі виють, я сиджу з ними, вою теж. Лізти всередину комп'ютерів і відрубувати динаміки здається мені неспортивних. Як це затоптати?



Anatoly Podgoretsky   (2001-12-18 12:34) [1]

Key:=#0



Anatoly Podgoretsky   (2001-12-18 12:36) [2]

Извини ошибка, думал об OnKeyPress



Виктор Щербаков   (2001-12-18 12:42) [3]

А как быть с OnKeyDown? Недавно была такая же проблема.
Пришлось использовать RichEdit.



Владислав   (2001-12-18 12:58) [4]

Так какие проблемы?
Нужно добавить OnKeyPress и Key:=#0;



Teacher   (2001-12-18 13:02) [5]

Обрабатываю OnKeyUp, ничего не делаю кроме присвоения #0 при получении кодов, обрабатываемых в OnKeyDown.



Виктор Щербаков   (2001-12-18 13:04) [6]

to Владислав ©
З Хелп:
Keys that don"t correspond to an ASCII Char value (Shift or F1, for example) don"t generate an OnKeyPress event.



Владислав   (2001-12-18 13:06) [7]

> Віктор Щербаков © (18.12.01 13: 04)

Да, но они, слава богу, и не "пищат".



Виктор Щербаков   (2001-12-18 13:09) [8]

Попробуй Ctrl + S например :)



Владислав   (2001-12-18 13:19) [9]

> Віктор Щербаков © (18.12.01 13: 09)

Не "пищит", однако?

Еще что-нибудь придумаешь?

:)))



voronkov   (2001-12-18 13:19) [10]

Пробовал вставлять в OnKeyUp key := 0, проблема осталась. Ну елы-палы, что типа делать?



Dmitriy(new)   (2001-12-18 14:29) [11]

TMyEdit= class(TEdit)
...
procedure KeyPress(var Key: Char); override;
...
Кінець;

procedure TMyEdit.KeyPress(var Key: Char);
починати
case key of
#1..#12,#14..#26,#28..#255:;
else key:=#0;
Кінець;
Кінець;


и не "пищат".



cdaDmitriy   (2001-12-18 15:22) [12]

робота?



panov   (2001-12-18 15:26) [13]

Попробуй вот так:
procedure TfDocEdit.FormKeyPress(Sender: TObject; var Key: Char);
починати
if (Key = #27) then
починати
Key: = # 0;
if (fDocEdit.ActiveControl is TEdit) then
починати
TEdit(fDocEdit.ActiveControl).Text := vPrevValue;
TEdit(fDocEdit.ActiveControl).Modified := False;
end;
end;
if (Key = #13) then
починати
Key: = # 0;
Perform(WM_NEXTDLGCTL,0,0);
end;
end;



panov   (2001-12-18 15:27) [14]

И не забудь выставить
TfDocEdit.KeyPreview := True;



cdaDmitriy   (2001-12-18 15:32) [15]

>> panov ©
забыл KeyPreview:=true;
и вопрос что ты будешь делать если на форме /проекте 10 ..n TEdit ?

забыл ООП



voronkov   (2001-12-18 16:06) [16]

Чуваки, всем спасибо. Не пищит комбинация с
case key of
#13: begin
...
end;
else key:=#0;
Кінець;
в OnKeyPress, правда немного непривычно работать с этим событием, так как привык работать с константами типа VK_...
К сожалению я пишу программу с большим объемом ручного ввода и зачастую разные TEdit должны по разному реагировать на одни и теже клавиши, в противном случае можно пользоваться событиями формы. Так что ООП тут не спасает отца русской демократии.



panov   (2001-12-18 16:12) [17]

>cdaDmitriy © (18.12.01 15:32)
Каждому прописываешь имя этого обработчика.



cdaDmitriy   (2001-12-18 16:15) [18]

> panov © забыл ООП
делаешь новый компонент ( T..Edit ) один раз

procedure KeyPress(var Key: Char); override;

и его используешь



сторінки: 1 вся гілка

Форум: "Основна";
Поточний архів: 2002.01.08;
Завантажити: [xml.tar.bz2];

наверх









Пам'ять: 0.87 MB
Час: 0.05 c
1-22015
мисливець
2001-12-17 13:17
2002.01.08
Картинку на принтер


1-22235
DDDeN
2001-12-17 06:47
2002.01.08
заставка


3-21966
З.Г.
2001-12-03 12:42
2002.01.08
ЧОМУ ТО ПРОПАЛИ ВСІ МОЇ ПИТАННЯ. Придеться повторитися Як в поле здійснити пошук Типу: написано Стелі а мені треба знайти


14-22381
Фелікс
2001-11-08 20:41
2002.01.08
Що це було?


4-22499
YUS
2001-10-31 20:51
2002.01.08
FindWindow





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в'єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська