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

FreeBasic. MyFbFramework + VisualFBEditor

14.07.2018, 20:36. Показов 23024. Ответов 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
1064 / 985 / 153
Регистрация: 10.08.2015
Сообщений: 5,360
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
1064 / 985 / 153
Регистрация: 10.08.2015
Сообщений: 5,360
19.12.2018, 12:06
Цитата Сообщение от coderxx Посмотреть сообщение
Да, так, советуете разделить пункт меню "Set As Main" на две?
Посмотри как это сделано студии, в лазарусе, в кодблокс, дев с++б нет бинс и т.д. И прими решение для себя.
Конечно нужно разделить. Вообще с проектами как-то все не слава богу:
1) Нужно создавать проект на старте редактора и при компиляции давать его сохранить, а лучше создавать временные файлы (как в лазарусе) чтоб не мучать постоянными предложениями сохраниться. это конечно у всех редакторов ФБ огромный минус.
2) Если файл проекта битый, то редактор крашится
3) Как сохранить проект не понятно
4) Свойств проекта нет

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

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

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

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

и пожалуйста, прикрути подсказки к кнопкам
0
Эксперт по электронике
6582 / 3209 / 335
Регистрация: 28.10.2011
Сообщений: 12,518
Записей в блоге: 7
19.12.2018, 13:23
Цитата Сообщение от vlisp Посмотреть сообщение
По формату файла проекта см. в сторону xml, другого пути просто нет
json.
0
 Аватар для vlisp
1064 / 985 / 153
Регистрация: 10.08.2015
Сообщений: 5,360
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
1064 / 985 / 153
Регистрация: 10.08.2015
Сообщений: 5,360
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
1064 / 985 / 153
Регистрация: 10.08.2015
Сообщений: 5,360
20.12.2018, 09:31
Если в режиме automatic я открою файл формы, то что будет компилироваться?
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
20.12.2018, 11:00  [ТС]
Компилируется текущая открытая вкладка, то есть не назначен главный файл. Если текущая открытая вкладка принадлежит проекту, тогда компилируется главный файл проекта.
0
 Аватар для vlisp
1064 / 985 / 153
Регистрация: 10.08.2015
Сообщений: 5,360
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
1064 / 985 / 153
Регистрация: 10.08.2015
Сообщений: 5,360
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
1064 / 985 / 153
Регистрация: 10.08.2015
Сообщений: 5,360
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
1064 / 985 / 153
Регистрация: 10.08.2015
Сообщений: 5,360
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru