Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование на Delphi с нуля:: Выпуск седьмой


Программирование на Delphi с нуля :: Выпуск седьмой
Первый проект в Delphi.

Прочитать выпуск на сайте
От автора

Дорогие читатели!

    У меня для Вас следующие новости:
  1. По Вашему решению (по результатам опроса) я расскажу немного основ и перейду к рассказу интересного и полезного.
  2. На сайте в последнюю неделю стал очень популярен форум. Заходите: http://forum.thedelphi.ru. Там есть довольно много интересных тем, в обсуждении которых Вы могли бы учавствовать.
  3. Начиная с сегодняшнего выпуска постараюсь выпускать рассылку более-менее стабильно -- один раз в неделю.

Первый проект.

    Алгоритм создания нового проекта
  1. Создать новый проект (File -> New -> Application)
  2. Разместить нужные компоненты
  3. Переименовать все компоненты (не забывайте про форму!)
  4. Сохранить проект (File -> Save All)
  5. Приступить к написанию кода.
  6. Во время написания переодически сохранять, чтобы не потерять данные, если чпроизойдёт что-то непредсказуемое (выключится свет, зависнет система и т.д.).
  7. После написания кода надо запустить программу на выполнение и протестировать её нанормальных и заведомо ложных данных.
Как правильно называть компоненты?
Все компоненты должны называться следующим образом: приставкаНазвание.
Компонент приставка
TLabellbl
TButtonbtn
TEditedt
TMemomem
TFormfrm

Приставка должена быть написана маленькими буквами. Честно говоря, эти приставки далеко не обязательны, но тип компонента должен как-то указываться. Я предпочитаю писать в качастве приставки - тип компонента (TLabel - "label" и т.д.).
Название компонента мдолжно быть таким, чтобы можно было понять, зачем этот компонент нужен и начинаться с Большой буквы. В названиях могут использоваться латинские буквы, цифры и знак подчёркивания.
За название компонента отвечает свойство "Name".
Название проекта тоже должно показывать, что делает программа.

Опишу некоторые свойства компонентов.
TLabel - надпись
Caption - текст, который виден пользователю;
Color - фон текста;
Font.Color - цвет шрифта.
TButton - кнопка
Тоже самое, что и TLabel.
TEdit - поле ввода
Text - текст, введённый в поле ввода;
Остальные свойста аналогичные.
TMemo - многострочное поле ввода.
Пока мы им пользоваться не будем, поэтому его описание отложу на будущее.
Свойства записываются через точку: название_компонента.Свойство.
У всех свойств разные типы. У свойств Caption, Text - string. У свойства Color - TColor. Подробнее об этом типе можно почитать в Help'е. Вот несколько значений типа TColor: clBlue - синий, clBlack - чёрный, clGreen - зелёный. В общем, сначала cl, а дальше - название цвета.
Чтобы рисвоить переменой типа string значение, необходимо нужные текст заключить в апострофы (s := 'Какой-то текст.';).
Создадим первый проект в Delphi!
При запуске Delphi автоматически создаётся новый проект. Но вообще, для создания нового проекта можно использовать меню File->New->Application.
Чтобы поместить на форму новый компонент необходимо нажать левой кнопкой мыши на его пиктограмму в Палитре компонентов, после этого нажать на том месте формы, где Вы хотите его поместить. Если расположение Вас не устраивает, можно нажать на нужный компонент на форме левой кнопкой мыши и, не отпуская её [кнопку мыши], подвинуть компонент в нужное место. Чтобы удалить вомпонент, надо нажать на кнопку "Delete". Чтобы изменить размеры, необходи один раз нажать левой кнопкой мыши на компонент (или форму) и подвести курсор мыши к краю компонента. Когда курсор примет форму противонаправленных стрелочек, можно менять размер компонента, как обычного окна.

Напишем программу для решения линейного уравнения (ax+b=0)
Поместим на форму компоненты TButton, два компонента TEdit и три компонента TLabel.

Компоненты TButton, TEdit, TLibel, TMemo
Рисунок 4.

У меня получилась вот такая форма (третьего компонента TLabel не видно, потому что его значение Сaption пустое; находится под кнопкой):
Форма будущей программы
Рисунок 5.

Чтобы написать программу, нам надо будет проверять, всели данные введены и использовать функции преобразования строки в число и обратно.
Условный оператор
Условный оператор в Delphi - if. Его синтаксис:
if Условие then
 begin
 end //обратите внимание, что здесь НЕ стоит точка с запятой (перед else точка с запятой не ставится!).
else
 begin
 end;
Условие - переменная логического (boolean) типа.
Переменная логического типа может принимать два значения - true или false.
Переменные логического типа получаются в результате сравнения переменных. Для сравнения используются следующие операторы:
> - больше;
< - меньше;
>= - больше или равно;
<= - меньше или равно;
<> - не равно.
Оператор not инвертирует значение логической переменной.
В синтаксисе IF я написал, операторные скобки (begin...end). Они нужны, если надо выполнить несколько операций. Если надо выполнить одну операцию, то операторные скобки не нужны. Но если Вы их напишите, это не будет ошибкой.
Рассмотрим, как выполняется оператор. Если условие верно (true), то выполныется первый блок операторов. Если условие ложно (false), то выполнится второй блок операторов (тот, который после else). Если надо выполнять комманды, только если условие верно, что можно писать только
if условие then
 begin
 end; //обратите внимание, что здесь стоит точка с запятой.

Преобразование числа в строку и обратно.
Для преобразований используются следующие функции:
StrToInt(строка); - пробразует строку в целое число (integer).
StrToFloat(строка); - пробразует строку в вещественное число (real).
IntToStr(целое число); - преобразует целое число в строку.
FloatToStr(число); - преобразует число (любое) в строку.

Приступим к написанию программы.
Вот её алгоритм:
При нажатии на кнопку "Решить":
  • Проверить, заполнены ли поляи не равняется ли коеффициент при x нулю.
  • Если всё верно, посчитать и вывести значение x
  • Иначе, вывести сообщение об ошибке.
    1. Создадим обработчик события OnClick (нажатие) для кнопки. Для этого можно дважды щёлкнуть на кнопке левой кнопкой мышки или в "Object Inspector" на вкладке "Events" найти событие OnClick и создать его.
    2. Объявим нужные нам переменные.
    3. Напишем код.
    У меня получился вот такой код:
    procedure TfrmMain.btnSolveClick(Sender: TObject); 
    var a,b,x : real; 
    begin 
      if (edtA.Text <> '')and(edtB.Text <> ''then // проверяем, что коеффициенты введены 
        begin // если коеффициенты введены
          a := StrToFloat(edtA.Text);// получаем значения коеффициентов 
          b := StrToFloat(edtB.Text); 
          if (a <> 0)and(b<>0then // проверяем, чтобы коеффициенты не равнялись нулю 
            begin // если коеффициенты верны, 
              lblResult.Font.Color := clGreen; 
              x := -b/a; // вычисляем и 
              lblResult.Caption := 'x = '+FloatToStr(x); //выводим значение х 
            end 
          else // коеффициент(ы) неверный(-е) 
            begin 
              lblResult.Font.Color := clRed; 
              lblResult.Caption := 'Ошибка: коефффициенты не должны равняться нулю.'
            end
        end 
      else// если коеффициент(ы) не введены 
        begin 
          lblResult.Font.Color := clRed; 
          lblResult.Caption := 'Ошибка: необходимо ввести оба коеффициента.'
        end
    end;

    Опятные программисты и умные пользователе уже должны были обратить внимание, что нет проверки, введено ли верное число или введены буквы (в поля ввода коеффициентов). Проверка легко делается, но для этого нужно знать дополнительный материал, который будет изложен позже. Пока, пожалуйста, вводите корректные числа.

    Заключение.

    На сегодня всё. Я думаю, рассказано довольно много и теперь можно с чистой совестью задать задание.
    Исходники программы для решения линейного уравнения можно отсюда: скачать.
    Обсудить выпуск можно на форуме: обсудить.
    До скорой встречи! Удачи в программировании!

    Задание.

    Давно в рассылке я не давал заданий. Но вот настал этот момент: изложены начальные сведения и теперь Вы можете написать программу для решения квадратного уравнения - a*sqr(x) + b*x + c = 0.
    Итак, задание на сегодня - написать программу для решения квадратного уравнения. В программе сделать проверку, что введены все коеффициенты, проверить, что коеффициент a не равен нулю. Выводить только действительные корни уравнения или сообщение, что действительных корней нет.
    Если возникнут какие-либо вопросы, заходите на форум: http://forum.thedelphi.ru. И создавайте новую тему в разделе "Delphi" -> "Новичкам и общие вопросы".
    Удачи!
    PS: хотел напомнить, что выполненное задание можно послать мне на проверку и оценку. Я посмотрю Ваш код и дам какие-либо советы или скажу, что всё отлично. Жду Ваших писем!


    Если Вы нашли ошибку (орфографическую или ещё какую-нибудь), убедительная просьба сообщить об этом.
    Прочитать выпуск на сайте
    ©Бударагин Николай, 2006. При использовании материалов ссылка на http://TheDelphi.Ru обязательна!

  • В избранное