среда, 4 января 2012 г.

Блокнот

Вот и настало время сделать что-то посложнее. Например блокнот. Простой блокнот без выкрутасов - только писать.

Приступим! Новым элементом сегодня будет Главное меню(Menu). Это один из самых основных элементов интерфейса и им не стоит пренебрегать.

Как всегда сначала построим интерфейс. Кидаем компоненты Редактор текста(Memo) и Главное меню(Menu):






И построим его структуру:





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

Теперь выполняемые функции:










Понадобятся два диалога: для открытия и для сохранения файлов.




И сразу в свойства прописать что работать будем с текстовыми файлами.




Возьмем еще один элемент из вкладки Инструменты - Индекс в канал (IndexToChanel). Но принимает входящий индекс (0, 1, 4, 8) и выполняет действия на ветке соответствующей индексу.
Соединим меню с индексом:





Чтобы появилась точка нужно ее выбрать в закладке Точки в свойствах.




Тогда в поток будут выдаваться индексы, а не названия пунктов.
Определимся с действиями:



 По индексу 1 (Новый) очищается редактор (doClear на элементе Memo(не видно))
По индексу 2 (Открыть) открывается диалог открытия файла
По индексу 3 и 4 (Сохранить, Сохранить как) открывается диалог сохранения файла
По индексу 6 (Выход) закрывается окно
По индексу 7 (о программе) выводится сообщение.
Теперь самое главное - сохранение и открытие текстовых файлов.


Как только пользователь выбрал файл или нажал сохранить в диалоге, имя файла передается в поток. Поток раздваивается хабом (Hub вкладка Инструменты). Сначала имя файла попадает в элемент памяти. Элемент Memo(Редактор) использует его для сохранения и открытия. А потом в зависимости от действия вызываются методы doLoad и doSave.
Простенький блокнот готов! А если к кого-то не готов исходники всегда помогут.
З.Ы Следующий урок будет о расширенной работе с текстом и шрифтами возможно будет видео. И у Memo надо поставить Align - caClient.

вторник, 3 января 2012 г.

Первый шаг ... программа.

# Этот урок, как серия следующих будет по пакету Windows.

Вот и пришло время создать свою первую программу. Пусть это и будет заурядный и порядком задолбавший "привет мир". Шутка.. мда.

Сегодняшняя программа будет говорить привет представившемуся, а если не представится будет посылать в баню или лесом.

Итак создаем новый проект Windows Файл -> Новый.


Во вкладке Интерфейс на панели элементов хватаем (кликаем) компоненты Надпись(Label), Поле ввода(Edit), Кнопка(Button). Получилось что-то вроде:


Идем в редактор формы (кнопки сверху):





Видим бардак. Клацаем по элементам и изменяем свойство Caption у каждого на нужное и двигаем как надо. У меня получилось так:




Интерфейс готов! Теперь начинка.
Идем во вкладку инструменты. Берем Поток -данные (DoData) две штуки и Выбор значения (Case). Идем в Строки и берем Объединение (StrCat). И наконец в Контролах берем Сообщение (Message). Соединяем как на скриншоте.



Расчехляю:
1. при клике по кнопке данные из Edit заносятся в поток (синяя линия)
2. Case проверяет входящий поток и сравнивает со значением заданным в свойствах. По умолчанию там NULL, что нам и надо (нет имени - NULL). На верхнюю правую точку (событие - запомните!) выдается если нет совпадения, на второе событие выдается если совпадают значения.
3. когда пользователь представился (1 событие Case) происходит сложение двух строк "Привет, " и строки из Edita, записывает в поток. В элемент Сообщение приходит поток с текстом сообщения и оно отображается.
4. когда передался пустой поток происходит действие второй ветки. В пустой поток заносится строка "Ну тогда и иди лесом!" и выводится в сообщение

Программа проста как два пальца, но если что-то не получилось вот исходник.

З.Ы Чтобы сделать такую форму (неизменяемого размера) в свойствах формы поставить BorderStyle - bsDialog.

Знакомство с HiAsm

Начинаем наше знакомство с HiAsm.

Надеюсь вы уже скачали и установили HiAsm v4.04 так как в своих записях я буду использовать именно его.

Итак запускаем! И видим главное окно:


Самое большое - оно же и главное, рабочее поле ( 1 ). Здесь располагаются элементы программы, строится алгоритм работы. К слову, элементы программы - это графические элементы, а не участки кода.

Эти самые элементы находятся на панели Элементы ( 2 ). Стандартных элементов множество, можно обратиться на форум программы - он всегда обновляется и новых элементов там тонны. Наконец можно самому создать нужный элемент (этому будет посвящен отдельный пост).

Так  как программа по сути ответ Delphi и аналогам, но без  кода, то у каждого элемента есть свойства ( 3 ). Вкладка свойства - это сами свойства; точки - не отображаемые методы и события или данные.

Меню быстрого доступа ( 4 ) дает доступ к часто используемым функциям среды. Его можно настроить под себя.


1 - думаю объяснять не надо ( новый, открыть, сохранить, сохранить как)
2 - перейти к редактированию формы; 3 - (в редакторе формы) выравнивание элементов
4 - переход по уровням (например контейнеры, панели (вложения))
5 - удалить выделенное
6 - запуск, запуск в отладочном режиме (ни разу не пользовался)
7 - стоп. Полезно если приложение зависло - убивает процесс.
8 - компилировать. То есть собрать программу ; - )
9 - настройка, справка, о программе...

Ну вроде все. Самое время приступить к созданию первой программы!.. Это уже в следующем посте.

З.Ы Расположение окон (1..2...3...4) вовсе не обязательно