FireFly Visual Designer for FreeBASIC (Updated March 8, 2016)

User projects written in or related to FreeBASIC.
Post Reply
Drago
Posts: 116
Joined: Aug 10, 2005 13:15

Post by Drago »

Code: Select all

C:\FreeBasic\FireFly_350\Projects\Project1\release\CODEGEN_FIBU_FRMBASE_FORM.inc(305) error 7: Expected ')' in 'TabCtrl_AdjustRect (FLY_pNotify->hWndFrom, 0, VarPtr(FLY_Rect))'
There is an Error in TabControl Resize Code generation.
PaulSquires
Posts: 1012
Joined: Jul 14, 2005 23:41

Post by PaulSquires »

Drago wrote:

Code: Select all

C:\FreeBasic\FireFly_350\Projects\Project1\release\CODEGEN_FIBU_FRMBASE_FORM.inc(305) error 7: Expected ')' in 'TabCtrl_AdjustRect (FLY_pNotify->hWndFrom, 0, VarPtr(FLY_Rect))'
There is an Error in TabControl Resize Code generation.
Hi Drago,

The errors are because the macros in CommCtrl.inc contain errors. See my previous post at: http://www.freebasic.net/forum/viewtopic.php?t=18691

Hope that helps.
PaulSquires
Posts: 1012
Joined: Jul 14, 2005 23:41

Post by PaulSquires »

fxm wrote:
PaulSquires wrote:Hi fxm,

I uploaded the files into a standard zip archive. You just need to be sure to preserve the folder structure when you unzip the contents.

Here is the link (1.82 megs): http://www.freebasiccompiler.com/files/ ... ebasic.zip

Good luck!
This specific link that you provided (http://www.freebasiccompiler.com/files/) points now to the old versions.
Can you update this, or put a dedicated link at your home page to the new standard zip archive?
Thanks fxm,

I have setup a redirect on that url to take you to the planetsquires webpage. I have removed those old files as well.

I will eventually let the freebasiccompiler.com domain name expire.
PaulSquires
Posts: 1012
Joined: Jul 14, 2005 23:41

Post by PaulSquires »

I have also added a readme text file to the TabControl project to let people know that the commctrl.bi file needs to be updated.
Last edited by PaulSquires on Oct 24, 2011 12:59, edited 1 time in total.
fxm
Moderator
Posts: 12553
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Post by fxm »

PaulSquires wrote:I have setup a redirect on that url to take you to the planetsquires webpage. I have removed those old files as well.

I will eventually let the freebasiccompiler.com domain name expire.
Thanks PaulSquires,

In fact, my previous post was not very clear, because I thought wrongly that the file 'FireFly_FB_350.rar' was always an installer (I had not read attentively your update post!).
caraegg
Posts: 1
Joined: Nov 11, 2011 7:12

I found a bug about listview and treeview

Post by caraegg »

I am a Chinese,I found listview and treeview not support Chinese ,but commandbutton and textbox support Chinese very well,Why?
But treeview.bas publish by Official freebasic show Chinese very well.
this is my app GUI:
Image
this is treeview.bas GUI:
Image
this is my code:

Code: Select all

Function FRMMAIN_WM_CREATE ( _
                           hWndForm As hWnd, _          ' handle of Form
                           ByVal UserData As Integer _  ' optional user defined value
                           ) As Integer
    FF_ListView_InsertColumn( HWND_FRMMAIN_LTVMARKET, 0, "商品", LVCFMT_LEFT, 120)
    FF_ListView_InsertColumn( HWND_FRMMAIN_LTVMARKET, 1, "Goods", LVCFMT_LEFT, 120)
    FF_TreeView_InsertItem( HWND_FRMMAIN_TREEVIEW1, 0, "Goods_商品", 0, 0, 0 )
    FF_Control_SetText( HWND_FRMMAIN_CMDBUY, "商品" )
    FF_Control_SetText( HWND_FRMMAIN_CMDSALE, "商品_A")
End Function
YogiYang
Posts: 18
Joined: Nov 18, 2011 10:37

Post by YogiYang »

Thanks for posting such a useful IDE.

Practically it would be a nightmare to use FreeBasic without such a unified IDE!
DMFNR
Posts: 5
Joined: Sep 29, 2010 11:57
Location: Milwaukee, Wisconsin
Contact:

Post by DMFNR »

This is a question for Paul, and it might have been asked earlier in the thread, but I don't have the time at the moment to read through all 15 pages, but have you given any thought to opening up your code and releasing this project under a FLOSS license? I realize you have the Power Basic version of your tool for sale, so you're probably concerned about someone porting it back to PB and killing your market, but on the other hand, it has to be a ton of work stabilizing and maintaining a project like this on your own, and I'm sure the Free Basic community would love to lend a hand to you in the development of this project.
PaulSquires
Posts: 1012
Joined: Jul 14, 2005 23:41

Post by PaulSquires »

DMFNR wrote:This is a question for Paul, and it might have been asked earlier in the thread, but I don't have the time at the moment to read through all 15 pages, but have you given any thought to opening up your code and releasing this project under a FLOSS license? I realize you have the Power Basic version of your tool for sale, so you're probably concerned about someone porting it back to PB and killing your market, but on the other hand, it has to be a ton of work stabilizing and maintaining a project like this on your own, and I'm sure the Free Basic community would love to lend a hand to you in the development of this project.
Maybe someday I will open up the code but not right now. It is written in PowerBasic, not Freebasic so it would take a long time to port the enormous amount of code over to FB. The code has evolved over the course of the last 5 or 6 years and has already been completely rewritten twice. Writing the internal code editor from scratch was a lot of work (well, easy until I got to the code folding part). :-)
YogiYang
Posts: 18
Joined: Nov 18, 2011 10:37

Post by YogiYang »

@Paul,

Are there any step by step tutorial teaching as to how to use fireFly IDE.

I know how to use it but if there are any ready made tutorials then it would be nice as I can pass them to my staff and they can learn to program in FreeBasic by their own.

TIA

Yogi Yang
YogiYang
Posts: 18
Joined: Nov 18, 2011 10:37

Re: FireFly Visual Designer for FreeBASIC (Updated Oct 22, 2

Post by YogiYang »

@Paul,

While playing with FF I observed that custom controls part of Tools is empty.

How can we add Custom Controls to FF?
PaulSquires
Posts: 1012
Joined: Jul 14, 2005 23:41

Re: FireFly Visual Designer for FreeBASIC (Updated Oct 22, 2

Post by PaulSquires »

I have built (and others have built) custom controls for FireFly but those were built using another programming language. I have not gotten to the point where I have added samples of custom controls written using FB. maybe some day I'll get a sample FB created custom control written that can then be used as a template for other controls.
YogiYang
Posts: 18
Joined: Nov 18, 2011 10:37

Re: FireFly Visual Designer for FreeBASIC (Updated Oct 22, 2

Post by YogiYang »

Are custom controls same as standard controls?

I mean can I try to modify a standard control that you have supplied and put the same in custom control folder to add that control to Custom Control?
PaulSquires
Posts: 1012
Joined: Jul 14, 2005 23:41

Re: FireFly Visual Designer for FreeBASIC (Updated Oct 22, 2

Post by PaulSquires »

No, it is not as simple as that.

You need to write the control yourself. Compile it to a DLL so that it can be used from within the FireFly design environment. In the final produced exe the custom control can be distributed as either the DLL or as pure source code if you prefer that route. The tricky part is creating an interface file for your control so that FireFly can use it in the design environment so when you change properties for the control via the Properties editor then the changes will take effect and be reflected on the control.

For example, here is the interface file for the FireTextBox custom control:

Code: Select all

#FireFly_Custom_Control#

[Control]
controlname     = FireTextBox
description     = FireTextBox (Custom TextBox replacement)
author          = PlanetSquires Software
copyright       = PlanetSquires Software (c) 2009
version         = 1.00
dll_filename    = FireTextBox.dll
dll_required    = 0
source_filename = FireTextBox.inc
toolbox_bitmap  = N_Fire_Text.bmp
toolbox_cursor  = C_Fire_Text.cur
toolbox_tooltip = FireTextBox (Custom TextBox replacement)
delimiter       = |
uniqueid        = {5D834536-1276-7999-766C-398746547920}
use_loadlibrary = 0
use_initialize_action = 0
initialize_action_designer = 
initialize_action_code = 
create_action   = FIRETEXTBOX.DLL|FIRETEXTBOX|FIRETEXTBOX|BYVAL LONG //CTRL_PARENT//|BYVAL LONG //CTRL_ID//|BYVAL LONG //CTRL_LEFT//|BYVAL LONG //CTRL_TOP//|BYVAL LONG //CTRL_WIDTH//|BYVAL LONG //CTRL_HEIGHT//|BYVAL LONG //CTRL_STYLE//|BYVAL LONG //CTRL_EXSTYLE//
        

[Property]
name        = name|(Name)
curvalue    = FireTextBox
itemtype    = Edit|1

[Property]
name        = windowstyles|(WindowStyles)
curvalue    =
itemtype    = Styles
        
[Property]
name        = about|About
curvalue    =
itemtype    = About

[Property]
name        = custom|(Custom)
curvalue    =
itemtype    = Custom

[Property]
name          = designstyle|DesignStyle
curvalue      = 0 - Traditional
itemtype      = Combo
cmbitems      = 0 - Traditional|1 - Modern
equates       = 0|1
prop_action   = USER32.DLL|SendMessage|SendMessageA|BYVAL LONG //CTRL_HWND//|BYVAL LONG 3084|BYVAL LONG //PROP_VALUE//|BYVAL LONG 1
prop_describe = Set whether to use traditional textbox style or more modern style.

[Property]
name        = backcolor|BackColor
curvalue    = QB,16777215
itemtype    = Color
prop_action = USER32.DLL|SendMessage|SendMessageA|BYVAL LONG //CTRL_HWND//|BYVAL LONG 3077|BYVAL LONG //PROP_VALUE//|BYVAL LONG 1
prop_describe = Set the background color of the control when it does not have focus.

[Property]
name        = backhotcolor|BackHotColor
curvalue    = QB,16777215
itemtype    = Color
prop_action = USER32.DLL|SendMessage|SendMessageA|BYVAL LONG //CTRL_HWND//|BYVAL LONG 3082|BYVAL LONG //PROP_VALUE//|BYVAL LONG 1
prop_describe = Set the background color of the control when it gains focus.

[Property]
name        = controlindex|ControlIndex
curvalue    = 0
itemtype    = Edit|1

[Property]
name        = font|Font
curvalue    = Tahoma,-11,0,0,0,400,0,0,0,0,0,0,0,0
itemtype    = Font

[Property]
name        = height|Height
curvalue    =
itemtype    = Edit|1

[Property]
name        = locked|Locked
curvalue    = False
itemtype    = Combo
cmbitems    = False|True
equates     = False|True

[Property]
name        = left|Left
curvalue    =
itemtype    = Edit|1
        
[Property]
name        = leftmargin|LeftMargin
curvalue    = 0
itemtype    = Edit|1

[Property]
name        = linehotcolor|LineHotColor
curvalue    = QB,8388608
itemtype    = Color
prop_action = USER32.DLL|SendMessage|SendMessageA|BYVAL LONG //CTRL_HWND//|BYVAL LONG 3075|BYVAL LONG //PROP_VALUE//|BYVAL LONG 1
prop_describe = Set the line color when the control gains keyboard focus. Modern style only.

[Property]
name        = linenormalcolor|LineNormalColor
curvalue    = QB,8421504
itemtype    = Color
prop_action = USER32.DLL|SendMessage|SendMessageA|BYVAL LONG //CTRL_HWND//|BYVAL LONG 3076|BYVAL LONG //PROP_VALUE//|BYVAL LONG 1
prop_describe = Set the line color when the control loses keyboard focus. Modern style only.

[Property]
name          = readonly|ReadOnly
curvalue      = 0 - False
itemtype      = Combo
cmbitems      = 0 - False|1 - True
equates       = 0|1
prop_action   = USER32.DLL|SendMessage|SendMessageA|BYVAL LONG //CTRL_HWND//|BYVAL LONG 3083|BYVAL LONG //PROP_VALUE//|BYVAL LONG 1
prop_describe = Set whether the edit control accepts input.

[Property]
name        = resizerules|ResizeRules
curvalue    = 0
itemtype    = ResizeRules

[Property]
name        = rightmargin|RightMargin
curvalue    = 0
itemtype    = Edit|1

[Property]
name          = rightaligntext|RightAlignText
curvalue      = 0 - False
itemtype      = Combo
cmbitems      = 0 - False|1 - True
equates       = 0|1
prop_action   = USER32.DLL|SendMessage|SendMessageA|BYVAL LONG //CTRL_HWND//|BYVAL LONG 3085|BYVAL LONG //PROP_VALUE//|BYVAL LONG 1
prop_describe = Aligns text to the right edge of the control. Useful for numeric data input.

[Property]
name          = seltext|SelText
curvalue      = 0 - False
itemtype      = Combo
cmbitems      = 0 - False|1 - True
equates       = 0|1
prop_action   = USER32.DLL|SendMessage|SendMessageA|BYVAL LONG //CTRL_HWND//|BYVAL LONG 3078|BYVAL LONG //PROP_VALUE//|BYVAL LONG 1
prop_describe = Selects the text in the edit control when the control gains focus.

[Property]
name          = showselector|ShowSelector
curvalue      = 0 - False
itemtype      = Combo
cmbitems      = 0 - False|1 - True
equates       = 0|1
prop_action   = USER32.DLL|SendMessage|SendMessageA|BYVAL LONG //CTRL_HWND//|BYVAL LONG 3080|BYVAL LONG //PROP_VALUE//|BYVAL LONG 1
prop_describe = Set whether the popup selector icon should shown. Modern style only.

[Property]
name          = showtriangle|ShowTriangle
curvalue      = 1 - True
itemtype      = Combo
cmbitems      = 0 - False|1 - True
equates       = 0|1
prop_action   = USER32.DLL|SendMessage|SendMessageA|BYVAL LONG //CTRL_HWND//|BYVAL LONG 3079|BYVAL LONG //PROP_VALUE//|BYVAL LONG 1
prop_describe = Set whether the left hand side triangle will be shown when the control gains focus. Modern style only.

[Property]
name        = tag|Tag
curvalue    = 
itemtype    = Edit|1

[Property]
name        = tag2|Tag2
curvalue    = 
itemtype    = Edit|1

[Property]
name        = text|Text
curvalue    = FireTextBox
itemtype    = Edit|1

[Property]
name        = textcolor|TextColor
curvalue    = QB,8388608
itemtype    = Color
prop_action = USER32.DLL|SendMessage|SendMessageA|BYVAL LONG //CTRL_HWND//|BYVAL LONG 3072|BYVAL LONG //PROP_VALUE//|BYVAL LONG 1
prop_describe = Set the text color when the control is enabled.

[Property]
name        = texthotcolor|TextHotColor
curvalue    = QB,8388608
itemtype    = Color
prop_action = USER32.DLL|SendMessage|SendMessageA|BYVAL LONG //CTRL_HWND//|BYVAL LONG 3073|BYVAL LONG //PROP_VALUE//|BYVAL LONG 1
prop_describe = Set the text color when the control gains keyboard focus.

[Property]
name        = textdisablecolor|TextDisableColor
curvalue    = QB,8421504
itemtype    = Color
prop_action = USER32.DLL|SendMessage|SendMessageA|BYVAL LONG //CTRL_HWND//|BYVAL LONG 3074|BYVAL LONG //PROP_VALUE//|BYVAL LONG 1
prop_describe = Set the text color when the control is disabled.

[Property]
name        = top|Top
curvalue    = 
itemtype    = Edit|1
        
[Property]
name        = width|Width
curvalue    =
itemtype    = Edit|1



[Message]
name          = FIRETEXTBOX_MSG_CHANGE
declare       = (ControlIndex As Long, hWndForm As Dword, hWndControl As Dword, idTextControl As Long) As Long
call          = Fly_nResult = //MESSAGE// (Fly_ControlIndex, hWndForm, @Fly_pNotify.hwndFrom,  @Fly_pNotify.idFrom)
notification  = Notify_Notification
default = True

[Message]
name          = FIRETEXTBOX_MSG_SETFOCUS
declare       = (ControlIndex As Long, hWndForm As Dword, hWndControl As Dword, idTextControl As Long) As Long
call          = Fly_nResult = //MESSAGE// (Fly_ControlIndex, hWndForm, @Fly_pNotify.hwndFrom,  @Fly_pNotify.idFrom)
notification  = Notify_Notification

[Message]
name          = FIRETEXTBOX_MSG_KEYPRESS
declare       = (ControlIndex As Long, hWndForm As Dword, hWndControl As Dword, idTextControl As Long, pKeyPressNotify As Dword) As Long
call          = Fly_nResult = //MESSAGE// (Fly_ControlIndex, hWndForm, @Fly_pNotify.hwndFrom,  @Fly_pNotify.idFrom, Fly_pNotify)
notification  = Notify_Notification

[Message]
name          = FIRETEXTBOX_MSG_KILLFOCUS
declare       = (ControlIndex As Long, hWndForm As Dword, hWndControl As Dword, idTextControl As Long) As Long
call          = Fly_nResult = //MESSAGE// (Fly_ControlIndex, hWndForm, @Fly_pNotify.hwndFrom,  @Fly_pNotify.idFrom)
notification  = Notify_Notification

[Message]
name          = FIRETEXTBOX_MSG_CLICKED
declare       = (ControlIndex As Long, hWndForm As Dword, hWndControl As Dword, idTextControl As Long) As Long
call          = Fly_nResult = //MESSAGE// (Fly_ControlIndex, hWndForm, @Fly_pNotify.hwndFrom,  @Fly_pNotify.idFrom)
notification  = Notify_Notification

[Message]
name = CUSTOM

YogiYang
Posts: 18
Joined: Nov 18, 2011 10:37

Re: FireFly Visual Designer for FreeBASIC (Updated Oct 22, 2

Post by YogiYang »

Thanks for detailed insight into Custom Controls for FF. But I feel it is way too complicated for me at this stage.

Personally I feel that using DLL(s) and then distributing them with executable is not what I would personally prefer in case of FreeBasic.

It would have been better if there was some support for Library that will get compiled into the final executable.
Post Reply