Вверх ↑
Этот топик читают: Гость
Ответов: 5446
Рейтинг: 323
#1: 2006-10-18 14:51:02 ЛС | профиль | цитата
В этой теме предлагаю постить мини-уроки по Hiasm. Крайне рекомендуется придерживаться следующих правил:

1. Заголовок поста должен иметь вид "Урок (номер): (тема урока)", либо "Обсуждение урока (номер)"

2. Сообщения типа "молодец"/"не-молодец" просьба не постить: буду безжалостно удалять, об этом же прошу своих коллег-Советников, не говоря уж об Администраторах.

3. Разрешается (и рекомендуется) для закрепления материала давать задания для самостоятельной работы. При этом ответы (если автор урока не указал иного) надо отправлять на эл. почту автору с пометкой в теме письма "Урок (номер)".

4. Не рекомендуется постить ответы на задания в этой теме, дабы не убивать педагогический эффект на корню.

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

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

Вот вроде и все правила.

[size=-2]------ Добавлено в 14:51
Урок №1. MainForm: главный компонент приложения (by Астрамак)

Компонент MainForm

MainForm, как понятно из названия является основной формой.
Новички (к коим я и отношусь) могут не знать, что во вкладке "Точки" можно добавить ещё точек,
кроме того, можно добавить и "не подсвеченные" точки в свойствах.
В ранних версиях нужно нажать на обозначение правой кнопкой и выбрать "Показать точку"
В новой версии слева от названия появился маленький чекбокс.
Итак, рассмотрим действия, которые можно сотворить с MainForm:

code_442

Итак, скопируйте схему и вставьте себе в HiAsm.
Преступим к ближайшему рассмотрению.

Самой верхней левой точкой в MainForm является «Изменение заголовка в форме»
Чем можно изменить заголовок? Ну, естественно вводом другого текста, для этого мы берём «Текстовое поле ввода, Edit» И соединяем точки. Прежде чем бездумно соединять наведите курсор на мышь, слева в низу в полу «Помощь» вы получите описание точки.
Я выбрал «Событие при изменении», то есть мы ввели букву, и она сразу отобразилась в заголовке. Если бы мы выбрали «Событие после нажатия «Enter», то не каждый бы юзер догадался это сделать.

Далее идут три кнопки для состояний формы, в принципе тут должно быть всё понятно, нажимая на кнопку, мы изменяем состояние, переключая его.

Цвет элемента. Для выбора цвета заливки элемента мы используем обычный диалог выбора цвета. Нажимаем кнопку, открывается палитра (дальше по цепочке соответственно), выбираем цвет и двигаем событие далее, разделяя его на два потока Хабом. Зачем? При изменении цвета формы цвет нашего трэкбара останется «по умолчанию», а нам нужно что бы всё совпадало, поэтому и красим оба элемента. (при этом для текста мы поставили прозрачность, и цвет им изменять ненужно)

Далее по списку прозрачность, изменять её очень легко, можно использовать любой скроллинг. Для этого ставим на минимальное значение (в свойствах) 0, а на максимальное 255. Если вы боитесь, что пользователь «потеряет» программку, то установите минимальное значение на 50. И опять, что бы как то визуализировать мы разделяем поток и подсоединяем «текст», показывая какой параметр установил пользователь.

«Определение вида формы» Ставим кнопку на открытие файла, после открытия выдаём его в поток на успешное выполнение, если это «то, что надо», то грузим как картинку формы.

Мигание. Мигание осуществляется путём нажатия кнопки. Но можно использовать, что ни будь другое, например при не открытие картинки (вторая точка в открытие файла). Соединяем точки и вуаля!.

Все «правые» точки работают при произошедшем событии. Например кликнул ты два раза на форме,- получай всплывающее окно.
В нашем случае мы сделали звук при создании (выберите его сами, кликнув два раза по элементу) и подсказку при двойном клике.
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#2: 2006-10-18 16:01:27 ЛС | профиль | цитата
По моему гораздо нагляднее все это описывать непосредственно на схеме.
карма: 27
0
Ответов: 3851
Рейтинг: 159
#3: 2006-10-18 19:02:09 ЛС | профиль | цитата
Dilma, поддерживаю. Одним глазом читать писанину, а другим водить по схеме - сможет не каждый. Гораздо полезнее использовать комментарии к компонентам, тем более, что в них допускается многострочность (в отличии от хинтов в элементах ). Например для хаба мона расписать все действия по порядку - по номерам.
карма: 0
начавший
0
Ответов: 9906
Рейтинг: 351
#4: 2006-10-18 19:28:49 ЛС | профиль | цитата
Подозреваю, что Dilma имел ввиду помещение сделанного iarspider-ом в схему. Для размещения ее в папке Tutorial
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#5: 2006-10-18 19:31:17 ЛС | профиль | цитата
Когда читаешь текст тут:
code_443
то гораздо удобнее ориентироваться о каком сообщение и о какой кнопке идет речь...
карма: 27
0
файлы: 1code_443.txt [1KB] [532]
Ответов: 3851
Рейтинг: 159
#6: 2006-10-18 19:37:46 ЛС | профиль | цитата
Ну, что, отполируем?
начну добавлять понемногу:
code_444
кто следующий?
карма: 0
начавший
0
файлы: 1code_444.txt [588B] [420]
Администрация
Ответов: 15295
Рейтинг: 1519
#7: 2006-10-18 19:45:03 ЛС | профиль | цитата
Даже если не учитывать тот факт, что получаемое число совсем не в пикселях выражается , это все таки немного не то, что я имел ввиду. Для уроков важно, чтобы весь текст был перед глазами сразу. Как это сделано в Tutorial.
карма: 27
0
Ответов: 3851
Рейтинг: 159
#8: 2006-10-18 22:32:52 ЛС | профиль | цитата
конечно
чтобы весь текст был перед глазами сразу
, а что это за число, кол-во отрисовок?
карма: 0
начавший
0
Ответов: 8926
Рейтинг: 823
#9: 2006-10-18 22:35:12 ЛС | профиль | цитата
Андрей., так немного точнее
code_447
карма: 19

0
файлы: 1code_447.txt [921B] [631]
Администрация
Ответов: 15295
Рейтинг: 1519
#10: 2006-10-20 15:19:12 ЛС | профиль | цитата
а что это за число, кол-во отрисовок?

что бы в том примере значение выражалось в пикселях, нужно при каждом onMove не 1 прибавлять, а абсолютную разницу между статорой позицией формы и новой. Я думаю еще не скоро железо и софт будут такими, что драйвер мыши сможет выдать событие Move для каждой минимальной единице перемещения(т.е. один пиксель). Для этого частота опроса должна превосходить время, за которое мышь проходит расстояние достаточное для перемешение курсора на 1 пиксел
карма: 27
0
Ответов: 3514
Рейтинг: 184
#11: 2006-10-20 15:38:34 ЛС | профиль | цитата
Урок 2. Label

code_457
карма: 0
0
файлы: 1code_457.txt [5.8KB] [478]
Администрация
Ответов: 15295
Рейтинг: 1519
#12: 2006-10-20 19:07:27 ЛС | профиль | цитата
Уже больше похоже на правду
карма: 27
0
Ответов: 3851
Рейтинг: 159
#13: 2006-10-20 21:14:57 ЛС | профиль | цитата
Астрамак, однако, нефиг было включать точки, которые не осветил в уроке. ПЛОХО однако.

Dilma, однако, без твоей коррекции не обойтись, но, однако, в дистрибутиве этот урок не будет лишним, ине кажется. Если так дальше дело пойдёт, г-н Астрамак процентов на 85 решит проблему хелпа для новичков. ХОРОШО однако.


карма: 0
начавший
0
Ответов: 3655
Рейтинг: 69
#14: 2006-10-20 21:20:32 ЛС | профиль | цитата
Андрей., Мечтать не вредно .Посмотрим на сколько компонентов его хватит.
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#15: 2006-10-20 21:22:55 ЛС | профиль | цитата
До включения в дистрибутив еще далеко.
карма: 27
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)