Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?
Поиск
L


Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 5
Всего онлайн: 5
Зарегистрировано юзеров: 5762
Комментариев на сайте: 623
Новый юзер: Sevnday



Последние комментарии
c
N0E0O7 прокомментировал "Урок 1 - Инициализация OpenGL":
А у меня форма чёрная запускается
dimonsky прокомментировал "Урок 2 - Простые примитивы":
GetDC(handle) вместо canvas.handle, и убрать вызов FormResize. Тогда получается конфетка.



Мы в соцсетях
c
Delphi
Урок 10 - Знакомство с компонентами (часть 1/12)

   Здравствуйте, дорогие друзья! В этом, десятом уроке, мы начинаем подробное знакомство с компонентами. Всего будет 11 уроков на эту тему. В этом уроке мы будем знакомиться с компонентами на вкладке Standard.

Открываем Delphi, и кидаем на форму компонент Edit. У этого компонента есть свойство Text. Всё, что написано в этом свойстве, отображается в самом Edit'е. Отчистим свойство Text.

Следующий компонент, который оказывается у нас на форме прямо над Edit'ом, называется Label. Этот компонент является подписью для других компонентов. Так же в него удобно выводить какую-нибудь динамическую информацию. Напишем в свойство Caption значение Результат = .

Еще один компонент, который нам нужен - кнопка, тобишь Button. Располагаем его под Edit'ом.

Теперь давайте напишем простенькую программу, которая будет работать с этими компонентами. Программа называется "Калькулятор". Вы можете назвать заголовок формы соответствующе. Нашему калькулятору не хватает еще одного компонента Edit, пожалуйста разместите его ниже первого эдита.

Общий вид калькулятора вы можете увидеть на скриншоте.

Калькулятор


Теперь, когда мы закончили с настройкой компонентов, погружаемся в код программы и создаем обработчик события Button1Click. В нем пишем код, который будет складывать числа первого эдита и второго.
Label1.Caption:='Результат = '+IntToStr(StrToInt(Edit1.Text)+StrToInt(Edit2.Text));
Я надеюсь вам не нужно объяснять, что такое IntToStr и с чем его едят.

После компиляции, мы вводим в первый эдит число 10, а во второй 5 и после нажатия на кнопку видим, что в лейбле отображается Результат = 15. Это значит, что программа работает и правильно складывает числа, а если работает, то требует совершенства.

Попробуйте сложить в нашей программе дробные числа. Ничего не выйдет, так как значение из эдитов мы преобразовываем в числовой тип Integer, а он работает только с целыми числами. Если же вы все таки попробовали, то наверняка увидели похожую ошибку:

Ошибка


Она как раз и сообщает о том, что тип Integer не может работать с дробными числами.
Но как же быть?! Что делать? А вот тот, кто хорошо читает уроки, знает, что с целыми и дробными числами работает тип Real. Что бы преобразовать значение из эдита в тип Real, нужно изменить операторы IntToStr и StrToInt на FloatToStr и StrToFloat соответственно.

В итоге мы получим вот такой код:
Label1.Caption:='Результат = '+FloatToStr(StrToFloat(Edit1.Text)+StrToFloat(Edit2.Text));
Далее учим программу вычитать, умножать и делить. Для этого поместим на форму компонент RadioButton в количестве четырех штук и изменим у них свойство Caption на Сложить, Вычесть, умножить, Разделить.

Компонент RadioButton вы могли видеть на сайтах или в других программах, он представляет из себя кружочек (темный или светлый, в зависимости от выбора) и рядом подпись к этому кружочку. У этого компонента есть свойство Checked. Оно может принимать значения True или False, что определяет выбор радиокнопки. Поставьте в свойстве Checked значение True у радиокнопки с именем Сложить.

Общий вид программы:

Калькулятор


Теперь нам нужно изменить код, в событии Button1Click. Работать он будет так: если выбрана радиокнопка 'сложить' - складываем, если выбрана радиокнопка 'вычесть' - вычитаем. И дальше по аналогии.

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if (RadioButton1.Checked = True) Then //если выбрано 'сложить'
Label1.Caption:='Результат = '+FloatToStr(StrToFloat(Edit1.Text)+StrToFloat(Edit2.Text)); //складываем

if (RadioButton2.Checked = True) Then //если выбрано 'вычесть'
Label1.Caption:='Результат = '+FloatToStr(StrToFloat(Edit1.Text)-StrToFloat(Edit2.Text)); //вычитаем

if (RadioButton3.Checked = True) Then //если выбрано 'умножить'
Label1.Caption:='Результат = '+FloatToStr(StrToFloat(Edit1.Text)*StrToFloat(Edit2.Text)); //умножаем

if (RadioButton4.Checked = True) Then //если выбрано 'разделить'
Label1.Caption:='Результат = '+FloatToStr(StrToFloat(Edit1.Text)/StrToFloat(Edit2.Text)); //делим
end;
Компилируем и пробуем! У меня работает ;)

В следующем уроке мы будем модернизировать калькулятор, поэтому, пожалуйста, сохраните проект в надежное место.

Ну вот и всё! Удачи!
Встретимся в следующем уроке!


Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 9 Августа 2012
Просмотров: 24775

Урок 9 - События. Программное изменение свойств Урок 11 - Знакомство с компонентами (часть 2/12)

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил(а): Тимыч [Новичок] Дата: 2013-05-04
при изменении оператора на FloatToStr ошибка остается но место 'not a valid integer...'-'not a valid Floating...'




аватар Добавил(а): Тимыч [Новичок] Дата: 2013-05-04
И еще о языке делфи в целом:Как вы считаете можно-ли на Delphi создовать программы типа cmd т.е. способные улавливать все движения информации; или другие мощные программы. Я ища информацию методом тыка часто встречал выражения типа "Бросте Dlelphi он усторел он слаб переходите на C++, C#" и другую критику спрашиваю как у профиссионала есть ли капли правды в этих словах или это рекламодеятели. Сам начал с Paskal почему предпочту С-Delphi но все-же интересны границыю




аватар Добавил: Admin [Сэнсэй] vk.com/savelev_a_y Дата: 2013-05-04
Конечно, капля правды в этом есть. Говорят что и Delphi и C++ скоро будут не так востребованы как C#. Delphi больше всего подходит для новичков, так как он более удобен, логичен и схож с человеческим мышлением, то есть как ты думаешь, так ты и пишешь код. На C++ сложнее писать программы, так как он ближе к ассемблеру. Но если на Delphi легче писать, это не значит, что на нем можно создавать только простенькие программы. Есть куча примеров, когда на Delphi создавали шедевры. На нем можно создавать мощные программы и это факт, но для cmd больше подходит C++ сами знаете почему... Я думаю, что все зависит от самого программиста, а не от среды разработки




аватар Добавил: Programer [Новичок] Дата: 2013-05-04
Полностью согласен с Админом сайта ! Полностью поддерживаю вашу точку зрения !




аватар Добавил(а): delfiSkin [Новичок] Дата: 2013-05-19
как вернуть обратно окна objest treeView и objest inspector(если они закрылись), иногда их можно вернуть нажав на run->program reset ну а если эта кнопка горит серым приходится выключать и включать.Как их восстановить не выключая дэлфи?




аватар Добавил(а): delfiSkin [Новичок] Дата: 2013-05-19
спасибо за урок,код написал сам,не смотря на уже готовый. Значит отложилось в голове информация)




аватар Добавил(а): String [Новичок] Дата: 2014-01-11
С "FloatToStr", как оказалось, можно использовать лишь запятую (не точку).




аватар Добавил(а): Кайлан [Новичок] Дата: 2015-01-18
А как работать с отрицательными числами подскажите)(не используя переменные)




аватар Добавил(а): ortmaer [Новичок] Дата: 2016-08-05
Подскажите. Мне не понятно вот это. Допустим в начале урока было в коде: IntToStr(StrToInt После добавили возможность дробных чисел и код стал: +FloatToStr(StrToFloat Получается заменили int на float, но ведь команда на дробные числа у нас: Real а в коде она ни где не встречается. Получается весь этот список с командами вообще не используется?