Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 921

/ вопрос решён /

Приветствую, уважаемые эксперты!
Как сделать проверку на то, что введённый текст в Edit числа
и они равны8 или 16 или 32 и т.д

Адмирал Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Адмирал (статус: Посетитель)
Вопрос отправлен: 16 января 2011, 09:43
Состояние вопроса: решён, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

// Функция, проверяющая, что в AEdit введено именно целое число
// и что это число является членом ряда 8, 16, 32, ..., 2^63.
// Если содержимое AEdit удовлетворяет условиям, то введённое
// число возвращается в параметре Value, а сама функция 
// Возвращает True.
function CheckEdit(AEdit: TEdit; var Value: Int64): Boolean;
var
  Bit: Byte; // Кол-во разрядов сдвига
begin
  Result:= TryStrToInt64(AEdit.Text, Value); // Попытка преобразовать текст в число
 
  if Result
    then begin // Проверка, что число = 2^Bit (3 <= Bit <= 63)
           for Bit:= 3 to 63 do
             if Value = Int64(1) shl Bit // 8, 16, 32, 64, ..., -9223372036854775808
               then Exit;
 
           Result:= False;
         end;
end;
 
// Обработчик нажатия на кнопку Button1
procedure TForm1.Button1Click(Sender: TObject);
var
  Value: Int64; // <-------- Вот ЭТО - ТВОЁ ЧИСЛО!!!111
begin
  if CheckEdit(Edit1, Value) // Преобразование строки в число и проверка
    then ShowMessage('Введено правильное число' + IntToStr(Value) + '.')
    else ShowMessage('Введено не число или неверное значение.'); 
end;

З.Ы. Впредь, прежде чем что-то сделать, подумай головой. От этого зависит мнение окружающих о тебе.
З.З.Ы. Накачай себе книжек для чайников и читай, читай, читай!

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 16 января 2011, 10:25
Оценка за ответ: 4

Комментарий к оценке: чо за хрень?

Мини-форум вопроса

Всего сообщений: 61; последнее сообщение — 18 января 2011, 12:04; участников в обсуждении: 7.

Страницы: [« Предыдущая] [1] [2] [3] [4]

min@y™

min@y™ (статус: Доктор наук), 18 января 2011, 12:04 [#61]:

Цитата (Адмирал):

лень создавать, плиз ответьте тут

Ты чо такой упрямый, как осёл? Тебе ж сказали создавать новый вопрос, вот и делай, что умные люди говорят! А то лень тут отвечать.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

18 января 2011, 12:43: Статус вопроса изменён на решённый (изменил автор вопроса — Адмирал): мраси

Страницы: [« Предыдущая] [1] [2] [3] [4]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 25 апреля 2026, 17:31
Выполнено за 0.02 сек.