FreeBasic IDE-poseidonFB(Update 2024.03.03)

User projects written in or related to FreeBASIC.
Post Reply
dodicat
Posts: 7983
Joined: Jan 10, 2006 20:30
Location: Scotland

Re: FreeBasic IDE-poseidonFB(Update 2017.09.30)

Post by dodicat »

Imortis
??
don't understand you.
(FreeBASIC crashes when compiling very large programs) is the thread name where the code originated.
I know that Kuan Hsu is using D for the ide.
I bring to his attention that the #lang "qb" code (Probably the data section) is not properly handled in his ide.
Imortis
Moderator
Posts: 1924
Joined: Jun 02, 2005 15:10
Location: USA
Contact:

Re: FreeBasic IDE-poseidonFB(Update 2017.09.30)

Post by Imortis »

dodicat wrote:Imortis
??
don't understand you.
(FreeBASIC crashes when compiling very large programs) is the thread name where the code originated.
I know that Kuan Hsu is using D for the ide.
I bring to his attention that the #lang "qb" code (Probably the data section) is not properly handled in his ide.
Oh! I am so sorry. I did not realize that way what you were saying. That is what I get for reading posts before I have had my coffee.
WQ1980
Posts: 48
Joined: Sep 25, 2015 12:04
Location: Russia

Re: FreeBasic IDE-poseidonFB(Update 2017.09.30)

Post by WQ1980 »

Kuan Hsu

1) Updated file Russian.lng
http://www.mediafire.com/file/ar09aod7a ... ussian.zip

2)Problem with arrangement of buttons \ labels
Labels do not fit
screenshot
http://www.mediafire.com/view/qni9qo17qdo02bt/000.jpg#

Russian language, Windows 7 x64, scale screen 125%
default font Segoe UI, fontsize 9, 120 pixels per inch
Kuan Hsu
Posts: 586
Joined: Sep 16, 2007 15:12
Location: Taiwan

Re: FreeBasic IDE-poseidonFB(Update 2017.09.30)

Post by Kuan Hsu »

dodicat wrote:Kuan Hsu
From the general section FreeBASIC crashes when compiling very large programs
OK in lang "fb"

Code: Select all



screenres 128,96,32
dim as any ptr _HANDLE
_HANDLE = imagecreate(128,96)
dim as long Y,A,B,xcolour,x
dim as string AA,xcolor
Y = 48: FOR A = 1 TO 161
    READ AA
    IF VAL(AA) = 0 THEN
        FOR B = 1 TO LEN(AA)
            SELECT CASE MID(AA, B, 1)
                CASE "#" : xcolor = "FFCD"
                    CASE "$" : xcolor = "CCCD"
                    CASE "%" : xcolor = "3334"
                    CASE "&" : xcolor = "3367"
                    CASE "'" : xcolor = "339A"
                    CASE "(" : xcolor = "669A"
                    CASE ")" : xcolor = "99CC34"
                    CASE "*" : xcolor = "99CC67"
                    CASE "+" : xcolor = "336601"
                    CASE "{" : xcolor = "CCCC34"
                    CASE "|" : xcolor = "660001"
                    CASE "}" : xcolor = "CC6601"
                    CASE "~" : xcolor = "FFCC34"
                    CASE "" : xcolor = "FF9934"
                    CASE "€" : xcolor = "1000000"
                    CASE "" : xcolor = "CCCCCD"
                    CASE "‚" : xcolor = "99999A"
                    CASE "ƒ" : xcolor = "99669A"
                    CASE "„" : xcolor = "9999CD"
                    CASE "…" : xcolor = "666667"
                    CASE "†" : xcolor = "CCCD00"
                    CASE "‡" : xcolor = "333301"
                    CASE "ˆ" : xcolor = "330001"
                    CASE "‰" : xcolor = "666634"
                    CASE "Š" : xcolor = "333334"
                    CASE "‹" : xcolor = "996667"
                    CASE "Œ" : xcolor = "66669A"
                    CASE "" : xcolor = "663301"
                    CASE "Ž" : xcolor = "663334"
                    CASE "" : xcolor = "CC999A"
                    CASE "" : xcolor = "FFCD00"
                    CASE "‘" : xcolor = "9966CD"
                    CASE "’" : xcolor = "CC99CD"
                    CASE "“" : xcolor = "CD0000"
                    CASE "”" : xcolor = "99CCCD"
                    CASE "•" : xcolor = "33999A"
                    CASE "–" : xcolor = "66CD00"
                    CASE "—" : xcolor = "CCFFCD"
                    CASE "˜" : xcolor = "9A0000"
                    CASE "™" : xcolor = "FFCCCD"
                    CASE "š" : xcolor = "6699CD"
                    CASE "›" : xcolor = "66999A"
                    CASE "œ" : xcolor = "FFFF01"
                    CASE "" : xcolor = "FF0100"
                    CASE "ž" : xcolor = "99CD00"
                    CASE "Ÿ" : xcolor = "66CCCD"
                    CASE " " : xcolor = "33669A"
                    CASE "¡" : xcolor = "336667"
                    CASE "¢" : xcolor = "CC9A00"
                    CASE "£" : xcolor = "3399CD"
                    CASE "¤" : xcolor = "3366CD"
                    CASE "¥" : xcolor = "339A00"
                    CASE "¦" : xcolor = "333367"
                    CASE "§" : xcolor = "999A00"
                    CASE "¨" : xcolor = "6666CD"
                    CASE "©" : xcolor = "669A00"
                    CASE "ª" : xcolor = "33CCCD"
                    CASE "«" : xcolor = "33339A"
                    CASE "¬" : xcolor = "CC9967"
                    CASE "­" : xcolor = "CCCC9A"
                    CASE "®" : xcolor = "FFCC9A"
                    CASE "¯" : xcolor = "996634"
                    CASE "°" : xcolor = "FFFFCD"
                    CASE "±" : xcolor = "66CC9A"
                    CASE "²" : xcolor = "669967"
                    CASE "³" : xcolor = "670000"
                    CASE "´" : xcolor = "330034"
                    CASE "µ" : xcolor = "FF9967"
                    CASE "¶" : xcolor = "999967"
                    CASE "·" : xcolor = "CC9934"
                    CASE "¸" : xcolor = "336634"
                    CASE "¹" : xcolor = "33CD00"
                    CASE "º" : xcolor = "99CC9A"
                    CASE "»" : xcolor = "339967"
                    CASE "¼" : xcolor = "99FFCD"
                    CASE "½" : xcolor = "FFFF9A"
                    CASE "¾" : xcolor = "FFCC67"
                    CASE "¿" : xcolor = "336700"
                    CASE "À" : xcolor = "663367"
                    CASE "Á" : xcolor = "340000"
                    CASE "Â" : xcolor = "66339A"
                    CASE "Ã" : xcolor = "993367"
                    CASE "Ä" : xcolor = "666700"
                    CASE "Å" : xcolor = "FF999A"
                    CASE "Æ" : xcolor = "99339A"
                    CASE "Ç" : xcolor = "3333CD"
                    CASE "È" : xcolor = "993334"
                    CASE "É" : xcolor = "669901"
                    CASE "Ê" : xcolor = "CCCC67"
                    CASE "Ë" : xcolor = "33CC9A"
                    CASE "Ì" : xcolor = "CC6667"
                    CASE "Í" : xcolor = "CC669A"
                    CASE "Î" : xcolor = "CCFF9A"
                    CASE "Ï" : xcolor = "FFFF67"
                    CASE "Ð" : xcolor = "CCFF34"
                    CASE "Ñ" : xcolor = "FF99CD"
                    CASE "Ò" : xcolor = "CC6634"
                    CASE "Ó" : xcolor = "99FF34"
                    CASE "Ô" : xcolor = "99CC01"
                    CASE "Õ" : xcolor = "66FFCD"
                    CASE "Ö" : xcolor = "9A00"
                    CASE "×" : xcolor = "FF9A00"
                    CASE "Ø" : xcolor = "6667"
                    CASE "Ù" : xcolor = "999A"
                    CASE "Ú" : xcolor = "33FFCD"
                    CASE "Û" : xcolor = "CD00"
                    CASE "Ü" : xcolor = "CC66CD"
                    CASE "Ý" : xcolor = "6633CD"
                    CASE "Þ" : xcolor = "6634"
                    CASE "ß" : xcolor = "6700"
                    CASE "à" : xcolor = "99CD"
                    CASE "á" : xcolor = "999934"
                    CASE "â" : xcolor = "669934"
                    CASE "ã" : xcolor = "330067"
                    CASE "ä" : xcolor = "996700"
                    CASE "å" : xcolor = "666601"
                    CASE "æ" : xcolor = "CC3334"
                    CASE "ç" : xcolor = "33009A"
                    CASE "è" : xcolor = "FF6634"
                    CASE "é" : xcolor = "FF3334"
                    CASE "ê" : xcolor = "FF3301"
                    CASE "ë" : xcolor = "FF6700"
                    CASE "ì" : xcolor = "333400"
                    CASE "í" : xcolor = "FF0001"
                    CASE "î" : xcolor = "CC6700"
                    CASE "ï" : xcolor = "9933CD"
                    CASE "ð" : xcolor = "66009A"
                    CASE "ñ" : xcolor = "CC33CD"
                    CASE "ò" : xcolor = "3300CD"
                    CASE "ó" : xcolor = "9900CD"
                    CASE "ô" : xcolor = "33CD"
                    CASE "õ" : xcolor = "66CD"
                    CASE "ö" : xcolor = "99009A"
                    CASE "÷" : xcolor = "660067"
                    CASE "ø" : xcolor = "993400"
                    CASE "" : xcolor = "6600CD"
                    CASE " " : xcolor = "330100"
                    CASE "û" : xcolor = "CC3400"
                    CASE "ü" : xcolor = "CC00CD"
                    CASE "ý" : xcolor = "663400"
                    CASE "þ" : xcolor = "993301"
                    CASE "ÿ" : xcolor = "996601"
            END SELECT
            xcolour = VAL("&H" + xcolor)
            PSET(x, y), (0 - xcolour)
            x = x + 1: IF x > 64 THEN x = 0: y = y - 1
        NEXT B
        ELSE
        xcolour = VAL("&H" + AA)
        PSET(x, y), (0 - xcolour)
        x = x + 1: IF x > 64 THEN x = 0: y = y - 1
    END IF
NEXT A

get(0, 0)-(127, 95), _HANDLE
put(0,0),_HANDLE,trans

sleep

imagedestroy _HANDLE
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
DATA "€€€€††††„†§††§„„§„„†††¢†ž„¢††§„§„†§§§„§„§§„„§§„¨§§§„„§§§„„€€€",1
DATA "€€€€††††§†„„§§†††††„„†‘§„†§§Œ¢§„§§ž¨¨¨§§„„¨¨¨¨¨¨„¨¨¨¨§„„„„š§„€€€",1
DATA "€€€€††††††††§§§§§¢†„„„§†††§§§§„§„„„§„„„„„„¨¨Œ„§„Œ„¨¨§„¨„„§„¢„€€€",1
DATA "€€€€†††§§¢§†§„„§§§§§Â¢§„†„§§„„«„„„„„„„„„¨„„¨„„„¨„„§„‘§„¨„„„„€€€",1
DATA "€€€€žžš††ž†„„§„†‘Œ„§„„„†Œ¢„„„„„„„„†„„„š„„„¨„¨„„§„„§„„„„„§„§„€€€",1
DATA "€€€€ž§§§†„ž††„†§„Œ„†§†„§†„§„††§„Œ¨„š„„„Œ¨„„§„„„§„„„††„„„„¨„††€€€",1
DATA "€€€€©¨¨§¨§§§§¨§†„„†††„„„„„„„§§§„¨§„„„„§„¢†††„„„„„†††„’„„„„€€€",1
DATA "€€€€©©š§¨¨¨¨§§§§„‘Œ§„†§Œ„§„¨„¨„„§„„„§§„„††††„„†¢„†††††„„„„„€€€",1
DATA "€€€€§©§¨Ä¨¨¨¨§¨§§„„ž§§§§§Œ„„š§„„§„„„„„„„†„„„„„”„†„††‚‚€€€",1
DATA "€€€€¨Ä§Œ¨¨Œ«„¨¨¨„„„§§„§„„„„Œ„„„„§„„„„„†§‚†Œ„„„„„„„”††††††€€€€€€",1
DATA "€€€€Ä¨§¨¨««Œ¦Œ¦«¨Œ¨§¨§§§„„„„„§„„„„†††††„„‚‚„„°°°°€€€€",1
DATA "€€€€¨¨¨¤¨§„‘Œ„†„««¨«Ç¨¨¨¨„žž„†ž„†††††††‚†‚„‚‚‚„”™™™™€€€",1
DATA "€€€€¨¨¤¤¤¤¤¨¨Ç©©§§©¨¦¦¦À«¨¨§§§„§††”††„†‚‚‚Œ›„„”””‚€€€",1
DATA "€€€€§š¨¤¤¤¤¤ÇǤ¤¨¨¨Ä„„Œ¦«Œ¨¨§„„ž†“††“€€”„†‚ŒŒŒ‚„„„”™€€€€",1
DATA "€€€€„„„„‚‚‚‚’’’’’’’’„„‚ƒƒ…ŒŒŒ„„„††€†“†††„Œ…ŒŒ‚„‚‚”†™€€€€",1
DATA "€€€€†††††’‚ƒ‹…À¦Àƒ‚’’ŒŒ„‘„„†††’†Œ„¡……ŒŒ„„‚””„„„€€€",1
DATA "€€€€€€€’„„„„ŒŒ¦¦ÀŒŒƒƒ„„„’’’†††ž““†„Œ„¡…ÀŒŒ„„‚”„„”„€€€",1
DATA "€€€€€††††’†††’„„„„’’’’„†žž†”Œ‚‚¡…ÀŒŒ„”››„„”€€€",1
DATA "€€€€†††€†„’’™™™™€™™€€””šžž””ŒŒ‚…ÀÀŒŒ„”Œ‚„‚”™€€€",1
DATA "€€€€€†††’†††™™„”šž„ž”›ŒŒ…ÀÀŒŒ‚”ŒŒ”„™€€€",1
DATA "€€€€’’’’’‚”””„Œš„„„””…‚ŒÀÀŒ„„”…„›”†€€€",1
DATA "€€€€’’‚‚‚„”””„Œ„„„”Œ„›ÀÀ„„”„…’„†”†€€€",1
DATA "€€€€‚’‚’””ƒŒ‘Œ¨„”„ƒŒÀÀ„‚…‚†††„„†€€€",1
DATA "€€€€‚„„”ŒŒƒŒ‘„††…‚¦ÀŒ†ŒŒ„††††›‚††€€€",1
DATA "€€€€‚‚‚„ŒŒŒŒš„††…¦¦¡††…›†‚‚†€€€",1
DATA "€€€€™™ƒŒ„„Œ…ŒŒ¨§¨§†‚Œ„”††¡„††††”Œ‚†€€€",1
DATA "€€€€™™‚‹‚„…ŒŒšžšž†„žž†††…††††‚†€€€",1
DATA "€€€€™™™™™™™™…ƒ’…Œ„„„žžÀÀ”Œ…„†›†††††Œ„”†€€€",1
DATA "€€€€Œ‚”„ŒŒšžŒŒ¦…Œ¦¦Œžš†††”„†„„”†€€€",1
DATA "€€€€„Œ›„Œ„†ŒŒŒ¦¦ÂŒžš†††¡Œ„†„††€€€",1
DATA "€€€€„‚‚„””‚‚†ŒŒ„ÀÀƒ’„ƒ¦„ŒŒ„†††Œ¦›„‚††€€€",1
DATA "€€€€‚‚‚‚‚›‚‚‚‚„À‚Œ¦¦À„ÀŒ€€¦ŒŒ …††††›Œ„„††€€€",1
DATA "€€€€‚‚‚”‚Œ›‚‚Œ››Œ›››‚„…„Œ¨ Œ¦ š““€‚Œ›„†††”…›”†“€€€",1
DATA "€€€€„„‚”›…›‚‚ŒŒŒŒ››‚‚”…À¦š À¦šž““€‚ž††”††„…„†”“€€€",1
DATA "€€€€‚‚‚Œ„›¡¡Œ…„‚‚‚›‚‚‚”¡&Œ¦ã¦š“†††‚„†„„„žž†‚†€€€",1
DATA "€€€€”„‚…Œ¡Œ¡¡…›‚Œ„„„„”„””š›¦¦¦¦š“†††…”“”„†ž†‚€€€",1
DATA "€€€€”„‚„‚›…¦…Œ¡‚‚‚‚„”‚„”””…ŠŠ¦¡„††††…††††”†„‚†€€€",1
DATA "€€€€”‚„„„…¡Œ›Œ›‚‚”‚‚””„„””†„††††“†††††††”††¦„†„€€€",1
DATA "€€€€”‚‚„‚ŒŒ‚‚Œ¦‚‚„„…Œ„„‚„””””„†††††€†”‚†…€€€€",1
DATA "€€€€”‚‚‚‚‚‚‚›‚‚Œ…‚‚‚¦¦¡Œ‚‚”””„„„„”††††€€““„“††€†€€€",1
DATA "€€€€„„‚ŒŒŒŒ›ŒŒŒŠ……ŒŒ¦¦„„„„„‚„‚‚Š%›††††“““„†“†††€€€€€",1
DATA "€€€€”„‚‚‚‚ŒŒŒŒŒŒ………Œ…¡‚„ŒŒ‚›…Œ‚”‚†††††††“‚†††““†“€€€€€",1
DATA "€€€€„„”„„‚ŒŒŒŒŒ…………ŒŒ‚„„¡ŒŒ……„‚””†††††††††„†††“†”††”€€€€",1
DATA "€€€€„‚ŒŒŒŒ…………………ŒŒŒ…ŒŒ…………‚”„„†††††††††††††”†††€€€",1
DATA "€€€€”„‚‚‚›……ŒŒ…¡¡¦Œ…¡…Œ‚¡…„›…‚„††††††††††“€€€€",1
DATA "€€€€„‚„„‚‚‚Œ…¡…Œ¡¡Œ¦…Œ‚›Œ‚”„„‚„”„†††††”†††††††“€€€€",1
DATA "€€€€„„„‚„‚„‚‚…¡¡……¦¦¦¦Œ„”””””„Œ¡Œ›‚‚††††††††††€††€€€€",1
DATA "€€€€„‚„‚„Œ„‚‚…¦¦……¦¦…ŒŒ„””””›Œ„¦……‚”†††††††††“†€€€€€€€",1
  
Doesn't show properly in lang "qb"

Code: Select all


#lang "qb"

'SCREEN _NEWIMAGE(128, 96, 32)
__screenres 128,96,32
dim as any __ptr _HANDLE
_HANDLE = __imagecreate(128,96)'_NEWIMAGE(64, 48, 32)
'_DEST _HANDLE
Y = 48: FOR A = 1 TO 161
    READ A$
    IF VAL(A$) = 0 THEN
        FOR B = 1 TO LEN(A$)
            SELECT CASE MID$(A$, B, 1)
                CASE "#" : xcolor$ = "FFCD"
                    CASE "$" : xcolor$ = "CCCD"
                    CASE "%" : xcolor$ = "3334"
                    CASE "&" : xcolor$ = "3367"
                    CASE "'" : xcolor$ = "339A"
                    CASE "(" : xcolor$ = "669A"
                    CASE ")" : xcolor$ = "99CC34"
                    CASE "*" : xcolor$ = "99CC67"
                    CASE "+" : xcolor$ = "336601"
                    CASE "{" : xcolor$ = "CCCC34"
                    CASE "|" : xcolor$ = "660001"
                    CASE "}" : xcolor$ = "CC6601"
                    CASE "~" : xcolor$ = "FFCC34"
                    CASE "" : xcolor$ = "FF9934"
                    CASE "€" : xcolor$ = "1000000"
                    CASE "" : xcolor$ = "CCCCCD"
                    CASE "‚" : xcolor$ = "99999A"
                    CASE "ƒ" : xcolor$ = "99669A"
                    CASE "„" : xcolor$ = "9999CD"
                    CASE "…" : xcolor$ = "666667"
                    CASE "†" : xcolor$ = "CCCD00"
                    CASE "‡" : xcolor$ = "333301"
                    CASE "ˆ" : xcolor$ = "330001"
                    CASE "‰" : xcolor$ = "666634"
                    CASE "Š" : xcolor$ = "333334"
                    CASE "‹" : xcolor$ = "996667"
                    CASE "Œ" : xcolor$ = "66669A"
                    CASE "" : xcolor$ = "663301"
                    CASE "Ž" : xcolor$ = "663334"
                    CASE "" : xcolor$ = "CC999A"
                    CASE "" : xcolor$ = "FFCD00"
                    CASE "‘" : xcolor$ = "9966CD"
                    CASE "’" : xcolor$ = "CC99CD"
                    CASE "“" : xcolor$ = "CD0000"
                    CASE "”" : xcolor$ = "99CCCD"
                    CASE "•" : xcolor$ = "33999A"
                    CASE "–" : xcolor$ = "66CD00"
                    CASE "—" : xcolor$ = "CCFFCD"
                    CASE "˜" : xcolor$ = "9A0000"
                    CASE "™" : xcolor$ = "FFCCCD"
                    CASE "š" : xcolor$ = "6699CD"
                    CASE "›" : xcolor$ = "66999A"
                    CASE "œ" : xcolor$ = "FFFF01"
                    CASE "" : xcolor$ = "FF0100"
                    CASE "ž" : xcolor$ = "99CD00"
                    CASE "Ÿ" : xcolor$ = "66CCCD"
                    CASE " " : xcolor$ = "33669A"
                    CASE "¡" : xcolor$ = "336667"
                    CASE "¢" : xcolor$ = "CC9A00"
                    CASE "£" : xcolor$ = "3399CD"
                    CASE "¤" : xcolor$ = "3366CD"
                    CASE "¥" : xcolor$ = "339A00"
                    CASE "¦" : xcolor$ = "333367"
                    CASE "§" : xcolor$ = "999A00"
                    CASE "¨" : xcolor$ = "6666CD"
                    CASE "©" : xcolor$ = "669A00"
                    CASE "ª" : xcolor$ = "33CCCD"
                    CASE "«" : xcolor$ = "33339A"
                    CASE "¬" : xcolor$ = "CC9967"
                    CASE "­" : xcolor$ = "CCCC9A"
                    CASE "®" : xcolor$ = "FFCC9A"
                    CASE "¯" : xcolor$ = "996634"
                    CASE "°" : xcolor$ = "FFFFCD"
                    CASE "±" : xcolor$ = "66CC9A"
                    CASE "²" : xcolor$ = "669967"
                    CASE "³" : xcolor$ = "670000"
                    CASE "´" : xcolor$ = "330034"
                    CASE "µ" : xcolor$ = "FF9967"
                    CASE "¶" : xcolor$ = "999967"
                    CASE "·" : xcolor$ = "CC9934"
                    CASE "¸" : xcolor$ = "336634"
                    CASE "¹" : xcolor$ = "33CD00"
                    CASE "º" : xcolor$ = "99CC9A"
                    CASE "»" : xcolor$ = "339967"
                    CASE "¼" : xcolor$ = "99FFCD"
                    CASE "½" : xcolor$ = "FFFF9A"
                    CASE "¾" : xcolor$ = "FFCC67"
                    CASE "¿" : xcolor$ = "336700"
                    CASE "À" : xcolor$ = "663367"
                    CASE "Á" : xcolor$ = "340000"
                    CASE "Â" : xcolor$ = "66339A"
                    CASE "Ã" : xcolor$ = "993367"
                    CASE "Ä" : xcolor$ = "666700"
                    CASE "Å" : xcolor$ = "FF999A"
                    CASE "Æ" : xcolor$ = "99339A"
                    CASE "Ç" : xcolor$ = "3333CD"
                    CASE "È" : xcolor$ = "993334"
                    CASE "É" : xcolor$ = "669901"
                    CASE "Ê" : xcolor$ = "CCCC67"
                    CASE "Ë" : xcolor$ = "33CC9A"
                    CASE "Ì" : xcolor$ = "CC6667"
                    CASE "Í" : xcolor$ = "CC669A"
                    CASE "Î" : xcolor$ = "CCFF9A"
                    CASE "Ï" : xcolor$ = "FFFF67"
                    CASE "Ð" : xcolor$ = "CCFF34"
                    CASE "Ñ" : xcolor$ = "FF99CD"
                    CASE "Ò" : xcolor$ = "CC6634"
                    CASE "Ó" : xcolor$ = "99FF34"
                    CASE "Ô" : xcolor$ = "99CC01"
                    CASE "Õ" : xcolor$ = "66FFCD"
                    CASE "Ö" : xcolor$ = "9A00"
                    CASE "×" : xcolor$ = "FF9A00"
                    CASE "Ø" : xcolor$ = "6667"
                    CASE "Ù" : xcolor$ = "999A"
                    CASE "Ú" : xcolor$ = "33FFCD"
                    CASE "Û" : xcolor$ = "CD00"
                    CASE "Ü" : xcolor$ = "CC66CD"
                    CASE "Ý" : xcolor$ = "6633CD"
                    CASE "Þ" : xcolor$ = "6634"
                    CASE "ß" : xcolor$ = "6700"
                    CASE "à" : xcolor$ = "99CD"
                    CASE "á" : xcolor$ = "999934"
                    CASE "â" : xcolor$ = "669934"
                    CASE "ã" : xcolor$ = "330067"
                    CASE "ä" : xcolor$ = "996700"
                    CASE "å" : xcolor$ = "666601"
                    CASE "æ" : xcolor$ = "CC3334"
                    CASE "ç" : xcolor$ = "33009A"
                    CASE "è" : xcolor$ = "FF6634"
                    CASE "é" : xcolor$ = "FF3334"
                    CASE "ê" : xcolor$ = "FF3301"
                    CASE "ë" : xcolor$ = "FF6700"
                    CASE "ì" : xcolor$ = "333400"
                    CASE "í" : xcolor$ = "FF0001"
                    CASE "î" : xcolor$ = "CC6700"
                    CASE "ï" : xcolor$ = "9933CD"
                    CASE "ð" : xcolor$ = "66009A"
                    CASE "ñ" : xcolor$ = "CC33CD"
                    CASE "ò" : xcolor$ = "3300CD"
                    CASE "ó" : xcolor$ = "9900CD"
                    CASE "ô" : xcolor$ = "33CD"
                    CASE "õ" : xcolor$ = "66CD"
                    CASE "ö" : xcolor$ = "99009A"
                    CASE "÷" : xcolor$ = "660067"
                    CASE "ø" : xcolor$ = "993400"
                    CASE "" : xcolor$ = "6600CD"
                    CASE " " : xcolor$ = "330100"
                    CASE "û" : xcolor$ = "CC3400"
                    CASE "ü" : xcolor$ = "CC00CD"
                    CASE "ý" : xcolor$ = "663400"
                    CASE "þ" : xcolor$ = "993301"
                    CASE "ÿ" : xcolor$ = "996601"
            END SELECT
            xcolor = VAL("&H" + xcolor$)
            PSET(x, y), (0 - xcolor)
            x = x + 1: IF x > 64 THEN x = 0: y = y - 1
        NEXT B
        ELSE
        xcolor = VAL("&H" + A$)
        PSET(x, y), (0 - xcolor)
        x = x + 1: IF x > 64 THEN x = 0: y = y - 1
    END IF
NEXT A
'_DEST 0: _ICON _HANDLE
get(0, 0)-(127, 95), _HANDLE', 0
put(0,0),_HANDLE,trans
sleep
'_FREEIMAGE _HANDLE
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
DATA €€€€††††„†§††§„„§„„†††¢†ž„¢††§„§„†§§§„§„§§„„§§„¨§§§„„§§§„„€€€,1
DATA €€€€††††§†„„§§†††††„„†‘§„†§§Œ¢§„§§ž¨¨¨§§„„¨¨¨¨¨¨„¨¨¨¨§„„„„š§„€€€,1
DATA €€€€††††††††§§§§§¢†„„„§†††§§§§„§„„„§„„„„„„¨¨Œ„§„Œ„¨¨§„¨„„§„¢„€€€,1
DATA €€€€†††§§¢§†§„„§§§§§Â¢§„†„§§„„«„„„„„„„„„¨„„¨„„„¨„„§„‘§„¨„„„„€€€,1
DATA €€€€žžš††ž†„„§„†‘Œ„§„„„†Œ¢„„„„„„„„†„„„š„„„¨„¨„„§„„§„„„„„§„§„€€€,1
DATA €€€€ž§§§†„ž††„†§„Œ„†§†„§†„§„††§„Œ¨„š„„„Œ¨„„§„„„§„„„††„„„„¨„††€€€,1
DATA €€€€©¨¨§¨§§§§¨§†„„†††„„„„„„„§§§„¨§„„„„§„¢†††„„„„„†††„’„„„„€€€,1
DATA €€€€©©š§¨¨¨¨§§§§„‘Œ§„†§Œ„§„¨„¨„„§„„„§§„„††††„„†¢„†††††„„„„„€€€,1
DATA €€€€§©§¨Ä¨¨¨¨§¨§§„„ž§§§§§Œ„„š§„„§„„„„„„„†„„„„„”„†„††‚‚€€€,1
DATA €€€€¨Ä§Œ¨¨Œ«„¨¨¨„„„§§„§„„„„Œ„„„„§„„„„„†§‚†Œ„„„„„„„”††††††€€€€€€,1
DATA €€€€Ä¨§¨¨««Œ¦Œ¦«¨Œ¨§¨§§§„„„„„§„„„„†††††„„‚‚„„°°°°€€€€,1
DATA €€€€¨¨¨¤¨§„‘Œ„†„««¨«Ç¨¨¨¨„žž„†ž„†††††††‚†‚„‚‚‚„”™™™™€€€,1
DATA €€€€¨¨¤¤¤¤¤¨¨Ç©©§§©¨¦¦¦À«¨¨§§§„§††”††„†‚‚‚Œ›„„”””‚€€€,1
DATA €€€€§š¨¤¤¤¤¤ÇǤ¤¨¨¨Ä„„Œ¦«Œ¨¨§„„ž†“††“€€”„†‚ŒŒŒ‚„„„”™€€€€,1
DATA €€€€„„„„‚‚‚‚’’’’’’’’„„‚ƒƒ…ŒŒŒ„„„††€†“†††„Œ…ŒŒ‚„‚‚”†™€€€€,1
DATA €€€€†††††’‚ƒ‹…À¦Àƒ‚’’ŒŒ„‘„„†††’†Œ„¡……ŒŒ„„‚””„„„€€€,1
DATA €€€€€€€’„„„„ŒŒ¦¦ÀŒŒƒƒ„„„’’’†††ž““†„Œ„¡…ÀŒŒ„„‚”„„”„€€€,1
DATA €€€€€††††’†††’„„„„’’’’„†žž†”Œ‚‚¡…ÀŒŒ„”››„„”€€€,1
DATA €€€€†††€†„’’™™™™€™™€€””šžž””ŒŒ‚…ÀÀŒŒ„”Œ‚„‚”™€€€,1
DATA €€€€€†††’†††™™„”šž„ž”›ŒŒ…ÀÀŒŒ‚”ŒŒ”„™€€€,1
DATA €€€€’’’’’‚”””„Œš„„„””…‚ŒÀÀŒ„„”…„›”†€€€,1
DATA €€€€’’‚‚‚„”””„Œ„„„”Œ„›ÀÀ„„”„…’„†”†€€€,1
DATA €€€€‚’‚’””ƒŒ‘Œ¨„”„ƒŒÀÀ„‚…‚†††„„†€€€,1
DATA €€€€‚„„”ŒŒƒŒ‘„††…‚¦ÀŒ†ŒŒ„††††›‚††€€€,1
DATA €€€€‚‚‚„ŒŒŒŒš„††…¦¦¡††…›†‚‚†€€€,1
DATA €€€€™™ƒŒ„„Œ…ŒŒ¨§¨§†‚Œ„”††¡„††††”Œ‚†€€€,1
DATA €€€€™™‚‹‚„…ŒŒšžšž†„žž†††…††††‚†€€€,1
DATA €€€€™™™™™™™™…ƒ’…Œ„„„žžÀÀ”Œ…„†›†††††Œ„”†€€€,1
DATA €€€€Œ‚”„ŒŒšžŒŒ¦…Œ¦¦Œžš†††”„†„„”†€€€,1
DATA €€€€„Œ›„Œ„†ŒŒŒ¦¦ÂŒžš†††¡Œ„†„††€€€,1
DATA €€€€„‚‚„””‚‚†ŒŒ„ÀÀƒ’„ƒ¦„ŒŒ„†††Œ¦›„‚††€€€,1
DATA €€€€‚‚‚‚‚›‚‚‚‚„À‚Œ¦¦À„ÀŒ€€¦ŒŒ …††††›Œ„„††€€€,1
DATA €€€€‚‚‚”‚Œ›‚‚Œ››Œ›››‚„…„Œ¨ Œ¦ š““€‚Œ›„†††”…›”†“€€€,1
DATA €€€€„„‚”›…›‚‚ŒŒŒŒ››‚‚”…À¦š À¦šž““€‚ž††”††„…„†”“€€€,1
DATA €€€€‚‚‚Œ„›¡¡Œ…„‚‚‚›‚‚‚”¡&Œ¦ã¦š“†††‚„†„„„žž†‚†€€€,1
DATA €€€€”„‚…Œ¡Œ¡¡…›‚Œ„„„„”„””š›¦¦¦¦š“†††…”“”„†ž†‚€€€,1
DATA €€€€”„‚„‚›…¦…Œ¡‚‚‚‚„”‚„”””…ŠŠ¦¡„††††…††††”†„‚†€€€,1
DATA €€€€”‚„„„…¡Œ›Œ›‚‚”‚‚””„„””†„††††“†††††††”††¦„†„€€€,1
DATA €€€€”‚‚„‚ŒŒ‚‚Œ¦‚‚„„…Œ„„‚„””””„†††††€†”‚†…€€€€,1
DATA €€€€”‚‚‚‚‚‚‚›‚‚Œ…‚‚‚¦¦¡Œ‚‚”””„„„„”††††€€““„“††€†€€€,1
DATA €€€€„„‚ŒŒŒŒ›ŒŒŒŠ……ŒŒ¦¦„„„„„‚„‚‚Š%›††††“““„†“†††€€€€€,1
DATA €€€€”„‚‚‚‚ŒŒŒŒŒŒ………Œ…¡‚„ŒŒ‚›…Œ‚”‚†††††††“‚†††““†“€€€€€,1
DATA €€€€„„”„„‚ŒŒŒŒŒ…………ŒŒ‚„„¡ŒŒ……„‚””†††††††††„†††“†”††”€€€€,1
DATA €€€€„‚ŒŒŒŒ…………………ŒŒŒ…ŒŒ…………‚”„„†††††††††††††”†††€€€,1
DATA €€€€”„‚‚‚›……ŒŒ…¡¡¦Œ…¡…Œ‚¡…„›…‚„††††††††††“€€€€,1
DATA €€€€„‚„„‚‚‚Œ…¡…Œ¡¡Œ¦…Œ‚›Œ‚”„„‚„”„†††††”†††††††“€€€€,1
DATA €€€€„„„‚„‚„‚‚…¡¡……¦¦¦¦Œ„”””””„Œ¡Œ›‚‚††††††††††€††€€€€,1
DATA €€€€„‚„‚„Œ„‚‚…¦¦……¦¦…ŒŒ„””””›Œ„¦……‚”†††††††††“†€€€€€€€,1  
Umm, Run poseidonFB and create a new file and paste the code, then "Quick Run"
Code 1:
Image
Code 2:
Image

If we save the file and compile then run, we can see both the images change to:
Image
That is bacause poseidonFB create a new file using UTF-8(without bom), but "Quick Run" will save a tempfile encoding by UTF-8 with Bom.

Which result is correct? I think the different results are about the encoding...
Last edited by Kuan Hsu on Oct 03, 2017 15:01, edited 1 time in total.
Kuan Hsu
Posts: 586
Joined: Sep 16, 2007 15:12
Location: Taiwan

Re: FreeBasic IDE-poseidonFB(Update 2017.09.30)

Post by Kuan Hsu »

WQ1980 wrote:Kuan Hsu

1) Updated file Russian.lng
http://www.mediafire.com/file/ar09aod7a ... ussian.zip

2)Problem with arrangement of buttons \ labels
Labels do not fit
screenshot
http://www.mediafire.com/view/qni9qo17qdo02bt/000.jpg#

Russian language, Windows 7 x64, scale screen 125%
default font Segoe UI, fontsize 9, 120 pixels per inch
(1)Thank you!!......^^
(2)The Russian is to long then other language.....@@
I'll try to change "Preference" dialog size( about width ).
St_W
Posts: 1626
Joined: Feb 11, 2009 14:24
Location: Austria
Contact:

Re: FreeBasic IDE-poseidonFB(Update 2017.09.30)

Post by St_W »

Hi,
I've a few wishes:

1.) Adding multiple existing (source) files to a project does not always work as expected. For example, when there is already a file with the same name the other files aren't added either. Example: "a.bas" is in the project. I want to add "a.bas", "b.bas" "c.bas" by selecting all of them in the open file dialog. Expected: "b.bas" and "c.bas" are added; however the actual result is that no file is added.

2.) I'd like to be able to select multiple files in the project tree e.g. to remove them from the project. Example: select first file, hold Shift key and click on last file to select the whole range of files between first and last.

3.) When there is an error in the language file message boxes are shown when launching the IDE. Could you remove those message boxes and e.g. print the errors to stderr (console output). That way an advanced user can view the errors by launching poseidonFB from the console and the typical user isn't disrupted. The errors are shown for language file entries that are not known by poseidonFB. Missing entries in the language file seem to be ignored currently.

4.) This is a bigger feature request: I'd like a CTRL+Click feature as known from other IDEs that allows to go to the definition of a symbol by holding the CTRL key and clicking on it. I'd especially like to have that feature for opening #include-d files in the editor. Example: The source code contains a line: #include once "file.bi". When pressing and holding the CTRL key "file.bi" should turn into a link. When clicking that link the file "file.bi" (in this case part of the headers shipped with FB) should be opened in poseidonFB (or the open document should be shown, if the file is already open in another tab).

Thank you for developing such a great IDE.

//edit: I've just encounted a reproducible crash, so here's an additional wish :-)
5.) Crash (no notification; poseidonFB just closes). Steps to reproduce:
- open poseidonFB
- press Ctrl+N (new file)
- now enter some special characters, for example german umlauts: ö ä (you can copy them here and use Ctrl+V to paste them into the editor several times)
WQ1980
Posts: 48
Joined: Sep 25, 2015 12:04
Location: Russia

Re: FreeBasic IDE-poseidonFB(Update 2017.09.30)

Post by WQ1980 »

St_W wrote: 5.) Crash (no notification; poseidonFB just closes). Steps to reproduce:
- open poseidonFB
- press Ctrl+N (new file)
- now enter some special characters, for example german umlauts: ö ä (you can copy them here and use Ctrl+V to paste them into the editor several times)
+ analogically cyrillic, hieroglyphs character etc -> crash
dodicat
Posts: 7983
Joined: Jan 10, 2006 20:30
Location: Scotland

Re: FreeBasic IDE-poseidonFB(Update 2017.09.30)

Post by dodicat »

The correct image result is a small image with three figures standing.

FBide shows it correctly, and Google chrome or Firefox will download it properly.

Here is a crude Quick run code for Windows.
Compile it and run it .

If you have anything on the clipboard to test, just click clipboard.
Set your compiler first by navigating to it.
Use the build options for any flags (-exx, -gen gcc or whatever .....)
Then click compile then click run.
If you copy the image code from the forum select all -- copy
If your browser is OK you will see the tiny image.

Code: Select all

#define WIN_INCLUDEALL
#Include Once "windows.bi"
#Include once "/win/commctrl.bi"
#include "file.bi"
shell "title Compiler output"
'shell "color f0"
Dim Shared As String fbpath,s1,cd,cpy,L
cd=Curdir
Declare Function SetWindowTheme Lib "UxTheme.dll" Alias "SetWindowTheme"(As Any Ptr,As zstring Ptr,As zstring Ptr) As Long 
Declare Sub getfiles(Byref SomeFile As OpenFileName,msg As String,flag As String)
Declare Sub CreateMessageWindow
Declare Function loadfile(file As String,flag As Long=1) As String
Declare Sub savefile(filename As String,p As String)
Declare Function getclipboard() As String
' Globals (unavoidable)
Dim Shared As HFONT guiFont
Dim Shared As zString * 255 textMessage=""
textmessage=loadfile("Buildoptions.txt")
Dim As String tmp
savefile(cd+"\Clipboard.txt","")
fbpath=loadfile("CompilerPath.txt",0)

Dim Shared As Long flag
Dim Shared As HWND  MainWindow, MessageWindow,btn,btn2,runbut,compiler
Dim Shared As HWND EditBox, Button,msgon,label,bar2,label2,minilabel,clabel,file,clipboard
Dim Shared As Long trackpos
Dim Shared SomeFile As OpenFileName
Function WndProc(hWnd As HWND, msg As UINT, wParam As WPARAM, lParam As LPARAM) As LRESULT
    
    Select Case hWnd
    
    Case MainWindow  
        Select Case msg
        
        Case WM_PAINT
            Dim As PAINTSTRUCT ps
            BeginPaint(hWnd, @ps)
            FillRect(ps.hdc, @ps.rcPaint, CreateSolidBrush(BGR(100,100,255)))
            EndPaint(hWnd, @ps)
            
        Case WM_CLOSE
            Kill   cd+"/buildoptionsTEMP.exe"
            Kill   cd+"/BuildoptionsTEMP.bas"
            Kill   cd+"/Clipboard.txt"
            PostQuitMessage(NULL) 
            
        Case WM_COMMAND
            Select Case lParam  
            Case msgon 
                CreateMessageWindow 
                
            Case clipboard
                L=getclipboard
                savefile("Clipboard.txt",L)
                cpy="clipboard.txt"
                setwindowtext(file,"File" +Chr(13,10)+cpy)
                Goto label
                
            Case btn 'open
                getfiles(SomeFile, "FreeBASIC Files","*.bas")
                s1=*SomeFile.lpstrFile
                cpy=s1
             
                setwindowtext(file,"File" +Chr(13,10)+cpy)
                L=loadfile(s1,3)
                label:
                savefile(cd +"/BuildoptionsTEMP.bas",L)
                s1=cd+"/BuildoptionsTEMP.bas"
                ShellExecute (0,"","notepad.exe ",cpy,"",SW_SHOWNORMAL) 
                
            Case btn2'compile
                If Len(s1) Then
                    textmessage=loadfile(cd+"\Buildoptions.txt",3)
                    s1=" "+cd+"/BuildoptionsTEMP.bas"
                    s1+=" "+textmessage+" "
                  
                    Dim As String tm="Command "+Chr(13,10)+fbpath+Chr(13,10)+s1
                    setwindowtext(clabel,tm)
                  
                    Shell   fbpath+s1
                   
                Else
                    messagebox(0,"No file chosen","",0)
                End If
            Case runbut
                
                Dim As String tm="Command "+Chr(13,10)+cd+"/buildoptionsTEMP.exe"
                setwindowtext(clabel,tm)
                
                If Fileexists (  cd+"/buildoptionsTEMP.exe")  Then
                    ShellExecute (0,"", cd+"/buildoptionsTEMP.exe","","",SW_SHOWNORMAL) 
                End If
                
            Case compiler'select a compiler
                getfiles(SomeFile, "Fbc.exe","fbc*.exe")
                s1=*SomeFile.lpstrFile
                if instr(s1," ") then s1=chr(34)+s1+chr(34) '''''''''''''''
        
                savefile(cd+"/CompilerPath.txt",s1)
              
                fbpath=loadfile(cd +"/CompilerPath.txt",3)
              
                
                setwindowtext(label, fbpath)
                
            End Select
            
        End Select
        
    Case MessageWindow  
        Select Case msg
        Case WM_COMMAND
            Select Case lParam  
            Case Button   
                GetWindowText(EditBox, @textMessage, 255)
                flag=0
                savefile(cd+"\buildoptions.txt",textmessage)
                destroywindow(messagewindow)
            End Select
            
        Case WM_CLOSE
            flag=0
        End Select
        
    End Select
    
    Return DefWindowProc(hWnd, msg, wParam, lParam)
End Function


' Create  window class:
Dim As WNDCLASS wcls

With wcls
    
    .style      = CS_HREDRAW Or CS_VREDRAW or CS_DROPSHADOW'
    .lpfnWndProc  = Cast(WNDPROC, @WndProc)
    .hInstance    = GetModuleHandle(NULL)
    .hIcon      = LoadIcon(NULL, IDI_APPLICATION)
    .hCursor      = LoadCursor(NULL, IDC_ARROW)
    .hbrBackground  = GetStockObject(WHITE_BRUSH)
    .lpszMenuName  = NULL
    .lpszClassName  = Strptr("WindowClass")
End With

If RegisterClass(@wcls) = FALSE Then
    MessageBox(NULL, "RegisterClass('WindowClass') FAIL!", "Error!", MB_OK Or MB_ICONERROR)
    End
End If


MainWindow = CreateWindowEx(NULL, "WindowClass", "Flag setter", WS_OVERLAPPEDWINDOW Or WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, 650, 500, NULL, NULL, NULL, NULL)
msgon= CreateWindowEx(NULL, "Button", "Build options", WS_VISIBLE Or WS_CHILD , 10, 40, 90, 24, MainWindow, NULL, NULL, NULL)
btn=CreateWindowEx( 0,"BUTTON","Open", ws_border Or WS_VISIBLE Or WS_CHILD ,150,50,100,30,  MainWindow,0,0,0)
btn2  =createwindowex(0,"BUTTON","Compile"  ,ws_border Or WS_VISIBLE Or WS_CHILD,280,50,120,30,MainWindow,0,0,0)
runbut=createwindowex(0,"BUTTON","Run"  ,ws_border Or WS_VISIBLE Or WS_CHILD,430,50,120,30,MainWindow,0,0,0)
compiler=createwindowex(0,"BUTTON","Select Compiler"  ,ws_border Or WS_VISIBLE Or WS_CHILD,230,150,120,30,MainWindow,0,0,0)
label=createwindowex(0,"STATIC",fbpath , WS_VISIBLE Or WS_CHILD,0,200,600,60,MainWindow,0,0,0)
minilabel=Createwindowex(0,"STATIC","Compiler:"  ,WS_VISIBLE Or WS_CHILD,0,170,100,30,MainWindow,0,0,0)
clabel=createwindowex(0,"STATIC","Command " , WS_VISIBLE Or WS_CHILD,0,280,600,80,MainWindow,0,0,0)
file=createwindowex(0,"STATIC","File" , WS_VISIBLE Or WS_CHILD,0,380,600,60,MainWindow,0,0,0)
clipboard=CreateWindowEx( 0,"BUTTON","Clipboard", ws_border Or WS_VISIBLE Or WS_CHILD ,150,100,100,30,  MainWindow,0,0,0)
SetWindowTheme(mainwindow," "," ")
Sub CreateMessageWindow
    If flag=0 Then
        flag=1
        MessageWindow = CreateWindowEx(NULL, "WindowClass", "Options", WS_OVERLAPPEDWINDOW Or WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, 300, 150, NULL, NULL, NULL, NULL)
        EditBox = CreateWindowEx(WS_EX_CLIENTEDGE, "Edit", textmessage, WS_VISIBLE Or WS_CHILD Or WS_HSCROLL  Or ES_AUTOHSCROLL Or ES_MULTILINE, 10, 0, 250, 50, MessageWindow, NULL, NULL, NULL)
        Button = CreateWindowEx(NULL, "Button", "Save", WS_VISIBLE Or WS_CHILD, 10, 70, 200, 24, MessageWindow, NULL, NULL, NULL)
        
        SetWindowTheme(messagewindow," "," ")'  optional
    End If 
End Sub
Sub getfiles(Byref SomeFile As OpenFileName,msg As String,flag As String)
    Dim As zstring * 2048 SELFILE
    Dim As String MYFILTER
    MYFILTER = msg+Chr(0)+flag+Chr(0)
    With SomeFile
        .lStructSize = Sizeof(OpenFileName)
        .hInstance = null 
        .lpstrFilter = Strptr(MYFILTER)
        .lpstrFile = @SELFILE
        .nMaxFile = 2048
        .nMaxFileTitle = 0
        .lpstrTitle =@"Open"
    End With
    GetOpenFileName(@SomeFile)
End Sub
Function loadfile(file As String,flag As Long=1) As String
    If flag=1 Then
        If Fileexists("Buildoptions.txt")=0 Then savefile("Buildoptions.txt","")
    End If
    If flag=0 Then
        If Fileexists("CompilerPath.txt")=0 Then savefile("CompilerPath.txt","")
    End If
    Var  f=Freefile
    Open file For Binary Access Read As #f
    Dim As String text
    If Lof(1) > 0 Then
        text = String(Lof(f), 0)
        Get #f, , text
    End If
    Close #f
    Return text
End Function

Sub savefile(filename As String,p As String)
    Dim As Integer n
    n=Freefile
    If Open (filename For Binary Access Write As #n)=0 Then
        Put #n,,p
        Close
    Else
        Print "Unable to load " + filename
    End If
End Sub
Function getclipboard() As String
    If IsClipboardFormatAvailable(CF_TEXT) = 0 Then Return "Error"
    If OpenClipboard(0) = 0 Then Return "Error"
    Function = *Cast(zstring Ptr,GetClipboardData(CF_TEXT))
    CloseClipboard()
End Function
Sub cleanup Destructor
    Kill   cd+"/buildoptionsTEMP.exe"
    Kill   cd+"/BuildoptionsTEMP.bas"
    Kill   cd+"/Clipboard.txt"
End Sub


Dim As MSG uMsg

While GetMessage(@uMsg, NULL, NULL, NULL) <> FALSE
    TranslateMessage(@uMsg)
    DispatchMessage(@uMsg)
Wend


   
Kuan Hsu
Posts: 586
Joined: Sep 16, 2007 15:12
Location: Taiwan

Re: FreeBasic IDE-poseidonFB(Update 2017.09.30)

Post by Kuan Hsu »

WQ1980 wrote:Kuan Hsu

1) Updated file Russian.lng
http://www.mediafire.com/file/ar09aod7a ... ussian.zip

2)Problem with arrangement of buttons \ labels
Labels do not fit
screenshot
http://www.mediafire.com/view/qni9qo17qdo02bt/000.jpg#

Russian language, Windows 7 x64, scale screen 125%
default font Segoe UI, fontsize 9, 120 pixels per inch
Modified at rev.318
Kuan Hsu
Posts: 586
Joined: Sep 16, 2007 15:12
Location: Taiwan

Re: FreeBasic IDE-poseidonFB(Update 2017.09.30)

Post by Kuan Hsu »

St_W wrote:Hi,
I've a few wishes:

1.) Adding multiple existing (source) files to a project does not always work as expected. For example, when there is already a file with the same name the other files aren't added either. Example: "a.bas" is in the project. I want to add "a.bas", "b.bas" "c.bas" by selecting all of them in the open file dialog. Expected: "b.bas" and "c.bas" are added; however the actual result is that no file is added.

2.) I'd like to be able to select multiple files in the project tree e.g. to remove them from the project. Example: select first file, hold Shift key and click on last file to select the whole range of files between first and last.

3.) When there is an error in the language file message boxes are shown when launching the IDE. Could you remove those message boxes and e.g. print the errors to stderr (console output). That way an advanced user can view the errors by launching poseidonFB from the console and the typical user isn't disrupted. The errors are shown for language file entries that are not known by poseidonFB. Missing entries in the language file seem to be ignored currently.

4.) This is a bigger feature request: I'd like a CTRL+Click feature as known from other IDEs that allows to go to the definition of a symbol by holding the CTRL key and clicking on it. I'd especially like to have that feature for opening #include-d files in the editor. Example: The source code contains a line: #include once "file.bi". When pressing and holding the CTRL key "file.bi" should turn into a link. When clicking that link the file "file.bi" (in this case part of the headers shipped with FB) should be opened in poseidonFB (or the open document should be shown, if the file is already open in another tab).

Thank you for developing such a great IDE.

//edit: I've just encounted a reproducible crash, so here's an additional wish :-)
5.) Crash (no notification; poseidonFB just closes). Steps to reproduce:
- open poseidonFB
- press Ctrl+N (new file)
- now enter some special characters, for example german umlauts: ö ä (you can copy them here and use Ctrl+V to paste them into the editor several times)
All should be done at rev.318
Kuan Hsu
Posts: 586
Joined: Sep 16, 2007 15:12
Location: Taiwan

Re: FreeBasic IDE-poseidonFB(Update 2017.09.30)

Post by Kuan Hsu »

dodicat wrote:The correct image result is a small image with three figures standing.

FBide shows it correctly, and Google chrome or Firefox will download it properly.

Here is a crude Quick run code for Windows.
Compile it and run it .

If you have anything on the clipboard to test, just click clipboard.
Set your compiler first by navigating to it.
Use the build options for any flags (-exx, -gen gcc or whatever .....)
Then click compile then click run.
If you copy the image code from the forum select all -- copy
If your browser is OK you will see the tiny image.
I copy and paste your code on poseidonFB/WinFBE, if I set the enconding both are UTF-8(Bom) then compile it(Not "Quick Run"), the compiler message is shown:
K:\clipCompile.bas(185) warning 4(1): Suspicious pointer assignment
And the exe can't run......

But if I save the files with ANSI encoding, poseidonFB/WinFBE will comile with no warning and run good....(I think "Quick Run" of WinFBE is save the tempfile with ANSI encoding, so it can "Quick Run" well )

I don't know what's happen, but I'll decide to "Quick Run" use selected encoding at next poseidonFB reversion( now default is UTF-8 with Bom ).

I using your program and compile and run the Code 1/2, I get both the same images:
Image
I don't think the image is correct....

Images of poseidonFB encodings:
Image
Last edited by Kuan Hsu on Oct 04, 2017 15:15, edited 1 time in total.
dodicat
Posts: 7983
Joined: Jan 10, 2006 20:30
Location: Scotland

Re: FreeBasic IDE-poseidonFB(Update 2017.10.04)

Post by dodicat »

If my program image and your program image are the same, and that is the image, then your internet browser is not loading the characters correctly.
Google chrome is OK
Firefox is OK
Internet explorer is OK

Microsoft edge is faulty

You could try clicking (reply with quote), as st_w suggested, to get the code showing, then copy from there.
fxm
Moderator
Posts: 12107
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: FreeBasic IDE-poseidonFB(Update 2017.10.04)

Post by fxm »

If I copy (with Firefox) the -lang "qb" program of dodicat to PoseidonFB (in a new file), the image is bad after a Quick Run.
If now I just modify under the Poseidon editor the Data blocks by inserting double quotes like the ones in the -lang "fb" program, the image becomes good after a Quick Run.

[quote=""DATA" documentation page"]
Dialect Differences
-lang fb and -lang fblite considers data items as constant expressions that are evaluated during compilation and its result stored in the program.
-lang qb considers unquoted words, including names of variables and constants, as literal strings, and stores them without change, as in QBASIC. Unquoted strings are delimited by commas, and a colon or a line-break signifies the end of the Data statement. Unquoted strings are trimmed of whitespace at the beginning and end.[/quote]
Last edited by fxm on Oct 04, 2017 18:31, edited 2 times in total.
St_W
Posts: 1626
Joined: Feb 11, 2009 14:24
Location: Austria
Contact:

Re: FreeBasic IDE-poseidonFB(Update 2017.09.30)

Post by St_W »

Kuan Hsu wrote:All should be done at rev.318
Thank you very much. It's astonishing how fast you handle and resolve the feature requests.
Kuan Hsu
Posts: 586
Joined: Sep 16, 2007 15:12
Location: Taiwan

Re: FreeBasic IDE-poseidonFB(Update 2017.10.13)

Post by Kuan Hsu »

Hi, guys~~
I release rev0.321 today, it used IUP 3.23 so linux user need re-install IUP libraries, Windows user need install new iup.dll & iup_scintilla.dll( includes in archive ), thanks~~

Now I'm working on...
(1)Use IupScintilla instead of IupText on "Message Search Window":
Image Image
For colorize search results and avoid the bugs of linux version.
Image Image

...Done at rev0.322
by IupScintilla, so we can zoom in/out the message/search results.....^^( Ctri + Mouse Wheel )
Post Reply