Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2011, 01:20   #1
Евгений1
 
Регистрация: 28.07.2010
Сообщений: 8
По умолчанию События в edit (Delphi)

Не получается решить задачу.
Есть две формы, на каждой из которых по Edit-у.
По событию onKeyPress в Edit1 первой формы, вызывается вторая форма методом ShowModal и текст набирается в Edit2 уже вызванной формы.
Проблема в том, что не отображается первый символ, т.е. если я набираю слово "Delphi" то в Edit2 набирается "elphi", а первый символ "D" не отображается.
Form2.Edit2:=Edit1 не помогает, перехват события формой тоже.
Необходимо, чтобы при нажатии клавиши, соответствующий символ отображался во втором edit-е.
Пожалуйста, подскажите как решить эту задачу.
Евгений1 вне форума Ответить с цитированием
Старый 08.03.2011, 01:29   #2
Volt
Форумчанин
 
Аватар для Volt
 
Регистрация: 07.12.2008
Сообщений: 244
По умолчанию

попробуйте использовать событие onChange у едитов в место onKeyPress .
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]
Volt вне форума Ответить с цитированием
Старый 08.03.2011, 01:53   #3
Kotlyar562
Пользователь
 
Аватар для Kotlyar562
 
Регистрация: 03.02.2010
Сообщений: 46
По умолчанию

Интересное задание - с одной стороны простое, а с другой попробуй сделать

Вот:
первый модуль
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  form2.Edit2.AutoSelect:=false;
  form2.Edit2.Text:=key;
  Form2.ShowModal;
end;
второй модуль
Код:
procedure TForm2.FormActivate(Sender: TObject);
begin
    Form2.Edit2.SelStart:=1;
end;
Kotlyar562 вне форума Ответить с цитированием
Старый 08.03.2011, 11:38   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А вот еще вариант:
Код:
procedure TForm1.Edit1Change(Sender: TObject);
begin
 with Form2 do begin Show; Edit2.Text:=Edit1.Text; edit2.SelStart:=Edit1.SelLength+1;end;
end;
Edit2 - на второй форме.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.03.2011, 18:03   #5
Евгений1
 
Регистрация: 28.07.2010
Сообщений: 8
По умолчанию

Месяц бьюсь над этой задачей, не могу осилить её.
Мозг кипит, ничего уже в голову не лезет. Может кто нибудь со стороны с "незамыленным" взглядом решит эту задачу.
Спасибо Kotlyar562-у и Stilet-у, думаю, что решение где-то рядом с их вариантами.
Но и в 1-м и 2-м вариантах получается такая картина:
По событиям открывается вторая форма, а введённого символа в edit2 нет, и только при попытке закрыть модальную форму (а уже к этому моменту виден символ в Edit1) символ из edit1 отображается в edit2.
Уже готов объявлять вознаграждение за решение этой задачи, просто нет сил и времени ещё месяц с ней биться.
Евгений1 вне форума Ответить с цитированием
Старый 08.03.2011, 20:06   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну коли форма модальная мой пример просто чуть поправить:
Код:
 with Form2 do begin Edit2.Text:=Edit1.Text; edit2.SelStart:=Edit1.SelLength+1; ShowModal;end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.03.2011, 20:23   #7
Евгений1
 
Регистрация: 28.07.2010
Сообщений: 8
По умолчанию

Результат тот же, по событию открывается вторая форма, но edit2 пустой и только при попытке закрыть форму в edit2 появляется символ т.е. форма закрывается со второго раза.
Евгений1 вне форума Ответить с цитированием
Старый 08.03.2011, 20:27   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Значит что-то еще ты накрутил, поскольку я пример проверял - работает так как тебе надо.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.03.2011, 21:34   #9
Евгений1
 
Регистрация: 28.07.2010
Сообщений: 8
По умолчанию

Действительно, создал новый проект с двумя формами, всё работает, а в старом нет, хотя всё сделал идентично.
Буду разбираться в чём дело.
Огромное спасибо за решённую задачу.
Евгений1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
События в idTCPServer и idTCPClient (Delphi) _PROGRAMM_ Помощь студентам 3 11.11.2010 19:35
События в WPF. Обращение к компонентам формы из события Casper-SC Общие вопросы .NET 3 25.07.2010 19:03
Delphi события кнопки Alexmur07 Помощь студентам 3 29.11.2009 11:16
События мыши в Delphi -COREY- Помощь студентам 0 15.11.2009 15:27
Код для события. Delphi 7. tlsol Компоненты Delphi 9 11.04.2008 15:02