IDE для FreeBasic'a - FbEdit

Предыдущая тема Следующая тема Перейти вниз

IDE для FreeBasic'a - FbEdit

Сообщение  DAlex в Пн Мар 10, 2008 10:54 am

Отличная среда разработки для FreeBasic'a...
http://www.radasm.com/Upload/FbEdit.zip

DAlex

Сообщения : 6
Дата регистрации : 2008-03-10

Посмотреть профиль

Вернуться к началу Перейти вниз

Другие IDE

Сообщение  ShenZN в Пн Мар 10, 2008 4:12 pm

Так же существуют еще две IDE для FreeBasic:

FBIDE - http://fbide.freebasic.net/

JellyFish Pro Editor - http://www.planetsquires.com/jellyfishpro_freebasic.htm

Обе уже не развиваются, но FBIDE вполне еще боеспособна!
Лучшая на данный момент конечно же FBEDIT, но если вы новичок вполне можете выбрать и FBIDE.

ShenZN

Сообщения : 155
Дата регистрации : 2008-02-18
Откуда : Ukraine

Посмотреть профиль http://lodestar-game.narod.ru

Вернуться к началу Перейти вниз

Re: IDE для FreeBasic'a - FbEdit

Сообщение  Замабувараев в Чт Авг 21, 2008 7:22 am

Где взять исходные коды FBEdit?
avatar
Замабувараев

Сообщения : 99
Дата регистрации : 2008-08-20
Возраст : 34
Откуда : Красноярск

Посмотреть профиль http://www.freebasic.su

Вернуться к началу Перейти вниз

Re: IDE для FreeBasic'a - FbEdit

Сообщение  tux в Чт Авг 21, 2008 7:29 am

наскока я помню, то они закрыты, а если не сектрет то зачем они?
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: IDE для FreeBasic'a - FbEdit

Сообщение  tux в Чт Авг 21, 2008 7:31 am

по большому счету это обычный текстовый редактор с подсветкой синтаксиса, ну и небольшими приблудами для удобства.
А исходников текстовых редакторов дофига на любой вкус
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: IDE для FreeBasic'a - FbEdit

Сообщение  Замабувараев в Пн Авг 25, 2008 10:52 am

FBEdit - не совсем обычный текстовый редактор, он позволяет визуально редактировать окна, расставлять на них контролы, в документации есть примеры начального уровня, которые позволяют создавать простые программы. Очень рекомендую к изучению. Кстати, есть всплывающие подсказки, как в VB при наборе кода. Вводишь какой-нибудь оператор, а FBEdit выдаёт раскрывающийся список параметров. Удобная штука.
avatar
Замабувараев

Сообщения : 99
Дата регистрации : 2008-08-20
Возраст : 34
Откуда : Красноярск

Посмотреть профиль http://www.freebasic.su

Вернуться к началу Перейти вниз

IDE для FreeBasic'a - FbEdit

Сообщение  electrik в Пт Сен 05, 2008 11:13 pm

привет. вот вам исходники от FbEdit
http://www.filehoster.ru/files/bp0526
скорее всего они перестали их давать, или лучше надо покопатся по папкам.
у меня давно была версия 1.0.4.0, и там в папке projects, лежали исходники. к сожалению оригинального архива у меня не осталось, просто я незрячий,
а эта прога графическая, и кнопки графические, тоесть, с клавиатуры их на форму не добавить, как в visual basic, вот и грохнул все, а исходники оставил- мало-ли они кому пригодятся. все написано на FreeBasic, а окна сделаны на самом FbEdit. если кто переделает это на клавиатуру, многие незрячие будут благодарны, а то ручками окна пишеш больше чем программу.

electrik

Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 37
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург

Посмотреть профиль

Вернуться к началу Перейти вниз

FbEdit

Сообщение  trew в Пт Окт 15, 2010 5:57 am

Из возможных редакторов для FreeBasic, больше всего понравился FbEdit. Кто-то использует свою подсветку в редакторе? Я не зная языка, теряюсь сделать свою, а привыкать желательно сразу... Если не жалко, может кто из знающих скинет свои настройки расцветки. И еще вопрос: FbEdit не подсвечивает API ? Или это только у меня баг? Есть другая версия на форуме редактора:
FBEdit Bundle. Этот редактор очень хорошо подсвечивает, но он без встроенного дебагера и на английском. Да и еще много чего не хватает по сравнению с простым FbEdit.

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: IDE для FreeBasic'a - FbEdit

