|
#16
|
||||
|
||||
Проверь, правильно ли ты всё написал.
Вот я сделал сейчас так: На объект Edit2 повесил событие. Запустил. Ввёл D, нажал (Alt+D). Всё работает. Код:
procedure TForm2.Edit2KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if ssAlt in Shift then if chr(Key) = Edit2.Text then ShowMessage('ОК'); end; Кстати, в свойствах Edit поставь CharCase на ecUpperCase, т.к. с маленькими буквами не работает =) IDE := Embarcadero.RADStudio.XE.Architect // Успешность метода научного тыка обратно пропорциональна извилистости головного мозга на кривизну рук © Последний раз редактировалось Sky.NET, 08.10.2010 в 18:41. |
#17
|
|||
|
|||
Да я понял из-за чего не верность, это из-за e1,e2 без них всё работает, может тут кто-нибудь поможет мне, как сделать что бы в цикле добавились едиты. То есть edit1.text, edit2.text всё в цикле должно быть.
|
#18
|
||||
|
||||
А можно по конкретней, что именно ты хочешь?
IDE := Embarcadero.RADStudio.XE.Architect // Успешность метода научного тыка обратно пропорциональна извилистости головного мозга на кривизну рук © |
#19
|
|||
|
|||
Ну у меня есть 8 едитов и 8 лэйбл едитов. В едитах пользователь пишет саму клавишу, например 1. В лэйбл едит какая строка добавляется в рич едит. Дак вот раз клавиш 8, нужно сделать цикл. Я конечно могу написать вручную, но если их будет 80? Дак вот и нужно каждый edit1.text и Labeletedit1.text и т.д. проверить на нажатие клавиши, т.е. если нажата клавиша 1, и прога проверяет:
если edit1.text = '1' то пишет labelededit1.text, если не написана в едите1.текст единицы, а написана другая клавиша, то проверяет второй едит (ну хотя что я рассказываю, все знают как циклы устроены). У меня всегда прокатывало через финдкомпанент, больше низнаю способов занести в цикл едиты, но в онкейдаун не работает, есть ещё способ? |
#20
|
||||
|
||||
Если я тебя правильно понял, то тебе нужно чтобы при нажатии горячей клавиши, если присутствует она в одном из Edit'ов, то добавить текст из LableEdit'а токого же порядкового номера, что и Edit с этой клавишей?
Если да, то сделай так: Код:
procedure TForm2.Edit3KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var i: integer; begin if ssAlt in Shift then for i := 1 to 9 do if chr(Key) = TEdit(FindComponent('Edit' + IntToStr(i))).Text then Memo1.Lines.Add(TEdit(FindComponent('LEdit' + IntToStr(i))).Text); end; IDE := Embarcadero.RADStudio.XE.Architect // Успешность метода научного тыка обратно пропорциональна извилистости головного мозга на кривизну рук © Последний раз редактировалось Sky.NET, 08.10.2010 в 21:47. |
#21
|
|||
|
|||
Всё равно нет эффекта..
|
#22
|
||||
|
||||
IDE := Embarcadero.RADStudio.XE.Architect // Успешность метода научного тыка обратно пропорциональна извилистости головного мозга на кривизну рук © |
#23
|
|||
|
|||
Блин, я понял ошибку, у меня эти едиты стоят на 12 форме, а не на 1ой. Пытался сделать так:
Код:
if chr(Key) = TEdit(FindComponent('form12.'+'Edit' + IntToStr(i))).Text then script.Lines.Add(TLabeledEdit(FindComponent('form12.'+'LabeledEdit' + IntToStr(i))).Text); |
#24
|
||||
|
||||
Ты не правильно делаешь. Нужно так:
Код:
if chr(Key) = TEdit(form12.FindComponent('Edit' + IntToStr(i))).Text then script.Lines.Add(TLabeledEdit(form12.FindComponent('LabeledEdit' + IntToStr(i))).Text); IDE := Embarcadero.RADStudio.XE.Architect // Успешность метода научного тыка обратно пропорциональна извилистости головного мозга на кривизну рук © |