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

FreeBasic. MyFbFramework + VisualFBEditor

14.07.2018, 20:36. Показов 24921. Ответов 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
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
09.08.2018, 23:48  [ТС]
Студворк — интернет-сервис помощи студентам
Спасибо, со временем учтем все это.

Цитата Сообщение от vlisp Посмотреть сообщение
Какие дать названия? Это твой выбор. Единственный совет - не сокращай названия, это плохой тон. Не Sys, а System, не App, а Application и т.д.
Cлово System резервирован FreeBasicʼом, не допускает использование. По поводу App, класс так и называется Application.
0
 Аватар для vlisp
1070 / 991 / 153
Регистрация: 10.08.2015
Сообщений: 5,414
10.08.2018, 11:42
Цитата Сообщение от coderxx Посмотреть сообщение
Cлово System резервирован FreeBasicʼом, не допускает использование. По поводу App, класс так и называется Application.
Ничего страшного, в регистронезависимых языках это легко обходится приставками: FBSystem вместо System, TApplication или CApplication вместо Application
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
11.08.2018, 08:50  [ТС]
Цитата Сообщение от vlisp Посмотреть сообщение
Ничего страшного, в регистронезависимых языках это легко обходится приставками: FBSystem вместо System, TApplication или CApplication вместо Application
Мне не понравилось, FBSystem это система FreeBasic'a, Формы системы FreeBasic'a (FBSystem.Forms) не имеется, но формы моей системы (My.Sys.Forms) имеется.

Добавлено через 30 минут
Если удобнее тогда App заменяем на Application.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
11.08.2018, 16:27
Цитата Сообщение от vlisp Посмотреть сообщение
код должен быть читаемым, обычно используют 80 символов в строке и во взрослых редакторах есть настраиваемый (для извращенцев) левый маргин. не забывай про оператор переноса строки _
Вот с этими рекомендациями категорически не согласен.
80 символов - это полная чепуха, у меня в проектах код всегда уходит на второй экран.
Возможно для каких-то совсем детских миниатюрных прог это и имеет место быть, но для
нормальных больших проектов чё-то там схлопывать в экран - это полная чушь, лучше нормально
писать код и рефакторить его, если хочется читаемости, а не заниматься садомазохизмом.
А к дичайшему костылю переноса строки не могу привыкнуть до сих пор, ибо коробит код
не по-детски, мало того это дерьмо становится нечитабельным т.к. каждый ровняет по-своему,
так ещё и пропадает подсказка по параметрам в FBEdit, приходится выправлять эти говнокоды.
Порой доходит до тотального абсурда, вылезло на пару символов - переносят, идеалисты, мать их.
Попрошу не забывать что FB это в первую очередь замена QB и как-бы не перестаёт ею быть,
он не стал другим ЯП по своим принципам и всё чужеродное - никогда не пойдёт в плюс языку.
Потому что есть концептуальные вещи, которые можно надстроить(как типы данных и новые
операторы), а есть вещи, которые создают кавардак, пришедшие с других ЯП, так что нафиг
всё это нужно, чтобы ещё и агитировать за это.
0
 Аватар для vlisp
1070 / 991 / 153
Регистрация: 10.08.2015
Сообщений: 5,414
11.08.2018, 17:56
Лучший ответ Сообщение было отмечено coderxx как решение

Решение

Цитата Сообщение от coderxx Посмотреть сообщение
Если удобнее тогда App заменяем на Application.
Дело не в удобстве, а в системе. Систематизированная инфраструктура приносит меньше неприятностей. Система приносит удобства, а не наоборот

Добавлено через 8 минут
Цитата Сообщение от Quiet Snow Посмотреть сообщение
пропадает подсказка по параметрам в FBEdit
кто кому доктор? 80 символов это легаси из времен машинописи, но не зря ли в бейсике есть _

Добавлено через 7 минут
если честно я не понял и половины, что ты написал. пришлось 2 раза перечитывать. Что подтверждает как раз мою правоту.

Добавлено через 18 минут
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
            For i As Integer = 0 To FMenuItems.Count -1
                If QMenuItem(FMenuItems.Items[i]).Command = msg.wParamLo Then
                    If QMenuItem(FMenuItems.Items[i]).OnClick Then QMenuItem(FMenuItems.Items[i]).OnClick(QMenuItem(FMenuItems.Items[i]))
                    Exit For
                End If
            Next i
 
            For i As Integer = 0 To FMenuItems.Count - 1
                If QMenuItem(FMenuItems.Items[i]).Command = msg.wParamLo Then
                    If QMenuItem(FMenuItems.Items[i]).OnClick Then
                        QMenuItem(FMenuItems.Items[i]).OnClick(QMenuItem(FMenuItems.Items[i]))
                    Exit For
                End If
            Next i
Это один фрагмент из модуля Form. Первый вариант - оригинал, второй - отформатирован, чуть чуть. Первый даже не влезает. Но тут другая проблема. Многократное использование шарфов вместо переменной, что неизбежно влечет за собой замедление. И это стало видно только после форматирования кода

Добавлено через 11 минут
Кстати, к чему приставка Q? Это же вроде из QT?
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
11.08.2018, 20:05  [ТС]
Цитата Сообщение от vlisp Посмотреть сообщение
Кстати, к чему приставка Q? Это же вроде из QT?
Это унаследован от Nastase Eodora, у него был TForm, TStatic, ... и Cast-макросы QForm, QStatic, ...
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
11.08.2018, 22:25
Цитата Сообщение от vlisp Посмотреть сообщение
если честно я не понял и половины, что ты написал.
Значит надо учить русский язык. В посте выше всё простыми словами.

Цитата Сообщение от vlisp Посмотреть сообщение
Это один фрагмент из модуля Form. Первый вариант - оригинал, второй - отформатирован, чуть чуть.
Какие шарфы? Ты о чём вообще? С темы на тему скачешь... Что медленно будет работать?
Условие, без END IF-а? По-моему это уже идиотизм. Плюс забытое END IF во втором куске.
Пример хуже привести было уже нельзя, во-первых, видно, что исходный вариант сделан
для удобства кодера, потому что он понимает, что ничего больше в IF пихать ему не надо,
а ежели так, то бейсик по всем канонам предоставляет возможность укоротить условие.
Пинать за это кодера - верх тупизма. Т.е. вкусовщина высшего порядка. А, во-вторых,
второй вариант ничего не даёт, лично я бы в данном конкретном случае выбрал второй
вариант, просто мне так удобнее, но во многих случаях использую принципиально первый
вариант, потому что сразу видно концептуально, что ничего туда больше совать не надо,
плюс оно экономит две строчки.
И меня дичайше выбешивает, когда пачку условий внутри IF-а сворачивают в _, потому что
если смотреть беглым взглядом быстро листая код, вторая и последующие строки кажутся
некорректными и только уже потом, переведя взгляд на правую часть экрана замечаешь
этот еле еле заметный крысячный символ. А про сворачивание переменных подпрограмм уже
высказался, FB Edit это не жрёт, а это весомая причина не использовать перенос.

Цитата Сообщение от vlisp Посмотреть сообщение
но не зря ли в бейсике есть _
В бейсике как раз этого не было, пока не пришли добрые дяди с других ЯП и не начали
вводить свои порядки.

Цитата Сообщение от vlisp Посмотреть сообщение
80 символов это легаси из времен машинописи
Машинопись имеет какое-то отношение к программированию на бейсике?
Редактор QB с ходу позволял 256, а при доведении до этой длины - расширял ещё на 128 и т.д..
В 99,9999999% случаев распечатывание кода - не требуется. Но если вдруг и потребовалось,
автоматический перенос строки делает почти тоже самое дерьмище что и символ _, только
он делает это тогда, когда необходимо, а так приходится пялиться на этот стыд всё время.
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
12.08.2018, 05:56  [ТС]
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Что медленно будет работать?
Условие, без END IF-а?
Он говорит несколько "QMenuItem(" вместе одного.

Добавлено через 9 минут
Вот так удобнее:
PureBasic
1
2
3
4
5
6
7
8
            Dim As MenuItem Ptr mi
            For i As Integer = 0 To FMenuItems.Count -1
                mi = FMenuItems.Items[i]
                If mi->Command = msg.wParamLo Then
                    If mi->OnClick Then mi->OnClick(*mi)
                    Exit For
                End If
            Next i
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
12.08.2018, 07:04
Цитата Сообщение от coderxx Посмотреть сообщение
Вот так удобнее
Годный изврат mi->Command !

А нормальный With... end with в FB слабо было прикрутить?
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
12.08.2018, 07:27  [ТС]
Такой вариант что ли?
PureBasic
1
2
3
4
5
6
7
8
9
10
            Dim As MenuItem Ptr mi
            For i As Integer = 0 To FMenuItems.Count -1
                mi = FMenuItems.Items[i]
                With *mi
                    If .Command = msg.wParamLo Then
                        If .OnClick Then .OnClick(*mi)
                        Exit For
                    End If
                End With
            Next i
Добавлено через 4 минуты
Кстати, скачал GitHub Desktop, теперь обновление стало без проблемным.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
12.08.2018, 08:39
Цитата Сообщение от Pro_grammer Посмотреть сообщение
With... end with в FB слабо было прикрутить?
Да прикрутить то запросто, просто плохая читаемость становится.
Все эти сокращалки визуально неудобны. Их скорее для финализации кода применять,
с ними всё супер красиво, но ничерта не читаемо.

Цитата Сообщение от coderxx Посмотреть сообщение
Он говорит несколько "QMenuItem(" вместе одного.
Ну закастуешь ты его в поинтер переменную, выиграешь 20 тактов, чё дальше?
Я порой просто охреневаю, это подчеркну - РЕДАКТОР. Где тут можно узреть
критические ботлнеки. Меня это всё умиляет: выстрел из гаубицы по воробушку.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
12.08.2018, 09:06
Цитата Сообщение от Quiet Snow Посмотреть сообщение
просто плохая читаемость становится.
Ну на вкус и цвет, как говорится...
Лично мне так и привычней и гораздо быстрее глазами пробежаться по
Code
1
If .OnClick Then .OnClick(*mi)
чем по такой простыне:
Code
1
2
If QMenuItem(FMenuItems.Items[i]).OnClick Then
                        QMenuItem(FMenuItems.Items[i]).OnClick(QMenuItem(FMenuItems.Items[i]))
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
12.08.2018, 10:04
Читаю про «глупые ограничения 80 символов на строку».
Вижу, что текст ограничен по ширине и переносится на новую строку без учёта абзаца.
Начинаю что‐то подозревать.
0
 Аватар для vlisp
1070 / 991 / 153
Регистрация: 10.08.2015
Сообщений: 5,414
12.08.2018, 12:29
Цитата Сообщение от coderxx Посмотреть сообщение
скачал GitHub Desktop, теперь обновление стало без проблемным.
почитай, может это будет полезным: https://ru.wikipedia.org/wiki/... я_версиями
Цитата Сообщение от coderxx Посмотреть сообщение
Такой вариант что ли?
Примерно, но я не стал бы сокращать до mi. это не понятно, а встречается в коде всего раз. к тому же любители с# закидали бы тебя помидорами по поводу with, но я не буду
Теперь давай сравним
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
            For i As Integer = 0 To FMenuItems.Count -1
                If QMenuItem(FMenuItems.Items[i]).Command = msg.wParamLo Then
                    If QMenuItem(FMenuItems.Items[i]).OnClick Then QMenuItem(FMenuItems.Items[i]).OnClick(QMenuItem(FMenuItems.Items[i]))
                    Exit For
                End If
            Next i
            ' ============================================================
            Dim As MenuItem Ptr mi
            For i As Integer = 0 To FMenuItems.Count -1
                mi = FMenuItems.Items[i]
                With *mi
                    If .Command = msg.wParamLo Then
                        If .OnClick Then .OnClick(*mi)
                        Exit For
                    End If
                End With
            Next i
           ' ============================================================
           ' с использованием приставок и правильного итератора
           ' Тип UShort позволяет иметь 65к элементов меню, разве мало? а весит он вдвое меньше
           ' чем Integer. При этом Integer выходит за диапазон значений итератора, так как включает
           ' отрицательные значения.
    
            ' где-то рядом с определением TMenuItem 
            Type PMenuItem as TMenuItem Ptr
 
            ' Везде, где требуется TMenuItem Ptr
            Dim As PMenuItem Item
           For i As UShort = 0 To FMenuItems.Count - 1
                   Item = FMenuItems.Items[i]
                   With Item
                       If .Command = msg.wParamLo Then
                        If .OnClick Then .OnClick(*Item)
                        Exit For
                    End If
                   End With
            Next i
            ' ============================================================
            ' и еще
            For i As UShort = 0 To FMenuItems.Count - 1
                   Dim As PMenuItem Item = FMenuItems.Items[i]
                   If Item->Command = msg.wParamLo Then
                        If Item->OnClick Then Item->OnClick(*Item)
                        Exit For
                   End If
            Next i
