Вверх ↑
Ответов: 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