1 / 1 / 1
Регистрация: 23.04.2013
Сообщений: 26
1

При нажатии клавиши enter не выводит результат в Tlistbox

28.12.2014, 19:52. Показов 1804. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В чем ошибка? При нажатии клавиши enter не выводит результат в Tlistbox... Может, что-то не прописал в событиях..
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.Edit1Change(Sender: TObject);
var i,n,ch:integer;
    s,buf:string;
    key: char;
begin
 s:=Edit1.Text;
 if (Key = #13) then
 begin
while s<>''do
begin
buf:='';
n:=pos(' ',s);
buf:=copy(s,1,n-1);
ch:=StrToInt(buf);
  if ch mod 2 = 0 then
  ListBox1.Items.Add(IntToStr(ch));
  delete(s,1,n);
end;
end;
end;
0
Лучшие ответы (1)
28.12.2014, 19:52
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.12.2014, 19:52
Ответы с готовыми решениями:

Активировать Button1 при нажатии клавиши Enter
Добрый вечер. Нужно чтоб при нажатии клавиши Enter, нажималась кнопка. Читал про Хоткеи, лазил в табах... Так и не нашел -_-

Запрограммировать перенос данных из поля Edit1 к Form1.Listbox1 при нажатии клавиши Enter
Запрограммировать перенос данных из поля Edit1 к Form1.Listbox1 при нажатии клавиши Enter. If key =#13 Then …

При нажатии на Enter в Edit1
Всем привет)) помогите пожалуйста с delphi. Напишите код программы в которой при нажатии клавиши Enter в Edit1 на экране выводиться...

13
 Аватар для XaKO
23 / 23 / 30
Регистрация: 23.10.2012
Сообщений: 344
28.12.2014, 19:54 2
событие OnKeyPress
0
1 / 1 / 1
Регистрация: 23.04.2013
Сообщений: 26
28.12.2014, 19:56  [ТС] 3
А что именно туда нужно прописать?
0
 Аватар для XaKO
23 / 23 / 30
Регистрация: 23.10.2012
Сообщений: 344
28.12.2014, 20:00 4
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
  i,n,ch:integer;
  s,buf:string;
begin
s:=Edit1.Text;
if (Key = #13) then
begin
while s<>''do
begin
buf:='';
n:=pos(' ',s);
buf:=copy(s,1,n-1);
ch:=StrToInt(buf);
  if ch mod 2 = 0 then
  ListBox1.Items.Add(IntToStr(ch));
  delete(s,1,n);
end;
end;
end;
а что ты хотел сделать?
1
1 / 1 / 1
Регистрация: 23.04.2013
Сообщений: 26
28.12.2014, 20:20  [ТС] 5
Я хочу ввести в tedit строку из произвольных десятичных чисел.
И вывести в tlistbox четные числа.

Добавлено через 14 минут
Не помогает.
0
 Аватар для XaKO
23 / 23 / 30
Регистрация: 23.10.2012
Сообщений: 344
28.12.2014, 20:34 6
по твоему алгоритму в конце строки Edit обязательно должен быть пробел
0
Почетный модератор
 Аватар для Puporev
64305 / 47602 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
28.12.2014, 20:38 7
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
var
  Form1: TForm1;
  s:string='';
implementation
 
{$R *.dfm}
 
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var i,j,n:integer;
    b:string;
begin
case key of
'0'..'9',#32:s:=s+key;
#8:;
#13:begin
    s:=' '+s;
    n:=length(s);
    i:=1;
    while i<=n do
    if(s[i] in ['0'..'9'])and(s[i-1]=' ') then
     begin
      b:='';
      j:=i;
      while(j<=n)and(s[j]<>' ') do
       begin
        b:=b+s[j];
        j:=j+1;
       end;
      if strtoint(b)mod 2=0 then ListBox1.Items.Add(b);
      i:=i+length(b);
     end
    else i:=i+1;
    end;
else key:=#0;
end;
 
 
end;
0
1 / 1 / 1
Регистрация: 23.04.2013
Сообщений: 26
28.12.2014, 20:40  [ТС] 8
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
  i,n,ch:integer;
  s,buf:string;
begin
s:=Edit1.Text +' ';
if (Key = #13) then
begin
while s<>''do
begin
buf:='';
n:=pos(' ',s);
buf:=copy(s,1,n-1);
ch:=StrToInt(buf);
  if ch mod 2 = 0 then
  ListBox1.Items.Add(IntToStr(ch));
  delete(s,1,n);
end;
end;
end;
0
Эксперт Pascal/Delphi
 Аватар для droider
4918 / 2786 / 855
Регистрация: 04.10.2012
Сообщений: 10,155
28.12.2014, 20:50 9
Цитата Сообщение от Nachinayushiy Посмотреть сообщение
Я хочу ввести в tedit строку из произвольных десятичных чисел.
И вывести в tlistbox четные числа.
я бы предложил обработчик OnKeyDown для TEdit и сделал так
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  lst:TStringList;
  i:integer;
begin
lst :=TStringList.Create;
lst.Delimiter :=' '; //разделитель - пробел
lst.DelimitedText :=Edit1.Text;  //разбиваем заданное множество чисел на отдельные числа
if Key = VK_RETURN then    //по нажатию клавиши Enter
for i := 0 to lst.Count-1 do //до конца массива полученных чисел
  begin
 if StrToInt(lst[i]) mod 2=0 then //если текущее число - четное,
 ListBox1.Items.Add(lst[i]); //то выводим его в список ListBox
  end;
  lst.Free;
end;
end.
1
1 / 1 / 1
Регистрация: 23.04.2013
Сообщений: 26
28.12.2014, 20:58  [ТС] 10
Все равно то же самое:
Вложения
Тип файла: rar Delphi.rar (2.32 Мб, 3 просмотров)
0
1 / 1 / 1
Регистрация: 23.04.2013
Сообщений: 26
28.12.2014, 21:06  [ТС] 11
При нажатии клавиши Enter ничего не происходит.
0
Почетный модератор
 Аватар для Puporev
64305 / 47602 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
28.12.2014, 21:09 12
Лучший ответ Сообщение было отмечено Nachinayushiy как решение

Решение

Может у тебя и мой почти Паскалевский код не работает?
У меня работает.
Вложения
Тип файла: rar 123.rar (3.0 Кб, 4 просмотров)
0
Эксперт Pascal/Delphi
 Аватар для droider
4918 / 2786 / 855
Регистрация: 04.10.2012
Сообщений: 10,155
28.12.2014, 21:11 13
Цитата Сообщение от Nachinayushiy Посмотреть сообщение
Все равно то же самое
Это вряд ли.
Вложения
Тип файла: rar четные числа.rar (708.5 Кб, 3 просмотров)
1
1 / 1 / 1
Регистрация: 23.04.2013
Сообщений: 26
28.12.2014, 21:17  [ТС] 14
Все. Спасибо Всем Большое) Я в событиях не указал Edit1KeyPress.
0
28.12.2014, 21:17
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.12.2014, 21:17
Помогаю со студенческими работами здесь

Делфи, при нажатии клавиши выводилось его имя ВывестиСообшение('Имя клавиши');
Точна такую тему нада сделать для других клавишь, но как ? procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin ...

Событие при нажатии enter в edit
Делаю событие для edit, по нажатию на enter вот так: В OnKeyDown пишу: if Key = VK_RETURN then button3.Click; При нажатии всё...

Как можно заблокировать нажатие клавиши Enter при работе в Memo?
Есть поле Memo который я использую для ввода данных, так как у Edit нет возможности выравнивания по центру. Вопрос следующий. Когда...

Идиотский звук при нажатии enter у TEdit
Если нажать enter когда фокус находится на компоненте TEdit издается раздражающий звук(что-то типа &quot;дзынь&quot;), как от этого...

Отработка события ComboBox при нажатии Enter
Добрый день. При выборе из списка ComboBox нужной записи приходится 2а раза нажимать Enter, чтобы в поле edit1.text отобразились...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Почему могут не шифроваться русские символы в Java
Wired 17.02.2025
При разработке на Java нередко возникают сложности с шифрованием русских символов. Эта проблема особенно актуальна для разработчиков, создающих программное обеспечение для русскоязычной аудитории. . . .
Отличия ОС для x86_64 и ARM
Wired 17.02.2025
На данный момент сосуществуют две основные архитектуры процессоров - x86_64 и ARM. Эти архитектуры имеют принципиально разные подходы к организации вычислений и обработке данных, что накладывает. . .
Многопоточность в Python: как использовать Thread
bytestream 17.02.2025
Поток выполнения (thread) - это наименьшая последовательность инструкций, которая может управляться планировщиком операционной системы. Представьте себе, что ваша программа - это книга, а потоки -. . .
Как воспроизвести Race Condition в Python
bytestream 17.02.2025
В многопоточном программировании существует множество подводных камней, и одним из самых коварных является состояние гонки (Race Condition). Этот термин описывает ситуацию, когда результат выполнения. . .
Ошибка "node: --openssl-legacy-provider is not allowed in NODE_OPTIONS"
bytestream 17.02.2025
Каждый разработчик рано или поздно сталкивается с ситуацией, когда при запуске проекта Node. js неожиданно выскакивает ошибка "node: --openssl-legacy-provider is not allowed in NODE_OPTIONS". Это. . .
Ошибка pip Python "AttributeError­: module 'lib' has no attribute 'OpenSSL_add_al­l_algorit­hms'"
bytestream 17.02.2025
При разработке на Python частенько сталкиваешься с разными сюрпризами, но ошибка AttributeError: module 'lib' has no attribute 'OpenSSL_add_all_algorithms' - это что-то особенное. Знаете, это как. . .
Сообщение Play Store "You must complete the advertising ID declaration before you can release an app that targets"
bytestream 17.02.2025
Рекламный идентификатор - это уникальный, но восстанавливаемый строковый идентификатор для каждого устройства Android. Думаю, вы удивитесь, но даже если ваше приложение не показывает рекламу. . .
Отличия App Router от Pages Router в Next.js
bytestream 17.02.2025
Next. js прошел длинный путь развития, и одним из самых значительных изменений стало появление App Router - революционного подхода к организации маршрутизации в приложении. Этот новый способ пришел на. . .
Топ10 лучших фреймворков JavaScript для изучения в 2025
bytestream 16.02.2025
В современной веб-разработке JavaScript занимает особое место, являясь одним из наиболее востребованных языков программирования. По мере развития веб-технологий появляется все больше фреймворков,. . .
Temporal в JavaScript - новый формат даты и времени
bytestream 16.02.2025
В мире JavaScript скоро произойдет значимое событие - появление нового встроенного объекта Temporal, который призван полностью заменить устаревший объект Date. Это революционное изменение в работе с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru