{"id":15148753,"url":"https://github.com/mse-org/mseide-msegui","last_synced_at":"2025-04-05T04:13:54.239Z","repository":{"id":48452166,"uuid":"182570080","full_name":"mse-org/mseide-msegui","owner":"mse-org","description":"MSEide is a Rapid Application Development IDE for platform independent rich GUI applications in the Pascal language. It comes with its own GUI toolkit called MSEgui. Binaries: https://github.com/mse-org/mseide-msegui/releases","archived":false,"fork":false,"pushed_at":"2024-10-09T00:14:39.000Z","size":52075,"stargazers_count":121,"open_issues_count":3,"forks_count":15,"subscribers_count":15,"default_branch":"main","last_synced_at":"2024-10-29T22:44:33.355Z","etag":null,"topics":["bgrabitmap","developer-tools","fpc","freebsd","freepascal","ide","linux","macos","netbsd","openbsd","pascal","rad","widgetset","windows"],"latest_commit_sha":null,"homepage":"","language":"Pascal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mse-org.png","metadata":{"files":{"readme":"README.TXT","changelog":null,"contributing":null,"funding":null,"license":"COPYING.GPL","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-21T18:44:47.000Z","updated_at":"2024-10-17T04:36:56.000Z","dependencies_parsed_at":"2024-03-31T05:24:16.959Z","dependency_job_id":"40ae99c5-fac7-4abc-ab8b-95bf08a4cfee","html_url":"https://github.com/mse-org/mseide-msegui","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mse-org%2Fmseide-msegui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mse-org%2Fmseide-msegui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mse-org%2Fmseide-msegui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mse-org%2Fmseide-msegui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mse-org","download_url":"https://codeload.github.com/mse-org/mseide-msegui/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247284951,"owners_count":20913704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bgrabitmap","developer-tools","fpc","freebsd","freepascal","ide","linux","macos","netbsd","openbsd","pascal","rad","widgetset","windows"],"created_at":"2024-09-26T13:22:32.517Z","updated_at":"2025-04-05T04:13:54.220Z","avatar_url":"https://github.com/mse-org.png","language":"Pascal","funding_links":[],"categories":["Pascal"],"sub_categories":[],"readme":"MSEide+MSEgui Pascal Cross Platform GUI Development System.\n\n2024-04-13 MSEgui Version 5.10.4.\nCopyright (c) 1999-2024 by Martin Schreiber and friends.\n\n- Compiles with FPC 2.6.4, 3.0.0, 3.0.2, 3.2.0, 3.2.2 or 3.3.1.\n- Compiles with FPC-LLVM 3.3.1.\n- For FreeBSD-x86_64, FreeBSD-i386,\n  Linux-x86_64, Linux-i386,\n  Linux-Rpi-arm32, Linux-Rpi-aarch64,\n  NetBSD-x86_64, NetBSD-i386,\n  OpenBSD x86_64, OpenBSD-i386,\n  Darwin-MacOs-x86_64,  Darwin-MacOs-aarch64,\n  Windows-i386, Windows-x86_64.\n- Links to xlib and gdi32, no external widget library needed.\n- Internal character encoding is utf-16.\n- Uses anti aliased fonts on Linux (Xft).\n- All screen drawing is double buffered.\n- Has docking forms and MDI.\n- Has embedded forms (similar to TFrame).\n- Has sophisticated database access components and data edit widgets.\n- Internationalization functionality with resource modules.\n- Report generator.\n- BGRABitmap graphic library compatible.\n\nIDE:\n- Integrated debugging.\n- Source code highlighting.\n- Source code navigation with support for include files.\n- Code completion for classes.\n- Procedures list.\n- Integrated visual form designer with source code update for components and\n  events.\n- Flexible and handy build system with switchable macros.\n- Visual form inheritance.\n- Integrated report designer.\n\nLicense:\nIDE and tools are under GPL, library under modified LGPL like FPC-RTL.\nPackage maintainers may delete the files \"apps/ide/COPYING.GPL\",\n\"lib/common/COPYING.LGPL\" and \"lib/common/COPYING.MSE\".\n\nInstallation:\n*************\n1. Download and install FPC, you can get it from \n   http://www.freepascal.org/download.var\n2. Download mseide_msegui from \n   https://github.com/mse-org/mseide-msegui/archive/master.zip\n3. Extract them to a directory of your choice ('yourdirectory') .\n4. Run 'yourdirectory/bin/mseide' on Linux and FreeBSD or\n   'yourdirectory\\bin\\mseide.exe' on windows.\n5. In 'Settings'-'Configure MSEide'-'${MSEDIR}' select 'yourdirectory/msegui'.\n6. In 'Project'-'Open' select 'yourdirectory/msegui/apps/demo/demo.prj'.\n7. 'Target'-'Continue'.\n\nIf you get the error \"/usr/bin/ld: cannot find -lX11\" install the\nlibX11-devel or libX11-dev package or make a symbolic link\n/usr/lib/libX11.so -\u003e /usr/lib/libX11.so.6\nsee\nhttps://bugs.freepascal.org/view.php?id=32367\n\nIf you wish to to compile the IDE:\n\n1. In 'Project'-'Open' select 'yourdirectory/msegui/apps/ide/mseide.prj'.\n2. 'Target'-'Continue'.\n\nCompiling MSEide from commandline on Linux and FreeBSD:\nfpc -Fulib/common/* -Fulib/common/kernel/linux apps/ide/mseide.pas\nOn Windows:\nfpc -Fulib\\common\\* -Fulib\\common\\kernel\\windows apps\\ide\\mseide.pas\n\nIf FPC crashes while compiling try on Linux and FreeBSD:\nfpc -B -Fulib/common/* -Fulib/common/kernel/linux apps/ide/mseide.pas\nOn Windows:\nfpc -B -Fulib\\common\\* -Fulib\\common\\kernel\\windows apps\\ide\\mseide.pas\n\nCreating a new GUI project\n**************************\n'Project'-'New'-'From Template', select \"default.prj\"\n\nCreating a new console project\n******************************\n'Project'-'New'-'From Template', select \"console.prj\"\n\nMSEgui command line parameters\n******************************\n--FONTALIAS=\u003calias\u003e,\u003cfontname\u003e[,\u003cfontheight\u003e[,\u003cfontwidth\u003e[,\u003coptions\u003e[,\u003cxscale\u003e]\n                              [,\u003cancestor\u003e]]]]\n Change the used fonts. Example for a 16 pixel height default font:\n --FONTALIAS=stf_default,,16\n\n--NOZEROLINES\n Use 1-width lines instead of 0-width lines. X11 only. Workaround for buggy HW-accelerated\n X-servers which don't draw lineends exactly. Can degrade performance, see\n https://bugzilla.opensuse.org/show_bug.cgi?id=1021803\n\n--NOZORDERHANDLING\n Do not touch Z-order of the windows.\n\n--NORESTACKWINDOW\n Do not use the NET_RESTACK_WINDOW protocol.\n\n--RESTACKWINDOW\n Use the NET_RESTACK_WINDOW protocol.\n\n--NORECONFIGUREWMWINDOW\n Do not use xreconfigurewmwindow() for window stacking operation.\n\n--RECONFIGUREWMWINDOW\n Use xreconfigurewmwindow() for window stacking operation.\n\n--STACKMODEBELOWWORKAROUND\n Necessary for windowmanagers with buggy xreconfigurewmwindow() handling.\n\n--NOSTACKMODEBELOWWORKAROUND\n No workaround.\n\n--TOPLEVELRAISE\n Use the top level frame window id instead of the application client window id\n for window raise operation. Implies --NORESTACKWINDOW and\n --NORECONFIGUREWMWINDOW.\n\n--NOSTATICGRAVITY\n Simulates staticgravity for buggy window managers.\n\nMSEide command line parameters\n******************************\n-np\n Do not load a project.\n\n-ns\n Do not use a skin, no fades.\n\n--globstatfile=\u003cfilepath\u003e\n Use \u003cfilepath\u003e instead the default global MSEide status file.\n\n--macrogroup=\u003cn\u003e\n Use 'Project'-'Options'-'Macros'-'Active group' number \u003cn\u003e, \u003cn\u003e = 1..6.\n\n--macrodef=\u003cname\u003e,\u003cvalue\u003e{,\u003cname\u003e,\u003cvalue\u003e}\n Macro definition, will be overridden by 'Project'-'Options'-'Macros'. Example:\n --macrodef=MAC1,abc,MAC2,def\n defines ${MAC1} with value 'abc' and ${MAC2} with value 'def'.\n--storeglobalmacros\n Store --macrodef defines as global 'Settings'-'Configure MSEide' macros and\n terminate MSEide.\n\nMSEide environment variables\n****************************\nMacros in 'Settings'-'Configure MSEide' can be overridden by environment\nvariables. They will be overriden by --macrodef and 'Project'-'Options'-'Macros'.\nPossible names:\nFPCDIR, FPCLIBDIR, MSEDIR, MSELIBDIR, SYNTAXDEFDIR, TEMPLATEDIR,\nCOMPSTOREDIR, COMPILER, DEBUGGER, EXEEXT, TARGET, TARGETOSDIR.\n\nMSEide project macros\n*********************\nPredefined project macros:\nPROJECTNAME, PROJECTDIR, MAINFILE, TARGETFILE,\nTARGETENV (in format for \"env\" unix command), TARGETPARAMS,\nthey can be overridden by 'Project'-'Options'-'Macros'.\n\nMSEide macro functions\n**********************\n${MAC_IFDEF(macroname)} returns the macro value if defined.\n${MAC_IFDEF(macroname,notdefinedvalue)} returns the macro value if defined,\n notdefinedvalue otherwise.\n${MAC_IFDEF(macroname,notdefinedvalue,definedvalue)}\n returns definedvalue if macroname is defined, notdefinedvalue otherwise.\n\nMSEide environment macros\n*************************\n${ENV_VAR(variablename)} returns the variable value if defined.\n${ENV_VAR(variablename,notdefinedvalue)} returns the variable value if defined,\n notdefinedvalue otherwise.\n${ENV_VAR(variablename,notdefinedvalue,definedvalue)}\n returns definedvalue if variablename is defined, notdefinedvalue otherwise.\n\nMSEide string macros\n********************\nMacro format is ${STR_*(text)}.\nSTR_TRIM\n Trim whitespace from the ends of text.\nSTR_TRIMLEFT\n Trim whitespace from the beginning of text.\nSTR_TRIMRIGHT\n Trim whitespace from the end of text.\n\nSTR_COALESCE\n Return first not empty value. Format is\n ${STR_COALESCE(text[,text...])} or\n ${STR_COALESCE(\"text\"[,\"text\"...])}\n\nMSEide file macros\n******************\nMacro format is ${FILE_*(fileparameter)} or ${FILE_*(\"fileparameter\")}.\nFILE_MSE       convert to MSE format.\nFILE_SYS       convert to sys format.\nFILE_PATH      absolute path.\nFILE_FILE      no trailing path delimiter.\nFILE_DIR       trailing path delimiter.\nFILE_NAME      no directory part.\nFILE_NAMEBASE  no directory and no name extension part.\nFILE_EXT       file name extension.\nFILE_NONAME    directory part only.\nFILE_NOEXT     no file name extension.\n\nMSEide exec macros\n******************\n${EXEC_OUT(commandline[,timeoutms])}\n Executes commandline, returns the process output. Timeout in\n milli seconds, default = 1000, -1 = infinite.\n\nMSEide macros in 'Project'-'Options'-'Debugger'-'xterm Command'\n***************************************************************\n${PTS} expands to tty pts path.\n${PTSN} expands to tty pts number.\n${PTSH} expands to tty pts handle.\nEntering an empty string restores the default.\n\nMSEide external tools parameters macros\n***************************************\nPredefined macros in 'Project'-'Options'-'Tools'-'Parameters':\nCURSOURCEFILE current source file.\nCURMODULEFILE current *.mfm file.\nCURSSELECTION selected text in source editor.\nCURSWORD word at cursor in source editor\nCURSDEFINITION} definition of the current token at cursor\n (Ctrl+LClick destination), needs activated P-column\n (Parse source before call) to be current.\nCURCOMPONENTCLASS current selected component class in form editor.\nCURPROPERTY current selected property in object inspector.\n\nAntialiased text with MSEgui 32 bit on 64 bit Linux\n****************************************************\nMSEgui uses Xft for antialiased fonts on Linux. Please install lib32-libxft\npackage if necessary.\n\nPopup widgets behind the forms\n******************************\nIf the popup widgets are showed behind the forms, try to start the\nMSEgui program with the option '--TOPLEVELRAISE'. Do *not* use this option\nif is not necessary (KDE, Gnome... work well without).\n\nDisplay problems with Linux radeon and other EXA drivers\n********************************************************\nIf the display is distorted or slow add\nOption \"EXAPixmaps\" \"off\"\nto\nSection \"Device\"\nof xorg.conf, see\nhttps://bugs.freedesktop.org/show_bug.cgi?id=69543\nhttps://bugs.freedesktop.org/show_bug.cgi?id=84253\nor use the proprietary video driver for your video chip.\n\nFlashing taskbar widgets in IceWM\n*********************************\nNewer revisions of IceWM let the taskbar icons of MSEgui applications flash.\nStart the MSEgui application with the option '--TOPLEVELRAISE'.\n\nInvalid inputmanager for Ubuntu\n*******************************\nThe utf-8 setup in Ubuntu seems to be incomplete. If you get the exception\n\"egui : Invalid inputmanager tinternalapplication .\" at program start, try to\nreplace your language locale in /usr/share/X11/locale/locale.dir\nby en_US as a workaround. Example for ru_RU.UTF-8:\nreplace\nru_RU.UTF-8/XLC_LOCALE ru_RU.UTF-8\nby\nen_US.UTF-8/XLC_LOCALE ru_RU.UTF-8\n\nWrong window positions for Ubuntu 14.04\n***************************************\nWindow positions in Unity are wrong because the Ubuntu windowmanager\ndoes not support static_gravity:\nhttp://askubuntu.com/questions/451903/wingravity-static-gravity-not-suppo\nhttps://bugs.launchpad.net/ubuntu/+bug/1312044\nhttp://askubuntu.com/questions/457456/wingravity-static-gravity-not-supported-in-14-04\n\nHow to add custom components to MSEide\n**************************************\nThere is a project 'apps/myide/mymseide.prj' as a demo.\nStart MSEide, open project 'apps/myide/mymseide.prj', 'Project'-'Build',\n'Target'-'Continue',\nthe IDE with the new component 'tmybutton' will be compiled and\nstarted in the the debugger.\nBinary name is 'mymseide' (linux) or 'mymseide.exe' (win32).\n\nIf you wish to do it from scratch:\n\n- Create a register unit for your components\n  (see 'apps/myide/regmycomps.pas' for an example).\n- Enter the unitname followed by a comma\n  ('myregunit,' if your regunitfile is 'myregunit.pas') in\n  a file named 'regcomponents.inc'.\n- Build the IDE with -dmorecomponents as option.\n\nComponent units integrated by this mechanism don't need to be GPL, see\napps/ide/COPYING.IDE\n\nIf you want to add custom icons to your components:\n\n- Convert 24*24 pixel BMP or PNG files with tools/bmp2pas to\n  an icon unit ('*_bmp.pas').\n- Add the name of the icon unit to 'uses' in your register unit.\n\nHow to run i18ndemo\n*******************\n- Start MSEide.\n- 'Project'-'Open'-'yourdirectory/msegui/apps/i18ndemo/i18ndemo.prj'.\n- 'Project'-'Make' to create the rsj files.\n- 'Project'-'Open'-'yourdirectory/msegui/tools/i18n/msei18n.prj'.\n- 'Target'-'Continue'.\nIn MSEi18n:\n - Adjust 'Settings'-'Configure MSEi18n'-'${MSEDIR}' and ${COMPILER}.\n - 'Open'-'yourdirectory/msegui/apps/i18ndemo/i18ndemo.trp'\n - 'Make'.\n - Close message window.\n - Close MSEi18n.\n- 'Project'-'Open'-'yourdirectory/msegui/apps/i18ndemo/i18ndemo.prj'.\n- 'Target'-'Continue'.\n\nSQLite\n******\ntsqlite3connection field type mapping:\n\n      Type name        SQLite storage class  Field type    Data type\n+--------------------+---------------------+-------------+-------------+\n| INTEGER or INT     | INTEGER 4           | ftinteger   | integer     |\n| LARGEINT           | INTEGER 8           | ftlargeint  | largeint    |\n| BIGINT             | INTEGER 8           | ftlargeint  | largeint    |\n| WORD               | INTEGER 2           | ftword      | word        |\n| SMALLINT           | INTEGER 2           | ftsmallint  | smallint    |\n| BOOLEAN            | INTEGER 2           | ftboolean   | wordbool    |\n| FLOAT[...] or REAL | REAL                | ftfloat     | double      |\n| or DOUBLE[...]     |                     |             |             |\n| CURRENCY           | REAL                | ftcurrency  | double!     |\n| DATETIME or        | REAL                | ftdatetime  | tdatetime   |\n|  TIMESTAMP         |                     |             |             |\n| DATE               | REAL                | ftdate      | tdatetime   |\n| TIME               | REAL                | fttime      | tdatetime   |\n| NUMERIC[...]       | INTEGER 8 (*10'000) | ftbcd       | currency    |\n| VARCHAR[(n)]       | TEXT                | ftstring    | msestring   |\n| TEXT               | TEXT                | ftmemo      | utf8 string |\n| TEXT               | TEXT dso_stringmemo | ftstring    | msestring   |\n| BLOB               | BLOB                | ftblob      | string      |\n+--------------------+---------------------+-------------+-------------+\n\nZeosLib\n*******\nIn order to install the Zeos components add the path to the Zeos source to\n'Project'-'Options'-'Make'-'Directories' and compile the IDE with\n-dmse_with_zeoslib -dMSEgui.\nThere is a predefined IDE project apps/ide/mseide_zeos.prj, update 'Project'-\n'Options'-'Macros' according to your installation.\n\nCrosscompiling and remote debugging i386/x84_64-linux -\u003e arm-linux\n***********************************************************\nFor Raspberry Pi:\n- Establish a ssh login without password (public key authentication).\n\nOn the i386/x84_64-linux host:\n- install the scp program\n- download and extract\n  https://sourceforge.net/projects/mseide-msegui/files/fpcrossarm/crossfpc-i386_linux_eabihf_3_0_5.tar.gz\n  (or crossfpc-x86_64_linux_eabihf_3_0_5.tar.gz)\n  to \u003cyour crossfpc directory\u003e.\n\n- Start MSEide, in 'Settings'-'Configure MSEide'-'Global Macros' add:\n\nName            Value\n\nCROSSMSEDIR     \u003cMSEide+MSEgui directory\u003e\nCROSSFPCDIR     \u003cyour crossfpc directory\u003e\nCROSSFPCVERSION 3.0.5\nHOSTIP          \u003cthe IP address of the host\u003e\nREMOTEIP        \u003cthe IP address of the remote target\u003e\nREMOTEPORT      \u003cthe remote port, ex: 2345\u003e\nREMOTEUSER      pi\n\n- 'Project'-'New'-'From Template', select \"crossarmdefault.prj\" or\n  \"crossarmconsole.prj\".\n- Create the new project.\n- 'Project'-'Options'-'Macros', set the TARGETPROJECTDIR value to the project\n  path in remote target, ex: \"/home/pi/proj/testcase\".\n- Check the TARGETENV macro.\n- If your application needs additional libraries copy them from Raspberry Pi\n  /lib/arm-linux-gnueabihf or /usr/lib/arm-linux-gnueabihf to\n  \u003cyour crossfpc directory\u003e/eabihf/lib\n\nPress F9 and hope the best. ;-)\n\nIf there is a debugger timeout at startup enlarge the\n'Project'-'Options'-'Debugger'-'Target'-'Wait before connect' value.\n\nHave a lot of fun!\n\nMartin\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmse-org%2Fmseide-msegui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmse-org%2Fmseide-msegui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmse-org%2Fmseide-msegui/lists"}