Support Forums > WinFBX - Windows Framework for FreeBASIC

WinFBX Version 1.0

<< < (2/13) > >>

ganlinlao:
hi,jose
Congratulations on the version 1.0 release!!

There is a mistake in the indispinvoke.inc file

José Roca:
Thanks for reporting it.I have modified the file.

José Roca:
FBPiano, based on PBPiano, public domain control originally written by Börje Hagsten in June 2016 for PowerBASIC.

Options:

ComboBox 1 shows available midi devices (usually 1).
ComboBox 2 shows a collection of 16 midi channels, but we usually only use channel 1 for normal play.
Note: Channel 10 is reserved for percussion sets, turning each key from D2# to D7# into an instrument.
Always on top - program stays topmost on screen.
Show Key text - show/hide computer keyboard key text.
Show Note text - show/hide piano key notes.

Effects:

Arrow left - decrease octave
Arrow right - increase octave
Arrow up - pitch bend up 
Arrow down - pitch bend down
Sustain on/off, for sustain (reverb) on played keys.
Sustain can cause eternal notes to for example string and brass instruments and should be used with care.
If eternal notes occur, just uncheck this checkbox.
On octave change, pressed notes are repeated for a nice replay effect.
Mouse controls Volume, Balance, Vibrato and Pitch bend.

Remarks: I have had problems to get it working properly. For no apparent reason, the octave setting was being sometimes reset to 0 after changing the instrument or playing notes, but could not be reproduced at will. It was alleatory. I have kept this version as CPiano_v01.inc to demonstrate the problem. In the current CPiano.inc file, I have declared the m_pk and m_hRgn arrays as global instead of as intance variables of the class. This solves the problem. Apparently, the use of arrays as instance variables must be used with caution.

ganlinlao:
hi,jose
1、 I found cdicobj.inc support newEnum method, maybe we can add a "foreach ... in" statement, only used in the collection class.
I would like to ask, iEnumVariant must manually support next, skip, reset method? Is this the difference between cdicobj and vb's collection?

2、 CDispInvoke.inc, why not increase the property set members, like put? We can use the wstring parameter or any ptr, so that we can use the afxstrsplit function to divide the parameter values into a one-dimensional safeArrary when receiving the parameter values using object.set ("method") = "cArg1, cArg2, cArg3, ..., cArgN" . Because I over-love object.put ("method") = value of this style.

thank you !

José Roca:

--- Quote ---2、 CDispInvoke.inc, why not increase the property set members, like put? We can use the wstring parameter or any ptr, so that we can use the afxstrsplit function to divide the parameter values into a one-dimensional safeArrary when receiving the parameter values using object.set ("method") = "cArg1, cArg2, cArg3, ..., cArgN" . Because I over-love object.put ("method") = value of this style.

--- End quote ---

Sorry, I don't understand what you mean. How are you going to pass several VARIANT parameters as a string?

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version