Форум программистов, компьютерный форум, киберфорум
Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.95/107: Рейтинг темы: голосов - 107, средняя оценка - 4.95
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2

FreeBasic. MyFbFramework + VisualFBEditor

14.07.2018, 20:36. Показов 23724. Ответов 158

Студворк — интернет-сервис помощи студентам
Начал новый фреймворк для FreeBasic: MyFbFramework
И редактор для него: VisualFBEditor

Файлы здесь:
https://www.cyberforum.ru/blog... g5346.html
https://github.com/XusinboyBekchanov/MyFbFramework

Скриншоты:

Демка:
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
'#Compile -ex "mff\xpmanifest.rc"
#Include Once "mff\Form.bi"
#Include Once "mff\CheckBox.bi"
#Include Once "mff\CommandButton.bi"
#Include Once "mff\HScrollBar.bi"
#Include Once "mff\ComboBoxEdit.bi"
#Include Once "mff\ListControl.bi"
#Include Once "mff\TextBox.bi"
 
Using My.Sys.Forms
 
'#Region "Form"
    Type Form1 Extends Form
        Declare Constructor
        
        Dim As CheckBox CheckBox1
        Dim As CommandButton CommandButton1
        Dim As HScrollBar HScrollBar1
        Dim As ComboBoxEdit ComboBoxEdit1
        Dim As ListControl ListControl1
        Dim As TextBox TextBox1
    End Type
    
    Constructor Form1
        ' Form1
        This.Name = "Form1"
        This.Text = "Form1"
        This.SetBounds 0, 0, 350, 300
        ' CheckBox1
        CheckBox1.Name = "CheckBox1"
        CheckBox1.Text = "CheckBox1"
        CheckBox1.SetBounds 60, 42, 150, 36
        CheckBox1.Parent = @This
        ' CommandButton1
        CommandButton1.Name = "CommandButton1"
        CommandButton1.Text = "CommandButton1"
        CommandButton1.SetBounds 102, 108, 132, 60
        CommandButton1.Parent = @This
        ' HScrollBar1
        HScrollBar1.Name = "HScrollBar1"
        HScrollBar1.Text = "HScrollBar1"
        HScrollBar1.SetBounds 150, 192, 174, 18
        HScrollBar1.Parent = @This
        ' ComboBoxEdit1
        ComboBoxEdit1.Name = "ComboBoxEdit1"
        ComboBoxEdit1.SetBounds 228, 18, 66, 21
        ComboBoxEdit1.Parent = @This
        ' ListControl1
        ListControl1.Name = "ListControl1"
        ListControl1.Text = "ListControl1"
        ListControl1.SetBounds 24, 174, 84, 72
        ListControl1.Parent = @This
        ' TextBox1
        TextBox1.Name = "TextBox1"
        TextBox1.Text = "TextBox1"
        TextBox1.SetBounds 246, 60, 84, 42
        TextBox1.Parent = @This
    End Constructor
    
    #IfnDef _NOT_AUTORUN_FORMS_
        Dim frm As Form1
        frm.Show
    
        App.Run
    #EndIf
'#End Region
Миниатюры
FreeBasic. MyFbFramework + VisualFBEditor   FreeBasic. MyFbFramework + VisualFBEditor   FreeBasic. MyFbFramework + VisualFBEditor  

Вложения
Тип файла: zip Form1.zip (195.1 Кб, 15 просмотров)
3
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.07.2018, 20:36
Ответы с готовыми решениями:

FreeBASIC
Заметил, что уже имеющиеся на форуме темы в разделах: - QBasic - Visual Basic - VBA - Pure Basic посещаются довольно часто –...

Графика FreeBasic
Приветствую всех cyber-форумчан!:) Несмотря на наличие графического треда в младшем разделе, создаю ещё одну тему конкретно для...

Осваиваю (ем) FreeBasic
Решил больше не тянуть, а приступить сегодня. Если тема будет актуальна - возможно модераторы раздела ее (тему) как-нибудь оформят. ...

158
 Аватар для vlisp
1069 / 990 / 153
Регистрация: 10.08.2015
Сообщений: 5,400
18.12.2018, 21:21
Студворк — интернет-сервис помощи студентам
не нужно мешать все в кучу. так как в бейсике нет main, то приходится выбирать главный файл проекта.
В сессии же может быть текущий файл или проект - тот. который компилируется. так?

опять екзешник потерялся?
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
19.12.2018, 06:08  [ТС]
Цитата Сообщение от vlisp Посмотреть сообщение
не нужно мешать все в кучу. так как в бейсике нет main, то приходится выбирать главный файл проекта.
В сессии же может быть текущий файл или проект - тот. который компилируется. так?
Да, так, советуете разделить пункт меню "Set As Main" на две?

Цитата Сообщение от vlisp Посмотреть сообщение
опять екзешник потерялся?
Это тоже поставлю на github.
0
 Аватар для vlisp
1069 / 990 / 153
Регистрация: 10.08.2015
Сообщений: 5,400
19.12.2018, 12:06
Цитата Сообщение от coderxx Посмотреть сообщение
Да, так, советуете разделить пункт меню "Set As Main" на две?
Посмотри как это сделано студии, в лазарусе, в кодблокс, дев с++б нет бинс и т.д. И прими решение для себя.
Конечно нужно разделить. Вообще с проектами как-то все не слава богу:
1) Нужно создавать проект на старте редактора и при компиляции давать его сохранить, а лучше создавать временные файлы (как в лазарусе) чтоб не мучать постоянными предложениями сохраниться. это конечно у всех редакторов ФБ огромный минус.
2) Если файл проекта битый, то редактор крашится
3) Как сохранить проект не понятно
4) Свойств проекта нет

В общем я не понимаю как это работает.

Я вроде набрасывал дерево
Сессия
|-Проект
|-Проект [Текущий]
|-Файл
|-Проект
|-Файл

Причем проекты и файлы должны храниться а инстанцах одного типа
Внутри у тебя должна быть коллекция "документов" (файлы, проекты), которую ты называешь сессией, у нее свойство Active (тот документ (файл или проект), который компилируется). У документа свойства, хранящие конфу сборки и состав. По сути документ файла от документа проекта отличается свойством "тип" (файл или проект), количеством файлов (в первом случае один) и возможностью добавлять в документ новые файлы (в первом случае отсутствует)

По формату файла проекта см. в сторону xml, другого пути просто нет

и пожалуйста, прикрути подсказки к кнопкам
0
Эксперт по электронике
6875 / 3298 / 340
Регистрация: 28.10.2011
Сообщений: 12,932
Записей в блоге: 7
19.12.2018, 13:23
Цитата Сообщение от vlisp Посмотреть сообщение
По формату файла проекта см. в сторону xml, другого пути просто нет
json.
0
 Аватар для vlisp
1069 / 990 / 153
Регистрация: 10.08.2015
Сообщений: 5,400
19.12.2018, 13:37
Цитата Сообщение от locm Посмотреть сообщение
json
Нет, json слишком userfriendly
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
19.12.2018, 14:00  [ТС]
Цитата Сообщение от vlisp Посмотреть сообщение
3) Как сохранить проект не понятно
Для сохранения проекта нужно выбрать проект в дереве проектов (файлов) и сохранить. Ещё при выходе из программы тоже спрашивает сохранить или нет по каждому не сохраненному проекту и файлу.
0
 Аватар для vlisp
1069 / 990 / 153
Регистрация: 10.08.2015
Сообщений: 5,400
19.12.2018, 14:33
Цитата Сообщение от coderxx Посмотреть сообщение
Для сохранения проекта нужно выбрать проект в дереве проектов (файлов) и сохранить.
А как понять какой проект компилировать? А то компилятор пишет... а нельзя скопировать, что пишет компилятор во вкладке Errors... Invalid command-line option, ""
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
20.12.2018, 06:45  [ТС]
Цитата Сообщение от vlisp Посмотреть сообщение
А как понять какой проект компилировать?
Внизу дерева проектов и файлов есть информационная строка, если там написан "Main File: Automatic" тогда компилируется открытая текущая вкладка, если написан "Main File: MyFbFramework.vfp" (ещё может быть файл "Main File: 1.bas") тогда компилируется главный файл проекта "MyFbFramework.vfp" (установленный через "Set As Main"), только нигде не показан какой файл главный в проекте. Это указывается в свойствах проекта (ещё не реализован).

Цитата Сообщение от vlisp Посмотреть сообщение
А то компилятор пишет... а нельзя скопировать, что пишет компилятор во вкладке Errors... Invalid command-line option, ""
16:55:09: Compilation: "D:\FreeBASIC\fbc.exe" -b "" -i "D:\FreeBasic\VisualFBEditor/MyFbFramework" ...

error 80: Invalid command-line option, ""

16:55:09: Do not build file.
Для вкладки Errors тоже добавим некоторые пункты "копировать", "очистить", ... На вкладке Output можно копировать.

Invalid command-line option, "" - появляется из-за отправки на компилятор пустой путь к файлу, по-моему на запрос на сохранение файла вы нажали "Отмена".

Добавлено через 10 часов 15 минут
Цитата Сообщение от coderxx Посмотреть сообщение
Invalid command-line option, "" - появляется из-за отправки на компилятор пустой путь к файлу, по-моему на запрос на сохранение файла вы нажали "Отмена".
Нашел глюк по не сохраненному проекту, скоро исправлю.
0
 Аватар для vlisp
1069 / 990 / 153
Регистрация: 10.08.2015
Сообщений: 5,400
20.12.2018, 09:31
Если в режиме automatic я открою файл формы, то что будет компилироваться?
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
20.12.2018, 11:00  [ТС]
Компилируется текущая открытая вкладка, то есть не назначен главный файл. Если текущая открытая вкладка принадлежит проекту, тогда компилируется главный файл проекта.
0
 Аватар для vlisp
1069 / 990 / 153
Регистрация: 10.08.2015
Сообщений: 5,400
20.12.2018, 13:04
Цитата Сообщение от coderxx Посмотреть сообщение
Если текущая открытая вкладка принадлежит проекту, тогда компилируется главный файл проекта.
У меня выдает ошибки, пытаясь скомпилировать файл формы. В общем что совсем перестал сначала запускать, теперь и компилировать проект. и Когда назначаешь файлу проекта set as main в боковой панели, редактор вылетает. И вообще бесит что она скрывается автоматически. Обычно делают канцелярскую кнопку на таких панелях
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
20.12.2018, 14:15  [ТС]
Цитата Сообщение от vlisp Посмотреть сообщение
У меня выдает ошибки, пытаясь скомпилировать файл формы. В общем что совсем перестал сначала запускать, теперь и компилировать проект. и Когда назначаешь файлу проекта set as main в боковой панели, редактор вылетает.
Эти ошибки я обнаружил, сейчас идет процесс по этому поводу.

Цитата Сообщение от vlisp Посмотреть сообщение
И вообще бесит что она скрывается автоматически. Обычно делают канцелярскую кнопку на таких панелях
Если два раза нажать на вкладку, меняется режим скрытия, при выходе из программы эта настройка сохраняется.
0
 Аватар для vlisp
1069 / 990 / 153
Регистрация: 10.08.2015
Сообщений: 5,400
20.12.2018, 14:25
И вот еще:
13:23:59: Layout succeeded!
13:23:59: Run: D:/test/VFBE2/main.exe ...
13:23:59: Application finished. Returned code: 0 - No error
а приложение не запускается...
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
20.12.2018, 23:09  [ТС]
Цитата Сообщение от vlisp Посмотреть сообщение
а приложение не запускается...
Утром эти вещи обнаружил.

Добавлено через 8 часов 22 минуты
Обновил и добавил в github.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
20.12.2018, 23:55
Всегда думал, что в заголовочниках должны быть лишь декларации функций, структур, констант и перечислений.
Не очень понятно, почему в заголовочных файлах код. Есть какая‐то причина, почему так сделано?
0
 Аватар для vlisp
1069 / 990 / 153
Регистрация: 10.08.2015
Сообщений: 5,400
21.12.2018, 01:25
Цитата Сообщение от Замабувараев Посмотреть сообщение
Не очень понятно, почему в заголовочных файлах код.
в бейсике нет заголовочных файлов
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
21.12.2018, 06:20  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
Всегда думал, что в заголовочниках должны быть лишь декларации функций, структур, констант и перечислений.
Не очень понятно, почему в заголовочных файлах код. Есть какая‐то причина, почему так сделано?
Это сделан для того чтобы максимально уменьшить лишний код в конечном ехе файле. Если будем сделать заголовочники, то ещё через #inclib нужно будет включить весь библиотеку в ехе файл.

Можно ещё разделить эти файлы на .bi и .bas. В программе в свойстве проекта нужно будет выбрать "Включить весь библиотеку в конечный файл" на include настройке. Потом программа будет вставить mff.bi один раз (внутри mff.bi будет #inclib "mff-<версия библиотеки>"). Если эта настройка не выбрано программа будет вставить .bas файлы через #include.

Добавлено через 10 минут
В первом случае может программа будет компилироваться быстрее (потому что библиотека не компилируется), но объем файла будет чуть больше.

Вообще-то, в планах: сделать настройку интеллектуальную компиляцию, которая потом можно будет включить весь файл библиотеки (mff.bas), а редактор компилирует только используемых функций, процедур, свойств и типов.

Добавлено через 1 час 27 минут
Лучше сделаем так: все объявления типов, функций, констант и перечислений оставим на .bi файлах, остальные переносим на .bas файлы. Потом на .bi файлах условной директивой укажем загружать или нет .bas файлы.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
21.12.2018, 09:36
Цитата Сообщение от vlisp Посмотреть сообщение
в бейсике нет заголовочных файлов
Во фрибейсике есть.
0
 Аватар для ufopera
2 / 2 / 3
Регистрация: 11.04.2014
Сообщений: 12
21.12.2018, 10:19
Цитата Сообщение от coderxx Посмотреть сообщение
а приложение не запускается...
Утром эти вещи обнаружил.
Я вот, тоже думал, что, почему не запускается, вроде уже и версия 1.х.х.
Почему нет сообщений о ошибке, неужели такие критические, что не успевает сработать обработчик (если он есть)?
VisualFBEditor 1.0.2.1230 - Запустилась, но на третьем-же клике молча исчезла, после удаление контрола с формы.

IDE штука сложная, тут важно правильно спроектировать, добавлять в проект уже отлаженные блоки кода,
по возможности использовать уже готовые библиотеки (SciLexer например).
0
 Аватар для vlisp
1069 / 990 / 153
Регистрация: 10.08.2015
Сообщений: 5,400
21.12.2018, 11:29
Цитата Сообщение от Замабувараев Посмотреть сообщение
Во фрибейсике есть.
Вы не понимаете суть модулей? В С/С++ заголовочные файлы служат для скрытия основного кода и отображения лишь интерфейсов, в фб нет заголовочных файлов, но есть включаемые, которые равноценны основным. Другими словами в фб нет разницы с каким расширением файл компилировать, поэтому и придуман костыль set as main file. Поэтому для fb принципиально важно чтобы программист работал с проектом, а не набором файлов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.12.2018, 11:29
Помогаю со студенческими работами здесь

FreeBASIC и сети
Здравствуй, форум. Всё дело в том, что есть одни сетевые функции, и для этих функций Я решил написать обёртку. Чтобы не возиться созданием...

Немного о FreeBasic
Чаще всего при начальном использовании какого-то языка , люди стараются выбрать простую, неприхотливую среду. Для FreeBasic можно...

Задача на графику в FreeBASIC
Помогите с задача по графике в FreeBASIC Построить совокупность n равных отрезков, центры которых лежат в центре экрана, а концы - на...

FreeBasic круги на воде
Очень интересный код имитирующий распространение кругов на воде. Описание алгоритма тут Что меня удивило, обычно когда идет речь о...

Синтаксические особенности FreeBasic
По совету Stabud создаю тему, в которой будем обсуждать семантику и синтаксис диалекта FreeBasic. Вот на такую программу я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
100
Ответ Создать тему
Новые блоги и статьи
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru