Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.59/22: Рейтинг темы: голосов - 22, средняя оценка - 4.59
6 / 6 / 0
Регистрация: 05.10.2019
Сообщений: 300

Проверка содержимого Edit

10.03.2020, 14:51. Показов 5201. Ответов 41
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Hi , как проверить Edit1/2 на наличие определённых символов? Т.е. мне нужно, если в Edit содержится один, или несколько из этих символов (qwertyuiopasdfghjklzxcvbnmйцукенгшщзхъф ывапролджэячсмитьбюQWERTYUIOPASDFGHJKLZX CVBNMЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ[];'/()\|":>< и т.д.), то выполнялось бы Действие 1, если этих символов нет, но есть другие (1234567890,.), то выполнялось бы Действие 2.
Я пока написала вариант, который вроде работает, но нужно перечислять все символы через or , вообщем это не правильно, а хотелось бы написать правильно, и вообще можно ли.

Delphi
1
2
3
4
5
6
7
8
procedure TForm1.Button1Click(Sender: TObject);
begin
if (Pos('A', Edit1.Text)>0) or (Pos('A', Edit1.Text)>0) or (Pos('A', Edit2.Text)>0) or (Pos('A', Edit2.Text)>0 ... or ...) then begin
Edit1.Text:='hihi'; //Действие 1
end else begin
Edit3.Text:=Floattostr(StrToFloatSafe(Edit1.Text)+StrToFloatSafe(Edit2.Text));  //Действие 2
edit3.Text:=StringReplace(edit3.Text,',','.',[rfReplaceAll]);  //Действие 2
end;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.03.2020, 14:51
Ответы с готовыми решениями:

Проверка содержимого Edit
как написать такое: если edit2 остался пустым(в нем ничего не появилось( после работы проги), то прога начинает заново работать ?

Автоматическое заполнение 4-го Edit-а в зависимости от содержимого трех других Edit-ов
Здравствуйте, подскажите какого оператора лучше использовать. Суть вопроса; если Edit1 ='Рис', Edit2 ='10', Edit3 ='6', то автоматически...

Проверка заполнения Edit-ов в цикле: как исключить один Edit из проверки?
Имеется 6 Edit`ов. Хочу проверить 5 Edit`ов на заполнение/пустоту. Написал вот такой вот код, но по сути он проверяет все Edit`ы, а...

41
Злостный нарушитель
 Аватар для Verevkin
10908 / 5836 / 1289
Регистрация: 12.03.2015
Сообщений: 26,935
10.03.2020, 21:40
Лучший ответ Сообщение было отмечено LSvetlana как решение

Решение

Студворк — интернет-сервис помощи студентам
Цитата Сообщение от LSvetlana Посмотреть сообщение
Архив прикрепила
Вот видео, посмотри.
Засорять свой канал не стал, залил во вкантакт.
Вложения
Тип файла: 7z Project 2xy318.7z (49.1 Кб, 1 просмотров)
1
Житель Земли
 Аватар для DenNik
3004 / 3026 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
11.03.2020, 12:04
Цитата Сообщение от GoodWeather Посмотреть сообщение
Как минимум:
ну ты навертел!

Вот мой пример с дженериками, который также иллюстрирует, как я понимаю механизм тернарного оператора
Delphi
1
2
3
4
type
  TIfThenElse = class
    class function DoCase<T>(flag: boolean; ifTrue,ifFalse: T): T;
  end;
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
implementation
 
{$R *.dfm}
 
{ TIfThenElse }
 
class function TIfThenElse.DoCase<T>(flag: boolean; ifTrue, ifFalse: T): T;
begin
  if flag then Result:= ifTrue else Result:= ifFalse;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  Caption:= TIfThenElse.DoCase<string>(true,'Yes','No');
end;
0
Злостный нарушитель
 Аватар для Verevkin
10908 / 5836 / 1289
Регистрация: 12.03.2015
Сообщений: 26,935
11.03.2020, 12:34
Цитата Сообщение от DenNik Посмотреть сообщение
Вот мой пример с дженериками, который также иллюстрирует, как я понимаю механизм тернарного оператора
Ну и какой смысол?
Кликните здесь для просмотра всего текста

Именно тут проще юзать if ... then ... else.
Но ладно, хрен с ним. Попробуй сделать так, чтобы вычислялось только одно выражение из двух (ifTrue или ifFalse), в зависимости от первого параметра.
0
Житель Земли
 Аватар для DenNik
3004 / 3026 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
11.03.2020, 12:40
Цитата Сообщение от Verevkin Посмотреть сообщение
Ну и какой смысол?
Да никакого. Морщу моск.

Цитата Сообщение от Verevkin Посмотреть сообщение
Попробуй сделать так, чтобы вычислялось только одно выражение из двух (ifTrue или ifFalse), в зависимости от первого параметра.
1. Ну так это ж не тернарный оператор, а лишь приблизительная эмуляция )
2. В чём вредность вычисления всех операторов сразу? расход памяти и процессорного времени? и всё?
3. А если в качестве 2 и 3 параметра прикрутить анонимные методы? (херня получится, конечно, но всё же...)
0
Злостный нарушитель
 Аватар для Verevkin
10908 / 5836 / 1289
Регистрация: 12.03.2015
Сообщений: 26,935
11.03.2020, 12:47
Цитата Сообщение от DenNik Посмотреть сообщение
Ну так это ж не тернарный оператор
Вот именно.
Цитата Сообщение от DenNik Посмотреть сообщение
В чём вредность вычисления всех операторов сразу? расход памяти и процессорного времени? и всё?
Объясняю:
C++
1
x = obj != NULL ? obj->prop : 0;
Вопросы?
0
Житель Земли
 Аватар для DenNik
3004 / 3026 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
11.03.2020, 12:53
Цитата Сообщение от Verevkin Посмотреть сообщение
Вопросы?
Никаких. Я просто не знаю синтаксис С++. Совсем
0
Злостный нарушитель
 Аватар для Verevkin
10908 / 5836 / 1289
Регистрация: 12.03.2015
Сообщений: 26,935
11.03.2020, 12:56
Цитата Сообщение от DenNik Посмотреть сообщение
Я просто не знаю синтаксис С++. Совсем
Если бы в паскале был тернарный оператор "... ? ... :", то конструкция выглядела бы примерно так:
Delphi
1
x:= obj <> nil ? obj.prop : 0;
0
Житель Земли
 Аватар для DenNik
3004 / 3026 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
11.03.2020, 13:09
Цитата Сообщение от Verevkin Посмотреть сообщение
то конструкция выглядела бы примерно так:
а на словах? Если obj не равно nil, х присвоить значение obj.prop, иначе 0. так?

Добавлено через 8 минут
Ну что ж, теперь я вижу выгоду подобного оператора. проэмулировал на своей функции
Delphi
1
2
3
4
5
6
procedure TForm1.Button1Click(Sender: TObject);
var
  x: integer;
begin
  x:= TIfThenElse.DoCase<integer>(myClass <> nil,myClass.prop,0);
end;
класс не создан - получил AV )
0
Злостный нарушитель
 Аватар для Verevkin
10908 / 5836 / 1289
Регистрация: 12.03.2015
Сообщений: 26,935
11.03.2020, 14:01
Цитата Сообщение от DenNik Посмотреть сообщение
класс не создан - получил AV
Теперь-то вопросов нет?
0
Житель Земли
 Аватар для DenNik
3004 / 3026 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
11.03.2020, 14:08
Лучший ответ Сообщение было отмечено Verevkin как решение

Решение

Цитата Сообщение от Verevkin Посмотреть сообщение
Теперь-то вопросов нет?
Цитата Сообщение от DenNik Посмотреть сообщение
теперь я вижу выгоду подобного оператора
и еще вопрос по поводу
Цитата Сообщение от Verevkin Посмотреть сообщение
Тернарный оператор может быть как в правой стороне присваивания, так и в левой!
то есть, подобная запись
a = b ? x : y := 5;
будет означать, что в зависмости от логического условия значение 5 будет присвоено или X или Y, верно?
0
Злостный нарушитель
 Аватар для Verevkin
10908 / 5836 / 1289
Регистрация: 12.03.2015
Сообщений: 26,935
11.03.2020, 14:10
Цитата Сообщение от DenNik Посмотреть сообщение
верно?
0
6 / 6 / 0
Регистрация: 05.10.2019
Сообщений: 300
11.03.2020, 19:31  [ТС]
Цитата Сообщение от Verevkin Посмотреть сообщение
Вот видео, посмотри.
Засорять свой канал не стал, залил во вкантакт.
Hi , посмотрела видео , я вообще не знала что отладчик так помогает , просто мне надо научиться им пользоваться. Я читала про точку остановки, даже пыталась использовать, но не смогла правильно применить, как альтернативу я использовала Show.Message, с помощью Show.Message я много чего исправляла, находила что и где не правильно работает и т.д. Хотя сложно назвать это альтернативой .
Программа заработала правильно .
Я теперь немного поняла что делал overload, он перегружал функцию, и я так поняла, применять его можно только когда у функций одинаковые названия? Спасибо за CharInSet и за лайфхак по уменьшению размера ис.файла
Спасибо за видео
0
11.03.2020, 20:23

Не по теме:


Я вообще не могу себе представить, как можно разрабатывать программы и не пользоваться отладчиком или ещё хуже, даже не знать о его существовании. Даже в самой простой программе будут ошибки и под отладчиком прогоняем и понимаем, что где и как это исправить.

0
 Аватар для GoodWeather
886 / 588 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1
11.03.2020, 20:41
Цитата Сообщение от Справочник "Основы Delphi"
Директива Overload позволяет Вам иметь различные версии одинаково названной функции или процедуры с различными параметрами.
Это полезно, когда есть множество путей, которыми код может захотеть использовать подпрограмму.
Цитата Сообщение от Справочник "Основы Delphi"
Директива Override определяет метод класса как замена так же названного метода в родительском классе.
Например, Вы могли бы хотеть отменить (заменить) операцию конструктора, чтобы принять во внимание изменения класса, введенные вашим классом.
Вы можете только отменить классы определенные как виртуальные (Virtual) или динамический (Dynamic).


Добавлено через 3 минуты
Цитата Сообщение от LSvetlana Посмотреть сообщение
.. с помощью ShowMessage я много чего исправляла ..
Зависит от кода, от сложности, от возможных ошибок. Иногда может и ShowMessage() сунуть будет быстрее/сподручнее.
Или лучше в TMemo скидывать строчки с инфой, как примитивное логирование.
0
Злостный нарушитель
 Аватар для Verevkin
10908 / 5836 / 1289
Регистрация: 12.03.2015
Сообщений: 26,935
11.03.2020, 21:14
Цитата Сообщение от LSvetlana Посмотреть сообщение
Спасибо за видео
На здоровье. У меня их есть исчо.
Иногда даже весело-задорно, под музычку.


Добавлено через 19 минут
Цитата Сообщение от GoodWeather Посмотреть сообщение
Иногда может и ShowMessage() сунуть будет быстрее/сподручнее.
Вместо того, чтоб прогнать пошагово в дабаггере? Не смеши мои кальсоны!
Цитата Сообщение от GoodWeather Посмотреть сообщение
Или лучше в TMemo скидывать строчки с инфой, как примитивное логирование.
Логирование есть логирование, его можно применять параллельно.

Добавлено через 5 минут
Цитата Сообщение от LSvetlana Посмотреть сообщение
Спасибо за CharInSet и за лайфхак по уменьшению размера ис.файла
Его можно уменьшить ещё на 10-25% от того, что осталось.
0
Модератор
4156 / 2365 / 814
Регистрация: 15.11.2015
Сообщений: 9,503
11.03.2020, 22:01
Если будете использовать компиляцию с пакетами, то размер ещё уменьшится. Только для запуска на другом компе надо будет пакеты переносить вместе с другой программой.
0
Злостный нарушитель
 Аватар для Verevkin
10908 / 5836 / 1289
Регистрация: 12.03.2015
Сообщений: 26,935
11.03.2020, 22:07
Цитата Сообщение от AzAtom Посмотреть сообщение
Если будете использовать компиляцию с пакетами
Я не это имел в виду, а выкинуть дебаг-инфо из релизника.
Грязный извращенец!
0
Модератор
4156 / 2365 / 814
Регистрация: 15.11.2015
Сообщений: 9,503
12.03.2020, 10:20
Verevkin, да ладно, визуальный си тоже так делает и потом предлагает установить дополнительный пакет для работы программы.
0
Злостный нарушитель
 Аватар для Verevkin
10908 / 5836 / 1289
Регистрация: 12.03.2015
Сообщений: 26,935
12.03.2020, 10:31
Цитата Сообщение от AzAtom Посмотреть сообщение
да ладно, визуальный си тоже так делает
Это точно тред по delphi?
0
Модератор
4156 / 2365 / 814
Регистрация: 15.11.2015
Сообщений: 9,503
12.03.2020, 10:45
Verevkin, что такое? Чем плохо использовать библиотеки?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.03.2020, 10:45

Отображение содержимого файла в Edit
Люди добрые подскажите, пожалуйста, как прописать путь к файлу, что бы он отображался в Edit. Есть Форма1, на ней кнопка (...), при...

Сравнение содержимого Memo и Edit
миллионный вариант кода((. при компиляции возникают такие ошибки: Unit1.pas(110): Variable 'j' might not have been initialized ...

Отправка email содержимого edit
Вечер добрый. Подскажите, как кинуть себе на почту содержимое edit? общий принцип отправки на мыло понятен ...

Вывод в Memo в зависимости от содержимого Edit-а
Доброго дня ув. форумчане. Дело такое... Есть компонент мемо 1,в нем забита такая инфа: Р0030 Нагреватель датчика кислорода...

Сохранение содержимого edit от запуска к запуску
есть программа копирования в которой указан путь от куда, куда этот путь указывается в edit-e как сделать такxчтобы при последующим...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru