Вверх ↑
Этот топик читают: Гость
Ответов: 3851
Рейтинг: 159
#1: 2007-12-21 22:09:29 ЛС | профиль | цитата
Здесь предлагаю размещать Ваши готовые рещения задач, которые, по Вашему мнению, могуть пригодиться коллегам и/ли новичкам.

Правила (условные конечно):
1. минимально-достаточный для понимания объём.
2. комментарии на схеме, ориентированные на новичков, но без фанатизма.
3. НЕ использовать "потусторонних" компонентов (не вошедших в дистрибутив), или со ссылкой.
4. максимальная подготовленность решения для вставления в проект. То есть например, используемые свойства элементов, имеющие одноимённые точки, не описывать в элементе, а подключать к точке глобальную переменную, имя переменной должно отображать её назначение, для того, чтобы было видно - какие нужны коррекции для правильной работы в составе проекта. Или обратить внимание прямым текстом - InfoTip.
5. Указывать ограничения компиляторов (Delphi/FPC), а также версию HiAsm и по возможности избегать сборок сделанных на "недистрибутивных" версиях (SVN, HiUpdate, ..)

Тема поможет (надеюсь) расширить список примеров, а главное - пополнить папку "tutorial" - спасение для новичков - нажал F1 на компоненте и вот тебе множество интересных идей, среди которых возможно и та, что нужна, а в конце ссылка на тему форума.. Комплектация таких справочных .sha ляжет на специалистов, а доведение до блеска - на форумчан.
Что касается компонентов, то по хорошему, конечно нужно делать тему для каждого, снабжать иконкой компонента(название не обязательно), помещать в подраздел наподобие, как это сейчас сделано в среде (это мечты). Ну, про пакеты я не говорю..


Итак, начнём - вот первый вариант настройки языка интерфейса (HiAsm 3.65 build 167).

Add(MainForm,6033040,28,133)
{
Left=10
Top=10
Position=1
link(onCreate,16325016:doRead,[])
}
Add(Button,5314238,560,322)
{
Left=185
Top=40
Caption=""
Point(doCaption)
}
Add(ComboBox,4136824,245,238)
{
Left=45
Top=55
Width=85
Height=21
Strings=#7:English|7:Русский|
Point(doSelectString)
link(onClick,6081217:doData,[])
}
Add(GetDataEx,11974193,252,294)
{
link(Data,4136824:String,[])
}
Add(Ini,16325016,98,168)
{
@Hint=#51:Читаем название языка при старте прграммы (doRead) |53:и сохраняем его после выбора пользователем (doWrite).|
Key="Language"
Type=1
link(onResult,479227:doEvent1,[])
link(FileName,3594133:Var1,[(104,121)])
link(Section,6121606:Var,[])
link(Value,11974193:Var1,[(125,156)(139,156)(139,303)])
}
Add(GlobalVar,3531629,126,91)
{
Name="Имя ini-файла"
Data=String(File.ini)
}
Add(GetDataEx,3594133,119,112)
{
link(Data,3531629:Var,[])
}
Add(Label,11244687,28,77)
{
Left=50
Top=35
Width=81
Height=17
Caption="Select language"
}
Add(GlobalVar,6121606,105,70)
{
Name="Имя секции в которой лежит ключ "Language", указывающий выбранный язык"
Data=String(main)
}
Add(GlobalVar,6248956,609,168)
{
Point(doName)
}
Add(Hub,479227,147,168)
{
@Hint=#0:|42:1 Устанавливаем название языка в ComboBox.|33:2 Читаем и устанавливаем надписи.|
link(onEvent1,4136824:doSelectString,[(187,174)(187,286)])
link(onEvent2,3062772:doWork2,[])
}
Add(Ini,13077120,493,161)
{
Key="Language"
Type=1
Point(onSectionData)
Point(doSectionData)
link(FileName,3594133:Var3,[(499,121)])
link(onSectionData,14706071:doSplit,[])
}
Add(DoData,6081217,294,245)
{
link(onEventData,15293568:doEvent1,[])
link(Data,11974193:Var3,[(300,233)(285,233)(285,303)])
}
Add(DoData,11806966,511,406)
{
link(onEventData,11142080:doCaption,[])
link(Data,11406904:Var,[])
}
Add(StrPart,14706071,549,168)
{
Char="="
Point(Left)
link(onSplit,6248956:doValue,[])
link(onPart,6248956:doName,[])
}
Add(Hub,15293568,357,245)
{
link(onEvent1,3062772:doWork3,[(399,251)])
link(onEvent2,16325016:doWrite,[(399,258)(399,331)(86,331)(86,181)])
}
Add(HubEx,3062772,395,168)
{
link(onEvent,11800951:doEvent1,[])
}
Add(Hub,11800951,420,175)
{
OutCount=3
link(onEvent1,13077120:doSectionData,[])
link(onEvent2,13646559:doData,[(475,188)(475,328)])
link(onEvent3,11806966:doData,[(463,195)(463,412)])
}
Add(GlobalVar,1252735,511,287)
{
Name="Button 1"
}
Add(DoData,13646559,511,322)
{
link(onEventData,5314238:doCaption,[])
link(Data,1252735:Var,[])
}
Add(Button,11142080,560,406)
{
Left=185
Top=70
Caption=""
Point(doCaption)
}
Add(GlobalVar,11406904,511,371)
{
Name="Button 2"
}
Add(InfoTip,10553730,497,238)
{
Info=#29:Установка актуальных надписей|
Frame=2
Width=106
Height=207
}
Add(InfoTip,12569277,483,126)
{
Info=#42:Занесение надписей в глобальные переменные|
Frame=2
Width=169
Height=81
}
Add(InfoTip,6521869,231,196)
{
Info=#26:Пользователь выбирает язык|
Frame=2
Width=106
Height=116
}
Add(InfoTip,6673533,77,28)
{
Info=#41:Чтение и запись названия выбранного языка|
Frame=2
Width=127
Height=186
}
Add(InfoTip,5861413,161,420)
{
Info=#6:[main]|16:Language=English|0:|9:[English]|11:Button 1=ON|12:Button 2=OFF|0:|9:[Русский]|12:Button 1=ВКЛ|13:Button 2=ОТКЛ|
Frame=2
HAlign=0
Width=106
Height=144
Margin=5
}
Add(InfoTip,2324912,112,343)
{
Info=#169:Для работы нужен файл с именем, лежащем в GlobalVar "Имя ini-файла". В нашем случае это "File.ini". Сделать его можно, например в блокноте. Содержание - примерно такое:|
Width=204
Height=235
Margin=2
}
Предлагайте более красивые варианты
карма: 0
начавший
0
Ответов: 3514
Рейтинг: 184
#2: 2007-12-22 18:03:36 ЛС | профиль | цитата
готовые рещения задачь

С этим справляется раздел "Схемы"..
карма: 0
0
Ответов: 3851
Рейтинг: 159
#3: 2007-12-23 12:31:26 ЛС | профиль | цитата
Астрамак писал(а):
С этим справляется раздел "Схемы"..
В разделе "Схемы" лежат готовые схемы, а здесь я предлагаю выкладывать составные части "максимально подготовленные для вставления в проект" и уже там конфигурируемые по вкусу на основании "комментариев, ориентированных на новичков, но без фанатизма".
карма: 0
начавший
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#4: 2007-12-23 12:37:27 ЛС | профиль | цитата
Андрей., на вот тебе цветную кнопку, для начала

code_8001.txt
карма: 22

0
файлы: 1code_8001.txt [10.6KB] [1551]
Ответов: 3851
Рейтинг: 159
#5: 2007-12-23 13:40:34 ЛС | профиль | цитата
nesco, сколько пользы от тебя - и кнопка симпотичная и требования я дополнил.

зы: При вставлении схемы получаю сообщение "Точка входа TextHeight элемента Img_Text не найдена", а в окне отладки
Свойство Ctl3D элемента MainForm не найдено!
Свойство TabOrder элемента PaintBox не найдено!
Но работает.
карма: 0
начавший
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#6: 2007-12-23 13:43:28 ЛС | профиль | цитата
Андрей., ха, все правильно, у меня версия -- будущая b168.
карма: 22

0
Ответов: 5227
Рейтинг: 587
#7: 2007-12-23 14:59:54 ЛС | профиль | цитата


nesco шутка на 5 балов!

[size=-2]------ Добавлено в 14:59
Примерно тоже самое но в настоящей версии b167

code_2045.txt
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
файлы: 1code_2045.txt [1.1KB] [1506]
Разработчик
Ответов: 26113
Рейтинг: 2126
#8: 2007-12-23 16:47:40 ЛС | профиль | цитата
andrestudio, у тебя показывает, как работать с панелями, у меня показывает, как работат с графикой.
карма: 22

0
Ответов: 5227
Рейтинг: 587
#9: 2007-12-24 18:24:14 ЛС | профиль | цитата
так и есть, кому что нравится, ну и даже если вместо панэлей Image поставить то кнопка будет графической...

кстати там на нижней панэли пробел забыл поставить, шрифт у надписи не сдвигается
вот так должно

code_2047.txt

[size=-2]------ Добавлено в 17:03
Простая добава и кнопка стаёт с фиксацией ;)

code_2048.txt

[size=-2]------ Добавлено в 18:24
Динамически загружаемый ListBox и не только он
может пригодится например для МР3 плеера...

code_2051.txt
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
файлы: 3code_2047.txt [1.1KB] [1501], code_2048.txt [1.3KB] [1493], code_2051.txt [4.7KB] [1432]
Ответов: 3851
Рейтинг: 159
#10: 2007-12-24 19:25:12 ЛС | профиль | цитата
andrestudio писал(а):
Динамически загружаемый ListBox
Минус в том, что при скролле пропадает выделение строки.

Шрифт приколный.
карма: 0
начавший
0
Ответов: 5227
Рейтинг: 587
#11: 2007-12-24 20:01:58 ЛС | профиль | цитата
Интересно тёска, а что в стандартном варианте выделение остаётся?
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 3851
Рейтинг: 159
#12: 2007-12-24 20:18:07 ЛС | профиль | цитата
andrestudio писал(а):
стандартном варианте выделение остаётся?
у меня - да. Давишь кнопки скрола и выделенная строка сдвигается вместе с остальными, оставаясь выделенной.
FPC не ест - зараза..
карма: 0
начавший
0
Ответов: 5227
Рейтинг: 587
#13: 2007-12-24 20:44:06 ЛС | профиль | цитата
Странно у меня нет такого эфекта...

ну вот типа этого чтоли?

code_2052.txt
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
файлы: 1code_2052.txt [5.1KB] [1435]
Ответов: 3851
Рейтинг: 159
#14: 2007-12-24 23:53:31 ЛС | профиль | цитата
Не-е, я не так объяснил видимо..
выделенная строка должна сдвигаться вместе с текстом, а в code_2052.txt она "остаётся на месте", а текст сдвигается..
карма: 0
начавший
0
Ответов: 294
Рейтинг: 64
#15: 2007-12-25 01:31:51 ЛС | профиль | цитата
Вот пример создания "заблокированных" папок, основанный на старой теме (mkdir x..) (Например тут можно прочитать http://www.whatis.ru/reg/reg_t8.shtml). С русскими путями/названиями особо не дружит.
Может для кого и в новинку окажется
code_8017.txt
PS. Кстати так и не допер, осуществимо ли сие, без создания bat_ников? А то у меня что-то не пошло через запуск консольных...
Зы. Многие используют в схемах вставки кода... так может их (вставки) тоже в эту тему выкладывать? А то не всем дано, но всем охота))
карма: 0

0
файлы: 1code_8017.txt [2.6KB] [1313]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)