Добавлено через 20 минут
Цитата Сообщение от Замабувараев Посмотреть сообщение
Читаю про «глупые ограничения 80 символов на строку».
Это не глупое ограничение. Оно уходит корнями в века, когда подбирались форматы листов для письма, еще перьями.
Затем появились печатные машинки и ручки и постепенно одно подстраивалось под другое. в итоге мы получили формат A4 на котором помещается 70 машинописных строк по 80 символов. С появлением персональных компьютеров в 80х и текстовых редакторов принцип ограничения 80х70 символов распространился и на компьютерную философию. в том числе и программирование.
так что это не пустой каприз, а наиболее удобный с точки зрения техники и человеческой физиологии опыт. Длинные шарфы человек просто не усваивает. Как по горизонтали так и по вертикали, так что очень важно пользоваться отступами.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
12.08.2018, 15:55
Цитата Сообщение от Замабувараев Посмотреть сообщение
Читаю про «глупые ограничения 80 символов на строку».
Вижу, что текст ограничен по ширине и переносится на новую строку без учёта абзаца.
Начинаю что‐то подозревать.
Выше же всё писал.
Но если тебе интересно почему - мне крайне не нравится как за меня укладывает текст браузер.
К коду это не относится.

Цитата Сообщение от vlisp Посмотреть сообщение
Это не глупое ограничение. Оно уходит корнями в века
Забавно что вы друг друга не поняли, Замабувараев, то за тебя.)))

А что касательно корней:
Сейчас эта отсебятина уходит лишь корнями в твою голову, начитал википедию и
что-то, притянув за уши НЕ К КОДУ мне пытаешься втюхать, а я всю жизнь пишу код и
больше 10 лет его писал на редакторе с 78 символами по горизонтали и не видел никаких,
даже малейших проблем, потому что код забивался по заранее заготовленной схеме.
И в огромном кол-ве случаев 80-ти символов не хватало. Это ситуация более чем нормальная.
Казалось бы вот оно где должен был следовать этому правилу, но это правило писали
не программисты, а ссучие менеджеры и дилетанты, которым надо "красивенько" код
преподнести. А я на это красивенько какал с высокого моста, у меня другие цели и задачи.
Выше в 2-ух постах уже всё расписал. Местами это стирает контекст кода.
Этому можно следовать и можно не следовать. И бреду этому не следовал, никогда и не буду
и никому не советую, пусть трахаются конями все, кто слабое имеет отношение к
программированию и кому это не удобно, мне код нужен не чтобы его печатать и не чтобы
на него пялиться, а чтобы его компилировать. Потому что у людей из другой области или
другого ЯП - это чисто вкусовой аспект, а у меня скорее профессиональный, наработанный
практикой.
Если удается его без проблем уложить в лист - да и пофиг, ну хорошо вошёл в лист и вошёл,
не удаётся - да и чёрт с ним, делать код нечитабельным, терять контекст ради "красиво" - НАФИГ.

Путь ущемляется тот, кто не умеет кодить и вынужден читать чужие коды, повальная
вкусовщина - она и так обеспечена, никакие конвенции не спасут. И вот нафига во всём
этом хаосе, мне следовать дурацкому правилу, которое ничего кроме вкусовщины не несёт?


Цитата Сообщение от Pro_grammer Посмотреть сообщение
Ну на вкус и цвет, как говорится...
Ну у меня это не на вкус и цвет, могу обосновать свою позицию. Тебе привычнее потому что
ты не кодил на QB. Я наоборот весь свой код писал и продолжаю строго на базисе QB, поэтому
любая конструкция кода невалидная(единичная строчка кода, которую компилятор не схавает)
для QB глазом схватывается мгновенно, это уже рефлекс. И всё дерьмо в том, что все эти
"фичи" замечаешь уже после того как увидел это. Это отвлекает. Боле того, работаю с кодом
построчно, в любой момент мне может потребоваться полная информация. Начинаются прыжки
с одного на другое, теряется концентрация на задаче и ценные мысли и т.п..

Цитата Сообщение от Pro_grammer Посмотреть сообщение
If QMenuItem(FMenuItems.Items[i]).OnClick Then
QMenuItem(FMenuItems.Items[i]).OnClick(QMenuItem(FMenuItems.Items[i]))
Это ещё абсолютно нормальный код. Хотя FMenuItems.Items[i] немного режет глаз,
но криминального ничего не вижу.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
13.08.2018, 08:24
Цитата Сообщение от vlisp Посмотреть сообщение
' Тип UShort позволяет иметь 65к элементов меню, разве мало? а весит он вдвое меньше
' чем Integer. При этом Integer выходит за диапазон значений итератора, так как включает
' отрицательные значения.
Я считаю это решение неудачным. И вот почему:

Если ты работаешь с кодами ASCII, которые варьируются от 0 до 255, то в первую очередь в голову приходит идея использовать UByte, так как диапазон UByte совпадает с диапазоном кодов ASCII, и ты используешь только 1 байт памяти. Однако есть ещё одно соображение: «естественный» размер данных компьютера. В 32‐битной системе размер естественных данных составляет 4 байта, в 64‐битной — 8 байт. Или Integer. Это означает, что компьютер оптимизирован для обработки Integer и делает это эффективнее и быстрее, даже если ты «теряешь» 3 байта памяти, используя Integer для кода ASCII.
Во‐вторых, существует выравнивание данных в памяти, поэтому UByte на самом деле может занимать не один байт, а больше.
0
 Аватар для vlisp
1070 / 991 / 153
Регистрация: 10.08.2015
Сообщений: 5,414
13.08.2018, 10:21
Цитата Сообщение от Замабувараев Посмотреть сообщение
вот почему:
разница лишь в том, какую ошибку выкинет приложение. одно дело когда это out of range, другое - когда у тебя вдруг возникнет ссылка на не существующий объект по отрицательному адресу
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
19.08.2018, 13:48  [ТС]
Обновил:
- Добавлен: ColorDialog
- Улучшен панел свойств (сделан деревовидный)
- Улучшен панел событий
- Добавлен возможность автоувеличение версию
- Добавлен частичный intellisense
- Добавлен возможность указания пути к фреймворку
- Изменен шаблон формы
- Добавлен шаблоны ресурсного и xml файла
- Исправлен кнопка выбора файла в настройках
- Исправлен баг по пути к компилятору (пробелы, кавычки, ...)
0
 Аватар для vlisp
1070 / 991 / 153
Регистрация: 10.08.2015
Сообщений: 5,414
19.08.2018, 15:29
Ну вот, уже лучше
Теперь подумай про конфигурации сборки. Они могут быть глобальными и локальными. Глобальные хранятся в файле настроек редактора, локальные в файле проекта. В файле проекта должен быть переключатель: использовать глобальные настройки или локальные. Отдельные файлы компилируются Текущей конфигурацией сборки. В идеале все настройки сборки должны быть визуализированы

Подумай над тем, что директорий с включаемыми файлами может быть не одна и так же и с библиотеками

Не Проект, а Сессия. В сессию могут входить как отдельные файлы, так и проекты. Необходимо ввести Текущий Источник Сборки. Файл или проект сессии, который будет компилироваться. Сессия может и должна сохраняться. Добавить/убрать файл/проект в сессию, добавить/убрать файл в проект.

подумай про формат XML для хранения настроек он лучший
1
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
19.08.2018, 17:20  [ТС]
Цитата Сообщение от vlisp Посмотреть сообщение
Теперь подумай про конфигурации сборки. Они могут быть глобальными и локальными. Глобальные хранятся в файле настроек редактора, локальные в файле проекта. В файле проекта должен быть переключатель: использовать глобальные настройки или локальные. Отдельные файлы компилируются Текущей конфигурацией сборки. В идеале все настройки сборки должны быть визуализированы
Со временем визуализируем. Спасибо за совет.

Цитата Сообщение от vlisp Посмотреть сообщение
Подумай над тем, что директорий с включаемыми файлами может быть не одна и так же и с библиотеками
Это в планах имеется, при тестировании обнаружил ошибку с ListControl, поэтому этот часть временно удалил.
Путь к MyFbFramework'у сделал отдельным, потому что дизайнера будет работать с этим каталогом.

Цитата Сообщение от vlisp Посмотреть сообщение
Не Проект, а Сессия. В сессию могут входить как отдельные файлы, так и проекты. Необходимо ввести Текущий Источник Сборки. Файл или проект сессии, который будет компилироваться. Сессия может и должна сохраняться. Добавить/убрать файл/проект в сессию, добавить/убрать файл в проект.
Если будем указать только одну файл или проект как основной, то кроме этого файла ничего не можем компилировать, придется закрыть сессию, а заново создать новую сессию.

Цитата Сообщение от vlisp Посмотреть сообщение
подумай про формат XML для хранения настроек он лучший
Над этим тоже буду работать.

Добавлено через 1 час 30 минут
Цитата Сообщение от coderxx Посмотреть сообщение
Сообщение от vlisp
Не Проект, а Сессия. В сессию могут входить как отдельные файлы, так и проекты. Необходимо ввести Текущий Источник Сборки. Файл или проект сессии, который будет компилироваться. Сессия может и должна сохраняться. Добавить/убрать файл/проект в сессию, добавить/убрать файл в проект.
Если будем указать только одну файл или проект как основной, то кроме этого файла ничего не можем компилировать, придется закрыть сессию, а заново создать новую сессию.
Или можно сделать Solution как в Visual Studio.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.08.2018, 17:20

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru