Вверх ↑
Этот топик читают: Гость
Ответов: 758
Рейтинг: 112
#1: 2012-04-28 17:06:43 ЛС | профиль | цитата

Пакет написан на чистом API, поэтому размер исполняемого файла очень маленький
В папке проекта автоматом формируется исходник, сразу можно оценить качество кода и скомпилировать в родной среде если нужно
Элементов старался делать как можно меньше и как можно функциональней (будет время, доделаю все стандартные элементы Windows)
Использованные материалы



freebasic_0_1.rar

freebasic_0_1 описание

1. Исправил ошибку установки
2. Написал "ядро" пакета реализовал технологию адресации блоков
Теперь есть возможность формирования массива блоков с заданными адресами и печатать нужный код по нужному адресу
Если хотите увидеть на практике, то уберите комментарии в hiSys строки 86, 87, 89, 92
Для формирования такой структуры используется две основные функции
add_struct - создание и печать в блок по заданному адресу
print_struct – печать структуры блоков в один блок
надеюсь больше значительных изменений в основные функции делать не буду.
2. Подключил SQLite
3. Добавил несколько визуальных элементов

Что не работает или не доделано
Свойства Color и Font
МТ потоки
Структуры
ComboBox и ListBox – не прописаны почти все функции и свойства
Вызов методов из ChildPanel

Жду Ваших отзывов и советов по доработке
Спасибо за помощь CriDos и идею 1nd1g0
карма: 1

9
файлы: 2compiler.part03.rar [316.8KB] [513], freebasic_0_1.rar [374.5KB] [536]
Голосовали:1nd1g0, CriDos, flud, Tad, ser_davkin, sla8a, sаmakacd, andrestudio, Konst
Ответов: 1841
Рейтинг: 369
#2: 2012-04-28 17:46:56 ЛС | профиль | цитата
Проверил - всё работает.
Я кстати 2 раза возвращался к мысли о создании пакета FreeBASIC, но каждый раз меня отталкивал его синтаксис.
В общем, посмотрю более подробно на этот пакет и может быть изменю своё решение...
карма: 1
0
Гость
Ответов: 17029
Рейтинг: 0
#3: 2012-04-28 21:54:18 правка | ЛС | профиль | цитата


Редактировалось 6 раз(а), последний 2022-09-20 02:44:12
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#4: 2012-04-28 22:18:14 ЛС | профиль | цитата
Запусти FreeBASIC.his (правда у меня не сработал)
freebas.png
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1freebas.png [20.2KB] [1486]
Ответов: 3889
Рейтинг: 362
#5: 2012-04-28 22:30:23 ЛС | профиль | цитата
Tad писал(а):
Запусти FreeBASIC.his (правда у меня не сработал)

Сработать-то он частично сработал (компилятор добавился), но не сопоставил пакет с компилятором, по-этому потребовалось идти в Сервис - Пакеты и поставить во FreeBASIC галочку на компиляторе Windows GUI .
------------ Дoбавленo в 22.29:
А вот и первый глюк:


fbc.exe -s gui "H:\Documents\HiAsm\FB_test\Project1.bas" -x "H:\Documents\HiAsm\FB_test\Project1.exe"
H:\Documents\HiAsm\FB_test\Project1.bas(46) error 1: Argument count mismatch, found ')' in 'MessageBox(NULL, "", "", )'
Сборка завершена.


Add(MainForm,2953706,105,84)
{
Width=400
Height=300
}
Add(Button,15454393,140,84)
{
Left=140
Top=80
link(onClick,4563713:doMessage,[])
}
Add(Message,4563713,182,84)
{
}

карма: 1

0
Гость
Ответов: 17029
Рейтинг: 0
#6: 2012-04-28 22:43:06 правка | ЛС | профиль | цитата


Редактировалось 6 раз(а), последний 2022-09-20 02:44:11
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#7: 2012-04-28 22:48:52 ЛС | профиль | цитата
1nd1g0, это если в свойствах Message выбрано Button1
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 758
Рейтинг: 112
#8: 2012-04-29 15:54:36 ЛС | профиль | цитата
1nd1g0 писал(а):
А вот и первый глюк:
fbc.exe -s gui "H:\Documents\HiAsm\FB_test\Project1.bas" -x "H:\Documents\HiAsm\FB_test\Project1.exe"
H:\Documents\HiAsm\FB_test\Project1.bas(46) error 1: Argument count mismatch, found ')' in 'MessageBox(NULL, "", "", )'
Сборка завершена.

Это не глюк пакета, а глюк RTCG
При вставке некоторых элементов свойства читаются неправильно
Можете сами проверить - роскоментируйте trace

func set_field(arr,field, prop)
trace(field+'__'+this.props(field).value)
if(prop.get(this.props(field).value) != '')
arr.add(prop.get(this.props(field).value))
end
end
Получите чтото типа Type__1734831872
А потом элементарно закрываем и открываем hiAsm и все работает(по тойже схеме) -> получим Type__0
карма: 1

0
Гость
Ответов: 17029
Рейтинг: 0
#9: 2012-04-29 16:01:18 правка | ЛС | профиль | цитата


Редактировалось 6 раз(а), последний 2022-09-20 02:44:11
карма: 0

0
Ответов: 2265
Рейтинг: 676
#10: 2012-04-29 16:01:19 ЛС | профиль | цитата
miver, а как у FreeBASIC с созданием игр? Смотрю в компиляторе присутствует OpenGL, элементы будут?
карма: 11

0
Ответов: 1841
Рейтинг: 369
#11: 2012-04-29 16:04:35 ЛС | профиль | цитата
[offtop]85.26.183.215 -> CriDos[/offtop]
карма: 1
0
Ответов: 758
Рейтинг: 112
#12: 2012-04-30 09:08:51 ЛС | профиль | цитата
CriDos писал(а):
miver, обнови кодоген
CodeGen_new.dll

К сожалению не помогло, да и в сборке стоит CodeGen_new.dll недельной давности
Или ты мне предлагаеш в исходники кодогенератора залесть
sla8a писал(а):
miver, а как у FreeBASIC с созданием игр? Смотрю в компиляторе присутствует OpenGL, элементы будут?

Вот мой любимый пример freebasicgl.rar
Я не эксперт в OpenGL, но для примера пару элементов сделаю
------------ Дoбавленo в 09.08:
По поводу игр посмотри примеры http://freebasic-world.narod.ru/project.html
карма: 1

1
Голосовали:sla8a
Гость
Ответов: 17029
Рейтинг: 0
#13: 2012-04-30 10:30:45 правка | ЛС | профиль | цитата


Редактировалось 6 раз(а), последний 2022-09-20 02:04:35
карма: 0

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#14: 2012-04-30 10:53:02 ЛС | профиль | цитата
miver писал(а):
Это не глюк пакета, а глюк RTCG


Если предложите схему пакета CNET и последовательность действий, приводящую к ошибке, то можно будет посмотреть в чем там проблема.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 758
Рейтинг: 112
#15: 2012-04-30 20:47:40 ЛС | профиль | цитата
Nic писал(а):
Если предложите схему пакета CNET и последовательность действий, приводящую к ошибке, то можно будет посмотреть, в чем там проблема.

Последовательность действий:
Редактируем свойство Buttons в Message.ini

Buttons=Sets buttons on the message box|4|0|OK,OKCancel,YesNoCancel,YesNo
Редактируем строку hiMessage.hws

blk.println('MessageBox.Show(', sys.to_str(this.props("Buttons").value), ', ', d("Caption"), ', MessageBoxButtons.', 'OK', ', MessageBoxIcon.', this.props("Icon"), ');')
В результате будет выводится сообщение выбранного значения свойства "Buttons"
Открываем hiAsm, создаем новый проект ставим кнопку и сообщение
вуаля , получаем сообщение типа "1869376512"
сохраняем проект
Закрываем и открываем заново hiAsm получим "0"

карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)