| View previous topic :: View next topic |
| Author |
Message |
Herman Kieskamp Member
Joined: 11 Oct 2004 Posts: 157 Location: Netherlands
|
Posted: Fri Nov 20, 2009 4:23 am Post subject: Status request. |
|
|
Hi Dominic,
can/will you give a status on v.3. ?
I'd rather spent 149,-- on upgrade to Phoenix, then 49,-- on pbforms (for this
xmas).
(Don't worry Bob, I'll buy yours probably anyway too).
Herman. |
|
| Back to top |
|
 |
TechSupport Site Admin
Joined: 14 Sep 2004 Posts: 683 Location: Mississauga ON, Canada
|
Posted: Sun Nov 22, 2009 6:29 pm Post subject: |
|
|
It is going well but slow. I had to revisit one of the core routines in the Phoenix 3.0
editor after I saw the performance of another product. Three minutes plus to load a
50000-thousand line code file is unacceptable. Two seconds to load the same file in
Phoenix was also unacceptable and meant that I could not use my own product.
But don't worry, a code file can now contain half a million lines of code and IntelliSense
in Phoenix is not going to slow you down. |
|
| Back to top |
|
 |
Herman Kieskamp Member
Joined: 11 Oct 2004 Posts: 157 Location: Netherlands
|
Posted: Tue Nov 24, 2009 2:53 am Post subject: |
|
|
| TechSupport wrote: | | It is going well but slow. |
does this also mean no mesmarizing Phoenix to rise above the horizon this xmas?
Herman. |
|
| Back to top |
|
 |
Andrew Lindsay Member
Joined: 18 Sep 2004 Posts: 43 Location: Perth, Australia
|
Posted: Mon Apr 12, 2010 8:01 pm Post subject: |
|
|
Dominic,
Just saw your posts over on the PB site regarding Excel Com automation. Has this been written using Phoenix 3.0? Any news when the new version will be coming out. I've got my 40th birthday coming up next month and need to get my wish list together... |
|
| Back to top |
|
 |
TechSupport Site Admin
Joined: 14 Sep 2004 Posts: 683 Location: Mississauga ON, Canada
|
Posted: Mon Apr 12, 2010 10:35 pm Post subject: |
|
|
| I used Phoenix2.0 to create and build the low-level COM and PB9 COM versions. |
|
| Back to top |
|
 |
Andrew Lindsay Member
Joined: 18 Sep 2004 Posts: 43 Location: Perth, Australia
|
Posted: Mon Apr 12, 2010 10:48 pm Post subject: |
|
|
For those that are technically challenged - do you have any cheat sheets on how this is done?
Regards
Andrew |
|
| Back to top |
|
 |
TechSupport Site Admin
Joined: 14 Sep 2004 Posts: 683 Location: Mississauga ON, Canada
|
Posted: Wed Apr 14, 2010 7:58 pm Post subject: |
|
|
| You want to dabble in low-level COM? |
|
| Back to top |
|
 |
Andrew Lindsay Member
Joined: 18 Sep 2004 Posts: 43 Location: Perth, Australia
|
Posted: Wed Apr 14, 2010 8:20 pm Post subject: |
|
|
I work with excel every day and the biggest bug bear I have is the (lack of) speed when using BBQ for formulas or interfacing with work sheets. I write a lot of user functions in PB to XLLs but this can be a time consuming activity. I have thought of writing a program that would take a CBS function and then convert it to pb xll code. But I am often too busy/lazy to do it.
That said, I am always interested in learning new tricks.
Regards
Andrew |
|
| Back to top |
|
 |
TechSupport Site Admin
Joined: 14 Sep 2004 Posts: 683 Location: Mississauga ON, Canada
|
Posted: Tue Apr 27, 2010 12:42 am Post subject: |
|
|
It has been a while since the last status report. Well, it was a list of some of the new
IntelliSense features that gave away too much info.
The two functions of the "Find In Files" dialog in Phoenix 2.0 have been divided between two
dialogs in Phoenix 3.0. The first dialog handles the "Find In Files" option and the second
dialog handles whatever the second function was. It will probably take another month to
complete the second dialog.
Creating the second dialog spawned a third dialog which users of Phoenix will find very useful.
It is called Validate End Constructs... a real time saver. |
|
| Back to top |
|
 |
Herman Kieskamp Member
Joined: 11 Oct 2004 Posts: 157 Location: Netherlands
|
Posted: Wed Apr 28, 2010 5:49 am Post subject: |
|
|
| TechSupport wrote: |
Creating the second dialog spawned a third dialog which users of Phoenix will find very useful.
It is called Validate End Constructs... a real time saver. |
You mean validate the flow of nested constructions?
We don't have to rely on indention for a check on proper nesting ?
(one of the reasons i allways split if-then procedures over more lines. so I can indent, and I am not confused by one-liners). (political statement? )
Herman. |
|
| Back to top |
|
 |
TechSupport Site Admin
Joined: 14 Sep 2004 Posts: 683 Location: Mississauga ON, Canada
|
Posted: Wed Apr 28, 2010 8:22 am Post subject: |
|
|
| Quote: |
You mean validate the flow of nested constructions?
We don't have to rely on indention for a check on proper nesting ?
|
I guess I let the cat out of the bag again.
For example, if an error is introduced in the DialogProc function of the Tray.bas sample that
ships with the PowerBASIC compiler(see code at end of post), the compiler will generate the
following log file:
| Quote: |
PowerBASIC for Windows
PB/Win Version 9.03
Copyright (c) 1996-2010 PowerBasic Inc.
Englewood, Florida USA
All Rights Reserved
Error 449 in C:\PBWin90\Samples\Sdk\Tray\Tray.bas(130:005): SELECT expected
Line 130: END SELECT
==============================
Compile failed at 7:47:47 AM on 28/04/2010
|
Now imagine if this was a 60000 line file in a project with many files... pick an expletive.
| Code: |
FUNCTION DialogProc (BYVAL hDlg AS DWORD, BYVAL wMsg AS DWORD, _
BYVAL wParam AS DWORD, BYVAL lParam AS LONG) AS LONG
LOCAL p AS POINTAPI
STATIC hMenu AS DWORD
STATIC ti AS NOTIFYICONDATA
SELECT CASE AS LONG wMsg
CASE %WM_INITDIALOG ' sent right before main dialog is shown
' Select first Option control
SendDlgItemMessage hDlg, 101, %BM_SETCHECK, %BST_CHECKED, 0
' Get Menu Handle
hMenu = GetSubMenu(LoadMenu(g_hInst, "POPUPMENU"), 0)
IF hMenu THEN
' Add tray icon
ti.cbSize = SIZEOF(ti)
ti.hWnd = hDlg
ti.uID = g_hInst
ti.uFlags = %NIF_ICON OR %NIF_MESSAGE OR %NIF_TIP
ti.uCallbackMessage = %WM_TRAYICON
ti.hIcon = LoadIcon(g_hInst, "FACE1")
ti.szTip = "Task Tray Example"
Shell_NotifyIcon %NIM_ADD, ti
DestroyIcon ti.hIcon
FUNCTION = 1
CASE %WM_TRAYICON
SELECT CASE AS LONG LOWRD(lParam)
' Left button press
CASE %WM_LBUTTONDOWN
IF IsWindowVisible(hDlg) = %FALSE THEN
ShowWindow hDlg, %SW_SHOW
END IF
' Right button press
CASE %WM_RBUTTONDOWN
IF IsWindowVisible(hDlg) = %FALSE THEN
SetForegroundWindow hDlg
GetCursorPos p
TrackPopupMenu hMenu, 0, p.x, p.y, 0, hDlg, BYVAL %NULL
PostMessage hDlg, %WM_NULL, 0, 0
END IF
END SELECT
CASE %WM_DESTROY
' Remove the tray icon if the application is closed
Shell_NotifyIcon %NIM_DELETE, ti
CASE %WM_COMMAND
SELECT CASE LOWRD(wParam)
CASE 101 TO 105
' Change tray icon
ti.hIcon = LoadIcon(g_hInst, "FACE" + FORMAT$(LOWRD(wParam) - 100))
Shell_NotifyIcon %NIM_MODIFY, ti
DestroyIcon ti.hIcon
CASE %IDOK
' Display the about box from resource - see Tray.rc
DialogBox g_hInst, BYVAL 101&, %HWND_DESKTOP, CODEPTR(AboutProc)
CASE %IDCANCEL
' Make sure they want to exit
IF MessageBox(hDlg, _
"Close Tray Example and remove its icon from the task tray?", _
"Tray Example", _
%MB_ICONEXCLAMATION OR %MB_OKCANCEL) = %IDOK THEN
EndDialog hDlg, 0
FUNCTION = 1
END IF
END SELECT
CASE %WM_SYSCOMMAND
' If either the minimize or close buttons are pressed, hide the
' window so it doesn't appear in the task bar.
SELECT CASE (wParam AND &H0FFF0)
CASE %SC_MINIMIZE
ShowWindow hDlg, %SW_HIDE
FUNCTION = 1
EXIT FUNCTION
CASE %SC_CLOSE
ShowWindow hDlg, %SW_HIDE
FUNCTION = 1
EXIT FUNCTION
END SELECT
END SELECT
END FUNCTION
|
|
|
| Back to top |
|
 |
|