Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 08.10.2010, 18:35
Аватар для Sky.NET
Sky.NET Sky.NET вне форума
Прохожий
 
Регистрация: 22.09.2010
Сообщения: 49
Версия Delphi: XE
Репутация: 12
По умолчанию

Проверь, правильно ли ты всё написал.

Вот я сделал сейчас так:
На объект 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  
Старый 08.10.2010, 18:39
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию

Да я понял из-за чего не верность, это из-за e1,e2 без них всё работает, может тут кто-нибудь поможет мне, как сделать что бы в цикле добавились едиты. То есть edit1.text, edit2.text всё в цикле должно быть.
Ответить с цитированием
  #18  
Старый 08.10.2010, 18:46
Аватар для Sky.NET
Sky.NET Sky.NET вне форума
Прохожий
 
Регистрация: 22.09.2010
Сообщения: 49
Версия Delphi: XE
Репутация: 12
По умолчанию

А можно по конкретней, что именно ты хочешь?
__________________
IDE := Embarcadero.RADStudio.XE.Architect
// Успешность метода научного тыка обратно пропорциональна извилистости головного мозга на кривизну рук ©
Ответить с цитированием
  #19  
Старый 08.10.2010, 18:58
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию

Ну у меня есть 8 едитов и 8 лэйбл едитов. В едитах пользователь пишет саму клавишу, например 1. В лэйбл едит какая строка добавляется в рич едит. Дак вот раз клавиш 8, нужно сделать цикл. Я конечно могу написать вручную, но если их будет 80? Дак вот и нужно каждый edit1.text и Labeletedit1.text и т.д. проверить на нажатие клавиши, т.е. если нажата клавиша 1, и прога проверяет:
если edit1.text = '1' то пишет labelededit1.text, если не написана в едите1.текст единицы, а написана другая клавиша, то проверяет второй едит (ну хотя что я рассказываю, все знают как циклы устроены). У меня всегда прокатывало через финдкомпанент, больше низнаю способов занести в цикл едиты, но в онкейдаун не работает, есть ещё способ?
Ответить с цитированием
  #20  
Старый 08.10.2010, 21:37
Аватар для Sky.NET
Sky.NET Sky.NET вне форума
Прохожий
 
Регистрация: 22.09.2010
Сообщения: 49
Версия Delphi: XE
Репутация: 12
По умолчанию

Если я тебя правильно понял, то тебе нужно чтобы при нажатии горячей клавиши, если присутствует она в одном из 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  
Старый 08.10.2010, 22:56
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию

Всё равно нет эффекта..
Ответить с цитированием
  #22  
Старый 09.10.2010, 09:04
Аватар для Sky.NET
Sky.NET Sky.NET вне форума
Прохожий
 
Регистрация: 22.09.2010
Сообщения: 49
Версия Delphi: XE
Репутация: 12
По умолчанию

Как никакого эффекта?!
Отлично всё работает:
__________________
IDE := Embarcadero.RADStudio.XE.Architect
// Успешность метода научного тыка обратно пропорциональна извилистости головного мозга на кривизну рук ©
Ответить с цитированием
  #23  
Старый 09.10.2010, 15:53
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию

Блин, я понял ошибку, у меня эти едиты стоят на 12 форме, а не на 1ой. Пытался сделать так:
Код:
 if chr(Key) = TEdit(FindComponent('form12.'+'Edit' + IntToStr(i))).Text then
        script.Lines.Add(TLabeledEdit(FindComponent('form12.'+'LabeledEdit' + IntToStr(i))).Text);
Нет эффекта, может надо как-нибудь по другому?
Ответить с цитированием
  #24  
Старый 09.10.2010, 18:36
Аватар для Sky.NET
Sky.NET Sky.NET вне форума
Прохожий
 
Регистрация: 22.09.2010
Сообщения: 49
Версия Delphi: XE
Репутация: 12
По умолчанию

Ты не правильно делаешь. Нужно так:
Код:
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
// Успешность метода научного тыка обратно пропорциональна извилистости головного мозга на кривизну рук ©
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:28.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter