You are so CLOSE to a vb6 Replacement...
You are so CLOSE to a vb6 Replacement...
Hello Group,
I have been looking for a proper vb6 replacement for about 12 years now. I have seen pureBasic in the past but just had a ne look at it in the last few days. Looks like much prgress has been made, and in many ways in the current state it is superior to vb6.
Now I have a question to ask: are there plans to evolve purebasic to have closer functionality to vb6. I really believe your user base would explode if you could add a few features.
here are my suggestions:
1. Make it so that when I double click on a user control in a form designer a default event is created and the pb file
2. make is so the code for opening a new window is automatic.. again maybe the pb file gets auto created
3. I am sure there is more suggestions, but as 15 year vb6 developer, if I tried PB and had the listed above I would be exstatic
I know there may be many users here who don't want some of this automatic code generation, so it would be great if you could have a vb6 mode option
Like I said I have only studied PB for a couple of hours but was wondering if there is hope that a version that comes closer to VB6 is ever possible. You guys are SO CLOSE>>>
I have been looking for a proper vb6 replacement for about 12 years now. I have seen pureBasic in the past but just had a ne look at it in the last few days. Looks like much prgress has been made, and in many ways in the current state it is superior to vb6.
Now I have a question to ask: are there plans to evolve purebasic to have closer functionality to vb6. I really believe your user base would explode if you could add a few features.
here are my suggestions:
1. Make it so that when I double click on a user control in a form designer a default event is created and the pb file
2. make is so the code for opening a new window is automatic.. again maybe the pb file gets auto created
3. I am sure there is more suggestions, but as 15 year vb6 developer, if I tried PB and had the listed above I would be exstatic
I know there may be many users here who don't want some of this automatic code generation, so it would be great if you could have a vb6 mode option
Like I said I have only studied PB for a couple of hours but was wondering if there is hope that a version that comes closer to VB6 is ever possible. You guys are SO CLOSE>>>
Re: You are so CLOSE to a vb6 Replacement...
For me, PB blew by VB6 around v4.5.
Spend time focusing on your project's meaning, and ignore the temptation to throw gadgets at every whim.
Once you learn the windows & gadget commands and processing event loops, you will run circles around your previous "RAD" approach. Text is your friend.
Spend time focusing on your project's meaning, and ignore the temptation to throw gadgets at every whim.
Once you learn the windows & gadget commands and processing event loops, you will run circles around your previous "RAD" approach. Text is your friend.
The nice thing about standards is there are so many to choose from. ~ Andrew Tanenbaum
Re: You are so CLOSE to a vb6 Replacement...
Why do newbies always waltz in here and proclaim that PureBasic's user base is tiny?axisdj wrote:your user base would explode if you could add a few features
It's like there's this online reputation that PureBasic is new or an amateur language, but it's been around for over 10 years and Fred makes a living from it.
PureBasic has been a solid Visual Basic replacement for many years now. I wouldn't go back to VB with its declarations, runtimes, and bloated executables if you paid me. (Well, maybe if you paid me a million dollars).
Re: You are so CLOSE to a vb6 Replacement...
I understand.. and I am working on understanding the approach. But I think PB can take over the VB6 market that is left with a few minor changes. I am sure you had the same experience, but vb6 spoils us with many things that get done automatically. If a new user can try PB and get close to how vb6 works this proucts popularity will skyRocket.skywalk wrote:For me, PB blew by VB6 around v4.5.
Spend time focusing on your project's meaning, and ignore the temptation to throw gadgets at every whim.
Once you learn the windows & gadget commands and processing event loops, you will run circles around your previous "RAD" approach. Text is your friend.
I create products that lean to user prefeerence and what I have learned is no matter how immature or simplistic the users request, if you implement the feature workflow as they expect, your product will catch on like wildfire, if on the other hand you force them to conform to your 'Better' way, you will not grow your user base.
my 2 cents
Re: You are so CLOSE to a vb6 Replacement...
I am sorry, I meant no insult at all...Dude wrote:Why do newbies always waltz in here and proclaim that PureBasic's user base is tiny?axisdj wrote:your user base would explode if you could add a few features
It's like there's this online reputation that PureBasic is new or an amateur language, but it's been around for over 10 years and Fred makes a living from it.
PureBasic has been a solid Visual Basic replacement for many years now. I wouldn't go back to VB with its declarations, runtimes, and bloated executables if you paid me. (Well, maybe if you paid me a million dollars).
It is just I have been looking for a replacement for so long, and I see a product that is so close I am excited.
From looking at the PB framework, it is no amateur language, it has everything needed to compete in todays world, and in many ways beats all other cross platform options. I think if there were just a couple of minor automation's done, ( or maybe even a a way for users to create plugins to automate) a vb6 dev could move to pb in hours and be productive.
Please know there is not insult about PB, it is absolutely amazing.
Re: You are so CLOSE to a vb6 Replacement...
are there any cheat sheets out there that will cross reference vb6 commands and methods to PB?skywalk wrote:For me, PB blew by VB6 around v4.5.
Spend time focusing on your project's meaning, and ignore the temptation to throw gadgets at every whim.
Once you learn the windows & gadget commands and processing event loops, you will run circles around your previous "RAD" approach. Text is your friend.
Re: You are so CLOSE to a vb6 Replacement...
You can still deliver your users' preferences in your apps. That does not mean you have to bog down the PB IDE with VB6 like RAD. I create all my gui's with Macro's. And then edit their events as needed. I have no need for the graphical Form editor except maybe for an XY position if I am lazy.
I will get you some VB6 cheat sheet that I have from way back.
I will get you some VB6 cheat sheet that I have from way back.
The nice thing about standards is there are so many to choose from. ~ Andrew Tanenbaum
Re: You are so CLOSE to a vb6 Replacement...
Code: Select all
; COMPARISONS OF VB6 <-> PB:
; VB6 Code --> PB Code
; Do Until Eof(inf) While Eof(inf) = 0
; ; do stuff here ;do stuff here
; Loop Wend
;-PB Gadgets(description) = VB6 Control - prefix used
; 1. ButtonGadget(BU) = CommandButton - cmd
; gn = ButtonGadget (#PB_Any, x, y, Width, Height, Text$ [, Flags])
; 2. ButtonImageGadget(BI) = CommandButton w/API
; gn = ButtonImageGadget (#PB_Any, x, y, Width, Height, ImageID [, Flags])
; 3. CalendarGadget(CA) = DTPicker or NA - dtp
; gn = CalendarGadget (#PB_Any, x, y, Width, Height [, Date [, Flags]])
; 4. CanvasGadget(CG) = PictureBox pb or ImageBox img
; gn = CanvasGadget (#PB_Any, x, y, Width, Height [, Flags])
; 5. CheckBoxGadget(XB) = CheckBox - chk
; gn = CheckBoxGadget (#PB_Any, x, y, Width, Height, Text$ [, Flags])
; 6. ComboBoxGadget(CB) = ComboBox - cmb
; gn = ComboBoxGadget (#PB_Any, x, y, Width, Height [, Flags])
; 7. ContainerGadget(CN)(1 Panel) = NA
; gn = ContainerGadget (#PB_Any, x, y, Width, Height [, Flags])
; 8. DateGadget(DA)(StringGadget) = MaskedEdit control Or TextBox edit w/code
; gn = DateGadget (#PB_Any, x, y, Width, Height [, Mask$ [, Date [, Flags]]])
; 9. EditorGadget(E) = TextBox - txt
; Automatic vertical and horizontal scrollbars
; No context menu. (right mouse click), but does support ctrl+c, etc.
; gn = EditorGadget (#PB_Any, x, y, Width, Height [, Flags])
; 10.ExplorerComboGadget(XC) = DriveListBox, DirectoryListBox, FileListBox - requires code To assemble pieces
; gn = ExplorerComboGadget (#PB_Any, x, y, Width, Height, Directory$, [, Flags])
; 11.ExplorerListGadget(XL) = NA
; gn = ExplorerListGadget (#PB_Any, x, y, Width, Height, Directory$, [, Flags])
; 12.ExplorerTreeGadget(XT) = DriveListBox ++
; gn = ExplorerTreeGadget (#PB_Any, x, y, Width, Height, Directory$, [, Flags])
; 13.FrameGadget(FR) = Frame - fram
; gn = FrameGadget (#PB_Any, x, y, Width, Height, Text$ [, Flags])
; 14.HyperLinkGadget(HL) = Label w/code
; gn = HyperLinkGadget (#PB_Any, x, y, Width, Height, Text$, Color [, Flags])
; 15.IPAddressGadget(IP) = NA Or MaskedEditBox w/code
; gn = IPAddressGadget (#PB_Any, x, y, Width, Height)
; 16.ImageGadget(IM) = Image - img, PictureBox - pb
; gn = ImageGadget (#PB_Any, x, y, Width, Height, ImageID [, Flags])
; 17.ListIconGadget = ListView or MSGridControl
; gn = ListIconGadget (#PB_Any, x, y, Width, Height, Title$, TitleWidth [, Flags])
; 18.ListViewGadget(LV) = ListBox - lb
; gn = ListViewGadget (#PB_Any, x, y, Width, Height [, Flags])
; 19.MDIGadget(MD) = MDI Form w/code
; gn = MDIGadget (#PB_Any, x, y, Width, Height, SubMenu, MenuItem [, Flags])
; 20.OptionGadget(OP) = OptionButton - opt
; gn = OptionGadget (#PB_Any, x, y, Width, Height, Text$)
; 21.PanelGadget(PA) = SSTab - sst
; gn = PanelGadget (#PB_Any, x, y, Width, Height)
; 22.ProgressBarGadget(PB) = ProgressBar - pbar
; gn = ProgressBarGadget (#PB_Any, x, y, Width, Height, Minimum, Maximum [, Flags])
; 23.ScrollAreaGadget(SA) = NA
; gn = ScrollAreaGadget (#PB_Any, x, y, Width, Height, ScrollAreaWidth, ScrollAreaHeight [, ScrollStep [, Flags]])
; 24.ScrollBarGadget(SB) = HScrollBar, VScrollBar - hsb,vsb
; gn = ScrollBarGadget (#PB_Any, x, y, Width, Height, Minimum, Maximum, PageLength [, Flags])
; 25.ShortcutGadget(SK) = NA
; gn = ShortcutGadget (#PB_Any, x, y, Width, Height, Shortcut)
; 26.SpinGadget(SP) = UpDown - spin
; gn = SpinGadget (#PB_Any, x, y, Width, Height, Minimum, Maximum [, Flags])
; 27.SplitterGadget(SR) = NA
; gn = SplitterGadget (#PB_Any, x, y, Width, Height, #Gadget1, #Gadget2 [, Flags])
; 28.StringGadget(S) = TextBox w/single line only, txt
; gn = StringGadget (#PB_Any, x, y, Width, Height, Content$ [, Flags])
; Add #ES_MULTILINE flag, and it will handle more lines, but no scrollbars when text overflows.
; Use SetWindowLongPtr_() to change styles if mixing TextGadget Constants fails.
; 29.TextGadget(T) (no events) = Label - lbl
; gn = TextGadget (#PB_Any, x, y, Width, Height, Text$ [, Flags])
; 30.TrackBarGadget(TB) = NA, use tiny scrollbar w/code
; gn = TrackBarGadget (#PB_Any, x, y, Width, Height, Minimum, Maximum [, Flags])
; 31.TreeGadget(TV) = TreeView, trv
; gn = TreeGadget (#PB_Any, x, y, Width, Height [, Flags])
; 32.WebGadget(WG) = NA or any IE component w/API code
; gn = WebGadget (#PB_Any, x, y, Width, Height, URL$ [, Flags])
;
; Additional Gadgets...
;
; 1. Window(W) = Form - frm
; wN = OpenWindow (#PB_Any, x, y, InnerWidth, InnerHeight, Title$ [, Flags [, ParentWindowID]])
; 2. AddGadgetItem = NA
; wN = AddGadgetItem (#PB_Any, Position, Text$ [, ImageID [, Flags]])
; ^^^ with MDI only
; AddGadgetItem (gn, Position, Text$ [, ImageID [, Flags]])
; 3. OpenGadgetList(O) = NA
; OpenGadgetList (gn [, Item])
; 4. CloseGadgetList(C) = NA
; CloseGadgetList ()
; 5. StatusBar(ST) = NA
; gn = CreateStatusBar (#PB_Any, WindowID(wN))
; AddStatusBarField (#PB_Ignore = Width)
; 6. ScintillaGadget = NA
; gn = ScintillaGadget (#PB_Any, x, y, Width, Height, @Callback())
; 7. Timer(TM)
; AddWindowTimer(#Window, Timer, Timeout)
; 8. KeyboardShortcut(KS) = NA
; AddKeyboardShortcut(#Window, Key, Event)
;
;- Modal vs Non-Modal windows:
; MessageRequester("try","PB is always Modal.")
; MessageBox_(hWnd,"Same as PB MsgBox, TopMost window.","try", #MB_ICONASTERISK | #MB_APPLMODAL); | #MB_SYSTEMMODAL);| #MB_TASKMODAL)
; MessageBox_(0,"No owner window allows parent app to respond to events.","try", #MB_ICONASTERISK | #MB_APPLMODAL); | #MB_SYSTEMMODAL);| #MB_TASKMODAL)
Code: Select all
; DEF: When to use array|list|map?
; Map: Unique list, no order. Text defines elements.
; Ex. Menu items, except watch for sub-menus with same names.
; MapSize(map()) returns base 1 count.
; List: Ordered list. Usually small and unknown size at creation.
; Ex. Retrieving a table's contents without knowing count.
; Or appending to existing list without care to size.
; ListSize(ll()) returns base 1 count.
; Array: When speed or list size demand.
; ArraySize(ar()) returns base 0 count.
;
; NOTES: Contains general use Array|List|Map functions/subroutines
; Array|List|Map are passed as ByRef parameters to Procedures.
; Meaning, any changes in the Procedure affect the original array|list|map.
; If using Shared in the Procedure or Global arrays,
; then no need to be pass 'Array|List|Map' parameter.
;
; To conform with C/C++ Structure format and allow direct API structure porting:
; Static arrays defined in structures are different than Dynamic arrays defined by Dim/ReDim.
; a[2] allocates an array from 0 to 1.
; But,
; Dim a(2) allocates an array from 0 To 2.
;
; To get size of a static array use SizeOf():
; Structure myStruc
; aX.b[128]
; aY.b[5]
; s.s{32} ; fixed length strings are ok, but not variable length.
; EndStructure
; Define me.myStruc
; Debug Sizeof(me\aX)
; For nested Structures, use combinations of Sizeof() and Len()
;
; Dynamic Multidimensional arrays in Structures:
; Structure ThruLossDef
; nPts.i ; num freq pairs
; RFPath$ ; RFpath = "TXG-ANT",etc.
; Array f.d(0,0) ; array[S21(dB), F(MHz)]
; Array S21.d(0,0) ; array[S21(dB), F(MHz)]
; EndStructure
; Global Dim iTL.ThruLossDef(0) ; 1D, varies by RFPath
; Dim itl(0)\f(10,10) ;<-- Dim 1st, then can ReDim last index later
;
; Swap cmd does NOT work on entire array. Only individual elements.
; Use CopyArray() instead.
;
; Multidimensional arrays in memory:
; Ex. Human perceived 2D array(matrix) of 3 rows x 3 cols:
; 0 1 2 <-- Col
; 0 | 1 2 3 | R
; 1 | 4 5 6 | o
; 2 | 7 8 9 | w
;
; Col-major order: (VB6/Matlab/Fortran step memory contiguously by each col.)
; +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; | 1 | 4 | 7 | 2 | 5 | 8 | 3 | 6 | 9 |
; +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; Row-major order: (PureBasic/C/C++/Python step memory contiguously by each row.)
; +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
; +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;
; While C syntax for 2D arrays: ar2D[nrows][ncols].
; Defining PB 2D arrays are best understood if Dim'd ar2D(nCols-1, nRows-1).
; This allows dual access of 2D data within a 1D array or syntactical 2D(c,r) array.
; Ex. Dim ar2D(nCols-1, nRows-1) ==> Dim ar1D(nRows * Row + Col)
Code: Select all
;-{ STRUCTURES of ALL DATATYPES
Structure ScanAllTypes ; #PB_Compiler_Unicode = 1 (PB v5.4+ drops Ascii compiles)
; Allows 1 Define for all datatypes to be scanned. Define *buf.ScanAllTypes = @somevariable or *somememory
; Consider as a StructureUnion. Takes no memory and overflow is not checked.
; Ex. *buf\d[i] ; 'i' can be incremented in a loop without compiler error.
; ; Type, Bytes, Min, Max, C Type
b.b[0] ; Byte, 1, -128, 127, char, bool(C++)
a.a[0] ; Ascii, 1, 0, 255, unsigned char, UCHAR, BYTE
c.c[0] ; Character, 2, 0, 65535, unsigned short, USHORT
u.u[0] ; Unicode, 2, 0, 65535, unsigned short, USHORT
w.w[0] ; Word, 2, -32768, 32767, short
l.l[0] ; Long, 4, -2147483648, 2147483647, long, int (long & $FFFFFFFF = unsigned)
;;ul.ul[0] ; ULong, 4, 0, 4294967295, unsigned long, unsigned int, DWORD(C++)
i.i[0] ; Integer, 4, -2147483648, 2147483647, long, int(x86 or 32-bit),sizeof*
;i.i[0] ; Integer, 8, -9223372036854775808, 9223372036854775807, long long(x64 or 64-bit),sizeof*
q.q[0] ; Quad, 8, -9223372036854775808, 9223372036854775807, long long
;;uq.uq[0] ; UQuad, 8, 0, 18446744073709551615, unsigned long long, ULONGLONG
f.f[0] ; Float, 4, -1.175494e-38, 3.402823e+38, float (6 decimal places)
d.d[0] ; Double, 8, -2.2250738585072013e-308, 1.7976931348623157e+308, double (15 decimal places)
;;ld.ld[0] ; LDouble, 10, -3.4e-4932, 1.1e+4932, long double(19 decimal places)
;;s ; String$, 2/char + 2 for chr(0), , wchar_t
s.s{1}[0] ; {FixedLen}, 2/char, , char *, char var[] <-- Convert to Ascii
;s.s[0] ; FAILS, -> *p\s = @x$, *p\s[1] = IMA.
EndStructure
;-} STRUCTURES
The nice thing about standards is there are so many to choose from. ~ Andrew Tanenbaum
Re: You are so CLOSE to a vb6 Replacement...
I was too lazy now to read all the thread, but comparing VB6 to PB - as for me it's one language really usable to replace VB6. Previously I also came to PB when was looking for such replacement.
There also is "FreeBasic" which claims itself as VB ancestor, but it's raw and lacks a lot of things that PB offers for a long time.
There also is "FreeBasic" which claims itself as VB ancestor, but it's raw and lacks a lot of things that PB offers for a long time.
"W̷i̷s̷h̷i̷n̷g o̷n a s̷t̷a̷r"
-
- Addict
- Posts: 1309
- Joined: Fri Aug 28, 2015 6:10 pm
- Location: Portugal
Re: You are so CLOSE to a vb6 Replacement...
I used the MS VB products from VB 3.0 on through VB 6.0 proffessional then onto VB.net and became totally exasperated when yet again a new version of windows came out and my programmes would not work.
Found an old copy of PB 4.0 on disc and tried it after about ten years.
A few quirks in learning PB and I tried to treat it like VB as well, check my posts, so amateurish.
Started using PB and found it easy to use just a few things missing that I used in VB but then wrote my own bits to do these such as print and preview and a little grid.
I have now not used VB at all for over a year as PB does it all and my programmes work on Linux and MAC as well sometimes with a little modification.
I see harping back to VB as one big mistake I made. If I want auto code generation I can write it myself in fact started one project to write a database wizard to take a simple database and autocreate basic PB code for an application to use the database etc.
After giving PB a fair try I will no longer go back to VB.
Just my thoughts
Regards
CD
Found an old copy of PB 4.0 on disc and tried it after about ten years.
A few quirks in learning PB and I tried to treat it like VB as well, check my posts, so amateurish.
Started using PB and found it easy to use just a few things missing that I used in VB but then wrote my own bits to do these such as print and preview and a little grid.
I have now not used VB at all for over a year as PB does it all and my programmes work on Linux and MAC as well sometimes with a little modification.
I see harping back to VB as one big mistake I made. If I want auto code generation I can write it myself in fact started one project to write a database wizard to take a simple database and autocreate basic PB code for an application to use the database etc.
After giving PB a fair try I will no longer go back to VB.
Just my thoughts
Regards
CD
Any intelligent fool can make things bigger and more complex. It takes a touch of genius — and a lot of courage to move in the opposite direction.
-
- Enthusiast
- Posts: 271
- Joined: Thu Dec 17, 2009 12:00 pm
- Location: Llangadog, Wales, UK
- Contact:
Re: You are so CLOSE to a vb6 Replacement...
Have to agree totally with this and other responses here.skywalk wrote:Once you learn the windows & gadget commands and processing event loops, you will run circles around your previous "RAD" approach. Text is your friend.
Like many others I also came to PB after long experience with VB6 (plus VB5, VB4, Delphi and various other languages). VB6 was a great product in its time, but PB has long surpassed it. OK, there is not always a one-to-one function equivalence and it does things differently. But it is an easy switch for a VB6 programmer. PB is not a direct replacement - it's better - actually much better!
@axisdj - Welcome to the forum. My humble advice - take your time, learn the PB way, feel the power, enjoy the difference!
Re: You are so CLOSE to a vb6 Replacement...
Hi,
habe auch manchmal keine lust die erforderlichen Codes für die Event-Verarbeitung selber zu schreiben.
Dazu habe ich mir eine EventDesigner der auf die Form (.pdf) aufsetzt. Siehe Signatur
sometimes I don't feel like writing the necessary codes for the event processing myself.
For this purpose I have an EventDesigner based on the form (. pdf). See signature
habe auch manchmal keine lust die erforderlichen Codes für die Event-Verarbeitung selber zu schreiben.
Dazu habe ich mir eine EventDesigner der auf die Form (.pdf) aufsetzt. Siehe Signatur
sometimes I don't feel like writing the necessary codes for the event processing myself.
For this purpose I have an EventDesigner based on the form (. pdf). See signature
My Projects ThreadToGUI / OOP-BaseClass / EventDesigner V3
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
Re: You are so CLOSE to a vb6 Replacement...
mk-soft, thank you
So just to clarify, I create the form with gadgets on it.. then run it through your app and it will create the events for me?
I will try it, but just want to make sure I understand
So just to clarify, I create the form with gadgets on it.. then run it through your app and it will create the events for me?
I will try it, but just want to make sure I understand
Re: You are so CLOSE to a vb6 Replacement...
That's what I meant.
You can also create several forms and integrate them into my tool. Afterwards all necessary program codes are created. A common file is created from the different forms.
If a form is changed or extended, the code only needs to be updated again with the tool.
I haven't reworked long tool. If there are any problems, please report them.
P.S.
It is important that the following settings are made under Settings from the PB-IDE under Form:
- OFF: New gadgets use #PB_Any by default
- OFF: New gadgets use a variable as captions
- OFF: Generate event procedure
You can also create several forms and integrate them into my tool. Afterwards all necessary program codes are created. A common file is created from the different forms.
If a form is changed or extended, the code only needs to be updated again with the tool.
I haven't reworked long tool. If there are any problems, please report them.
P.S.
It is important that the following settings are made under Settings from the PB-IDE under Form:
- OFF: New gadgets use #PB_Any by default
- OFF: New gadgets use a variable as captions
- OFF: Generate event procedure
My Projects ThreadToGUI / OOP-BaseClass / EventDesigner V3
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
Re: You are so CLOSE to a vb6 Replacement...
I'd love to try your EventDesigner, but your server is refusing the connection. Is it down temporarily or is there another way to access the files?mk-soft wrote:For this purpose I have an EventDesigner based on the form (. pdf). See signature