Сообщение  trew в Сб Окт 23, 2010 11:00 am

На первых порах, пока идет обучение синтаксиса языка, просто необходимо постоянно просматривать результаты работы функций или операторов. Можно конечно использовать Print + sleep. Но мне больше нравится Gui вариант. Поэтому захотелось сляпать свое окошко, которое по надобности будет выводить результаты. Не судите строго, я новичок, поэтому код выглядит сумбурно.

Пример работы:

Код:
#Include "MYST.bi"
Var Shared gg=777
Debug "Привет"
Debug 76767
Function wwww() As Integer   
   Debug "Free"+"Basic"
   Debug 5656565+747474
   Debug gg
End Function
wwww()

Результат работы примера:



Source:

1) Само окошко (комментировать ничего не стал, создано в VISG. Чуть только подредактировал):

Код:
''
'' Debugg.bas
''
'' 19:56:58 22-10-2010
''
'' Generated by VISG v.0.951
''
'' VISG: visual and smart GUI builder
'' Get the latest version of VISG at
'' http://mrhx.clan.su/
'' http://mrhx.ucoz.com/
''
'' Tested on FreeBASIC Compiler 0.18
''

#include once "windows.bi"
#include once "win/commctrl.bi"

'' names of window classes.
const WND_CLASS_NAME0 = "my_wnd_class_name_0"

'' identifiers.
const IDC_CHECK0    = 2000
const IDC_RICHEDIT0 = 2001

'' function prototypes.
declare sub register_classes
declare function message_loop as integer
declare function wnd_proc0(byval thiswnd as hwnd, byval message as uinteger, byval w_param as wparam, byval l_param as lparam) as lresult
declare function create_wnd0 as hwnd
declare sub create_wnd_content0(byval parent as hwnd)

'' global data.
dim shared instance as hmodule
dim shared h_font as HFONT

'' main code.
instance = GetModuleHandle(null)
InitCommonControls
LoadLibrary "RICHED20.DLL"
register_classes
h_font = CreateFont(-13, 0, 0, 0, FW_NORMAL, 0, _
         0, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, _
         DEFAULT_QUALITY, DEFAULT_PITCH or FF_DONTCARE, "Times New Roman")
create_wnd0
end message_loop

'' window procedure #0 [window].
function wnd_proc0(byval thiswnd as hwnd, byval message as uinteger, byval w_param as wparam, byval l_param as lparam) as lresult
   select case message
   case WM_COMMAND
      select case loword(w_param)
      case IDC_CHECK0   '' checkbox "Поверх всех окон"
         if IsDlgButtonChecked(thiswnd, IDC_CHECK0) = BST_CHECKED then
            SetWindowPos(thiswnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE)
         else
            SetWindowPos(thiswnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE)
         end if

      end select

   case WM_CREATE
      create_wnd_content0 thiswnd

   case WM_CLOSE
      'if IDYES = MessageBox(thiswnd, "Quit?", "Event", MB_YESNO or MB_ICONQUESTION) then
         DestroyWindow thiswnd
      'end if

   case WM_DESTROY:
      PostQuitMessage 0   '' PostQuitMessage(return_code) quits the message loop.

   case else
      return DefWindowProc(thiswnd, message, w_param, l_param)
   end select
   return 0
end function

'' create window #0 [window].
function create_wnd0 as hwnd
   dim wnd as hwnd
   wnd = CreateWindowEx(&h00000100, WND_CLASS_NAME0, "Debug", &h14CF0000, 870, 50, 200, 300, null, null, instance, null)
   ShowWindow wnd, SW_SHOWNORMAL
   UpdateWindow wnd
   SetWindowPos(wnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE)
   return wnd
end function

'' create window content #0 [window].
sub create_wnd_content0(byval parent as hwnd)
   dim wnd as hwnd
   wnd = CreateWindowEx(&h00000200, "RICHEDIT20A", "", &h503110C4, 0, 0, 184, 238, parent, cast(hmenu, IDC_RICHEDIT0), instance, null)
   SendMessage wnd, WM_SETFONT, cast(wparam, h_font), TRUE
   wnd = CreateWindowEx(&h00000000, "Button", "Поверх всех окон", &h50010003, 2, 241, 143, 19, parent, cast(hmenu, IDC_CHECK0), instance, null)
   SendMessage wnd, WM_SETFONT, cast(wparam, h_font), TRUE
   SendMessage wnd,BM_SETCHECK,cast(hmenu, IDC_CHECK0),TRUE
end sub

'' register all the window classes.
sub register_classes
   dim wc as WNDCLASS

   with wc
      .cbClsExtra    = 0
      .cbWndExtra    = 0
      .hbrBackground = cast(hbrush, COLOR_3DFACE + 1)
      .hCursor      = LoadCursor(null, byval IDC_ARROW)
      .hIcon        = LoadIcon(null, byval IDI_APPLICATION)
      .hInstance    = instance
      .lpszMenuName  = null
      .style        = CS_PARENTDC or CS_DBLCLKS
   end with

   wc.lpfnWndProc  = @wnd_proc0
   wc.lpszClassName = strptr(WND_CLASS_NAME0)

   RegisterClass @wc
end sub

'' message loop.
function message_loop as integer
   dim message as MSG
   while (GetMessage(@message, null, 0, 0) <> false)
      TranslateMessage @message
      DispatchMessage @message
   wend
   DeleteObject h_font
   return message.wParam
end function

'' End of file.

2) статическая библиотека помещается в папку с компилятором "FreeBASIC\lib\win32"

Код:
#Include "windows.bi"

' Декларируем функцию вызова окна
declare function DebugRun__ alias "DebugRun__" () as Integer
' Декларируем 2 функции для посылаемых сообщений
declare function debug Overload (byval argum as string) as Integer
declare function debug Overload (byval argum as integer) as Integer
'Глобальная переменная- Хандле класса "EDIT"
Dim Shared  hedittion As Integer 

function DebugRun__() as integer Export
   ShellExecute(0,0,"D:\Freebasic\FBEditBundle\FreeBASIC\Debugg.exe",0,0,SW_SHOWNORMAL) 'запуск окна
  Sleep(100) ' Перед поиском этого окна необходимо, иначе не найдет окно
  Var  hwin=0 ' Идентификатор окна
  hwin = FindWindow(0,"Debug" ) ' Ищем окно
  If hwin <> 0    Then ' если найдено тогда
    hedittion=FindWindowEx(hwin,0,"RICHEDIT20A",0) 'Ищем EDIT
  End If
end Function
' функция для отправки строк
function debug(byval argum as string) as integer Export
  sendMessage(hedittion, EM_REPLACESEL,0,StrPtr(argum)) ' отправляем нужное в EDIT
  sendMessage(hedittion, EM_REPLACESEL,0,StrPtr(Chr(10))) ' Возврат каретки
end Function
' функция для отправки чисел
function debug(byval argum as integer) as integer Export
   Var argum1=Str(argum)+Chr(13)
  sendMessage(hedittion, EM_REPLACESEL,0,StrPtr(argum1))
end Function

3) Файлик MYST.bi помещается в папку с компилятором FreeBASIC\inc

Код:
#Include "windows.bi" 'Чтобы в прогах не писать лишнюю строку
#Inclib "macrosDebbug"
declare function DebugRun__ alias "DebugRun__" () as integer
DebugRun__()
declare function debug Overload (byval argum as string) as Integer
declare function debug Overload (byval argum as integer) as Integer

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: IDE для FreeBasic'a - FbEdit

Сообщение  mshak в Вс Янв 09, 2011 10:58 pm

Предложу свой вариант отладки, может кому и пригодится:
при подключенном
Код:

#Include once "windows.bi"
использовать
Код:

outputdebugstring("test debug string")

вывод данной WinApi можно просмотреть с помощью программы DbgView (286kb) от Sysinternals.

=============================
а также маленький комментарий касательно русского языка в данной IDE.
данная проблема чаще всего возникает когда программы используют кодовую страницу 1252 вместо нужной нам 1251. Можно попробовать обмануть систему следующим образом (например так лечился фотошоп ранних версий): открываем редактор реестра и проходим в ветку
HKLM\SYSTEM\ControlSet001\Control\Nls\CodePage
ищем параметр "1252" и меняем его значение с "c_1252.nls" на "c_1251.nls"
перезагружаем компьютер, запускаем FBEdit и пробуем открыть какой либо проект с русским текстом.

mshak

Сообщения : 2
Дата регистрации : 2011-01-09

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: IDE для FreeBasic'a - FbEdit

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения