Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 22.05.2019
Сообщений: 21
Builder 6

Работа с полем Edit ?

19.01.2020, 12:00. Показов 6406. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Помогите собрать конструкцию (можно не за бесплатно) в Builder 6 C++ , нужно что бы в поле EDIT1 при вводе текста и цифр автоматом ставился пробел после двух символов и автоматом становилась заглавная буква и было ограничено количество ввода символов. Пример: A1 CB FF AA 89 FF DF FC —- то есть в данном примере видно , что ввод всего 8 байт , через пробел и заглавными буквами.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.01.2020, 12:00
Ответы с готовыми решениями:

Работа с полем Edit
Здравствуйте! есть такой код кнопки на форме: void __fastcall TForm1::Button15Click(TObject *Sender) { int s1=0; for(int i=0;...

Как свойство Caption задать полем ввода Edit?
Как создать приложение с кнопкой, у которой свойство Caption задается полем ввода Edit, и двумя компонентами SpinEdit, изменяющими...

Работа с текстовым полем
Пишу калькулятор. С помощью кнопок на форме ввожу числа в Edit. Хочу сделать кнопку, которая будет удалять по одному символу из текстового...

44
0 / 0 / 0
Регистрация: 22.05.2019
Сообщений: 21
21.01.2020, 18:41  [ТС]
Студворк — интернет-сервис помощи студентам
В общем лыжи у меня совсем не едут. Если вставляю первый код из девятого сообщения , то все компилируется и работает , если вставляю в Form все три кода , то не компилируется ошибка , так же пробовал второй и третий вставлять по отдельности , все то же самое ошибка.
Миниатюры
Работа с полем Edit ?  
0
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
22.01.2020, 03:24
Эти функции должны быть объявлены в h-файле.
Либо сначала нужно сделать двойной клик мыши по соответствующим методам Edit-а (появятся объявления плюс "пустые заготовки" функций в cpp-файле, куда уже можно будет скопировать код).
Тебе об этом уже писали в посте №18 да и проект выложили.
1
0 / 0 / 0
Регистрация: 22.05.2019
Сообщений: 21
22.01.2020, 04:56  [ТС]
Спасибо. Буду внимательней. Извините за глупые вопросы. Правда хочу разобраться в программировании.
0
0 / 0 / 0
Регистрация: 22.05.2019
Сообщений: 21
24.01.2020, 13:45  [ТС]
Разобрался куда вставлять код что бы он откомпилировался без ошибок. Когда ввожу HEX значения в поле Edit1 , то количество символов и отслеживание что бы HEX значения вводились - это все работает , но заглавные буквы сами не ставятся и не ставится пробел после каждого байта. Как это все организовать , подскажите пожалуйста ?
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
24.01.2020, 14:49
seregag4, Все работает, я в том проекте ничего своего не делал, взял у уважаемого D1973, а он отписался, что собирал в 6-ке. Скиньте проект, посмотрим.
0
0 / 0 / 0
Регистрация: 22.05.2019
Сообщений: 21
24.01.2020, 20:02  [ТС]
Вот проект в архиве Builder 6 C++ и PDF.
Вложения
Тип файла: rar 1.rar (347.9 Кб, 3 просмотров)
Тип файла: pdf Doc1.pdf (132.8 Кб, 3 просмотров)
0
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,423
Записей в блоге: 3
25.01.2020, 07:31
seregag4, в Вашем проекте проблема в том, что этот Ваш Edit1 - он один-одинешенек на форме, ему страшно и грустно - вот он и капризничает...

А если серьезно - преобразование текста в поле ввода (перевод в верхний регистр и разбиение на байты) происходит в момент, когда поле ввода теряет фокус, в момент наступления события OnExit. Но беда в том, что Edit1 фокус потерять просто не может - он один на всей форме. Решением может стать размещение на форме любого другого компонента, способного принимать фокус: еще один эдит, кнопка или еще что-нибудь... В этом случае достаточно щелкнуть ЛКМ на этом другом компоненте или же нажать клавишу TAB на клавиатуре чтобы чудо произошло...
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
25.01.2020, 09:47
seregag4, Я же не зря два едита на форму кинул

Добавлено через 7 минут
Ну еще можно на нажатие Enter посадить
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
     if(Key==VK_RETURN)
  {
  String s = Edit1->Text;
   for(int i = 1; i < Edit1->MaxLength + Edit1->MaxLength / 2 + 1; i++)
     if(i % 3 == 0) s.Insert(" ", i);
    Edit1->Text = AnsiUpperCase(s);
  }
 
   const String Valid = "1234567890abcdefABCDEF";
   Key = Valid.Pos(Key) ? Key : 0x0;
 
 
}
0
0 / 0 / 0
Регистрация: 22.05.2019
Сообщений: 21
25.01.2020, 10:21  [ТС]
Добавил кнопку Button1 , пишу все пишется с маленькой буквы и без пробелов потом нажимаю кнопку и происходит чудо все становится с пробелом между байтами (HEX) и с заглавной буквы все как надо . Но как сделать что бы все это сразу было не нажимаю кнопки или TAB ?
0
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,423
Записей в блоге: 3
25.01.2020, 11:13
Цитата Сообщение от seregag4 Посмотреть сообщение
что бы все это сразу было
Использовать компонент TMaskEdit, Вам же это уже предлагали...
0
0 / 0 / 0
Регистрация: 22.05.2019
Сообщений: 21
25.01.2020, 11:44  [ТС]
Заменил Edit1 на MaskEdit1 , все то же самое , только при нажатии кнопки Button1 или при нажатии на клавиатуре TAB.
C++
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
   MaskEdit1->MaxLength = 16;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::MaskEdit1KeyPress(TObject *Sender, char &Key)
{
  const String Valid = "1234567890abcdefABCDEF";
  Key = Valid.Pos(Key) ? Key : 0x0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MaskEdit1Exit(TObject *Sender)
{
   String s = MaskEdit1->Text;
   for(int i = 1; i < MaskEdit1->MaxLength + MaskEdit1->MaxLength / 2 + 1; i++)
   if(i % 3 == 0) s.Insert(" ", i);
   MaskEdit1->Text = AnsiUpperCase(s);
}
//---------------------------------------------------------------------------
Добавлено через 9 минут
Добавил Key=(char)toupper(Key); , теперь пишет сразу же заглавными буквами , но пробел не ставит между байтами пока не нажмешь на клавиатуре TAB или кнопку Button1 ?
0
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,423
Записей в блоге: 3
25.01.2020, 13:30
Цитата Сообщение от seregag4 Посмотреть сообщение
Заменил Edit1 на MaskEdit1
А маску какую задали?
0
0 / 0 / 0
Регистрация: 22.05.2019
Сообщений: 21
25.01.2020, 13:33  [ТС]
Соответственно поле Edit1 удалил а вместо него поставил поле MaskEdit и уже в нем код писал .
0
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,423
Записей в блоге: 3
25.01.2020, 13:46
поле MaskEdit для того и служит, чтобы вводить в него данные по какой-либо маске. И маска эта задается в свойстве EditMask компонента. Вот и задайте разрешение на ввод пар символов, разделенных пробелами.

Не по теме:

Я лично этот компонент не люблю и мне лень с этими масками ковыряться...

0
0 / 0 / 0
Регистрация: 22.05.2019
Сообщений: 21
25.01.2020, 18:49  [ТС]
Как это сделать ?
0
0 / 0 / 0
Регистрация: 22.05.2019
Сообщений: 21
29.01.2020, 07:44  [ТС]
Подскажите пожалуйста как сделать что бы ставился пробел между байтами а то я в MaskEdit1 в EditMask ставлю вроде пробел получается , но еще добавляется черточка типа подчеркивание . На последнем скрине видно , что когда ввожу HEX значения то полоса исчезает и ставится пробел. Как сделать что бы без полосы было ?
Миниатюры
Работа с полем Edit ?   Работа с полем Edit ?   Работа с полем Edit ?  

0
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
29.01.2020, 10:00
Попробуй заменить в Input Mask знак подчеркивания _ (в конце) на пробел.
0
0 / 0 / 0
Регистрация: 22.05.2019
Сообщений: 21
29.01.2020, 19:12  [ТС]
Поставил пробел , получилось , но после компиляции в поле полоса синяя удаляю ее кнопкой DELETE и потом все нормально. Как сделать что бы сразу было нормально без полосы этой синей ?
Миниатюры
Работа с полем Edit ?   Работа с полем Edit ?   Работа с полем Edit ?  

0
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,423
Записей в блоге: 3
29.01.2020, 19:26
Убрать фокус с этого компонента. Но, пока он у Вас один на форме - сделать это нельзя...
Ну, почти нельзя... Если выставить свойство TabStop в false - Вы получите желаемый эффект, но создадите сами себе большие неудобства тем, что:
1. фокус теперь компонент сможет принимать только при клике мыши и чтобы начать что-то вводить - Вам придется делать дополнительные движения, причем только мышью, потому, что
2. компонент теперь не реагирует на нажатие клавиатурной кнопки ТАВ...
0
0 / 0 / 0
Регистрация: 22.05.2019
Сообщений: 21
31.01.2020, 10:37  [ТС]
Подскажите пожалуйста , почему при вводе HEX в поле MaskEdit все нормально а после того как нажал кнопку ввод HEX происходит вот такое как на картинке ниже ? Как от этого избавиться что еще написать из кода ?
Миниатюры
Работа с полем Edit ?   Работа с полем Edit ?  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.01.2020, 10:37
Помогаю со студенческими работами здесь

Работа с полем Memo - получение подстрок
Здравствуйте, подскажите пожалуйста как из Memo1-&gt;Lines-&gt;Add(&quot;-3,2&quot;); отдельно в две разные переменные вытащить -3 и 2??? Добавлено...

работа с Edit
Подскажите как из поля Edit считать данные с разделителями в виде &quot;:&quot; в формате int в массив.

Работа с Edit
Здравствуйте. Подскажите, вот на скрине есть несколько Edit Как сделать что бы там где &quot;Прізвище&quot; наприер можна было вводить...

Работа с Edit
Есть ли способ заменить Edit1, Edit2...Editn переменной, что б в цикле можно было менять его номер?

Работа с Edit и Label
Помогите пожалуйста, задача такая: Есть форма, есть 5 Edit и 1 label, кнопок нет. При вводе в любой Edit данные должны автоматом...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru