[Gambas-user] Custom controls, Non-String arrays in the IDE

Bruce Steers bsteers4 at gmail.com
Wed Aug 17 22:39:40 CEST 2022

On Wed, 17 Aug 2022 at 16:45, Bruce Steers <bsteers4 at gmail.com> wrote:

> On Wed, 17 Aug 2022 at 13:19, Benoit Minisini <
> benoit.minisini at gambas-basic.org> wrote:
>> Le 17/08/2022 à 13:42, Bruce Steers a écrit :
>> >
>> >             Let's put the usefullness of flashy gradient buttons aside.
>> >             What you
>> >             would need is actually a brush, not a gradient. The gradient
>> >             is just a
>> >             particular case of a brush.
>> >
>> >             And editing a brush (or any other complex property) in the
>> >             form editor
>> >             needs:
>> >
>> >
>> > oh my god you're right. and right about the ReportBrush too.
>> > Sorry i didn't get it at first.
>> >
>> > I can just use a string value set to use {ReportBrush} type and there
>> is
>> > everything i needed in a string that I can easily work with. don't even
>> > need to add gb.report.
>> >
>> > Awesome :)
>> > Respects.
>> > BruceS
>> >
>> It's not enough. The problem is that you must understand how property
>> values are stored in and retrieved from form files.
>> "ReportBrush" is not just the way the property is chosen in the form
>> editor, it's also which code is generated in the form file to initialize
>> the property. You can't reuse it directly.
>> For complex objects like brushes, you usually need an equivalent object
>> in the component. For example, properties with "ReportBrush" kind uses
>> the 'ReportBrush[]' array method of the gb.report(2) component.
>> That logic is located in the 'CControl.GetEachProperty()' method.
>> Regards,
> Yes i spoke too soon in my excitement of your suggestions finally hitting
> me and thinking i had a really simple solution.
> It was all working editing in the IDE so I thought everything was great,
> but then i got an error when running the program (no ReportBrush)
> So i have imported the ReportBrush.class and now it works like you say,
> not as a string but as an actual reportbrush object.  Still that's
> something i can use.
> Shame i cannot disable the color/image options of the reportbrush editor
> but i'll work around it :)

So i did this to get a gradient only dialog...

I just added an option GradientOnly to the ReportBrush type so you can use
MyGradient{ReportBrush:GradientOnly} and it hides the color/image options

it removes the first 2 color/image items from the list and offsets all the
combo.index calls by 2 if removed.

have tested it and tested it alongside another brush property that used all
4 types and no problems using both.

Could you accept something like this?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20220817/0ef18e43/attachment-0001.htm>

More information about the User mailing list