Hello Henrik,

i think i understand what you try to do but what i don't understand is
the result from it.

I have 2 further questions:

1. Why is the bar in my result still blue, no matter what kind of value
i use? Especially because it mentioned nowhere.
2. is it possible to set the Maximum Value of the bar to 100? I have
Values which might be very small. Using only values lower than one
result in having very small values i i have to transform them before. I
am experiencing problem with values like 0.03 already and have to
convert them to money if they appear in the resultset.

Thanks

Thorsten
  

On Wed, 13 Jan 2010 10:35 +0100, "Henrik Mikael Kristensen"
<[email protected]> wrote:
> 
> On Wed, Jan 13, 2010 at 9:14 AM, Thorsten Moeller <[email protected]>
> wr=
> ote:
> 
> > lay-spec: [
> > =A0 =A0across space 4x4
> > =A0 =A0backdrop effect compose [gradient 1x0 (white) (silver)
> > =A0 =A0 =A0 =A0]
> > =A0 =A0return
> > =A0 =A0style pgr progress 270 green
> > ]
> >
> >
> > foreach line result [
> > =A0 =A0append lay-spec compose [
> > =A0 =A0 =A0 =A0(make-lbl-name to-word line/3 set-word!) text bold 200 (fo=
> rm
> > =A0 =A0 =A0 =A0line/3)
> > =A0 =A0 =A0 =A0pgr
> > =A0 =A0 =A0 =A0return
> > =A0 =A0]
> > ]
> >
> >
> > I thought in the foreach loop there must be somthing like if line > 80
> > [PG1: pgr orange and PG1/data: line/ 16] . That doesn't seem to work.
> 
> You can do that. I don't know which column gives you the data, so I'm
> just using line/5 and I'm assuming it's a decimal between 0 and 1:
> 
>  foreach line result [
>     append lay-spec compose [
>         (make-lbl-name to-word line/3 set-word!) text bold 200 (form
>         line/3)
>         pgr (line/5) (
>           case [
>             line/5 < 0.5 [green]
>             line/5 < 0.7 [yellow]
>             line/5 < 0.9 [red]
>           ]
>         )
>         return
>     ]
>  ]
> 
> There is at least one other way to do it, and that is to duplicate and
> modify the progress style, so that it knows what color it needs to
> draw, when you give it a specific value. That gives a cleaner and
> smaller layout, by abstracting the color decision away from the
> layout, but it requires that you redo or append to the progress style
> function. If you end up doing a lot of customization, it makes sense
> to move the color evaluation to the style, rather than building a huge
> layout.
> 
> You need to dig out the 'init part of the progress style. 'init is run
> as the layout is created:
> 
> probe get in get-style 'progress 'init
> 
> which gives:
> 
> [
>     if image? image [
>         if none? size [size: image/size]
>         if size/y < 0 [size/y: size/x * image/size/y / image/size/x
> effect: insert copy effect 'fit]
>         if color [effect: join effect ['colorize color]]
>     ]
>     if none? size [size: 100x100]
>     pane: make bar []
>     pane/size: size
>     either size/x > size/y [pane/size/x: 1] [pane/size/y: 1]
>     if colors [color: first colors pane/color: second colors]
> ]
> 
> Now you need to modify that code and build a derivative style. We can
> shave it down a little bit, since you probably don't need images:
> 
> stylize/master [
>   pgr: progress [
>     init: [
>       if none? size [size: 100x100]
>       pane: make bar []
>       pane/size: size
>       either size/x > size/y [pane/size/x: 1][pane/size/y: 1]
>       ; here we decide it. COLORS is two colors. The first gives
> foreground, the second gives background. (At least I think, swap it
> around if it doesn't work)
>       if not number? data [data: 0] ; for safety
>       if colors [
>         colors/1:
>           case [
>              data < 0.5 [green]
>              data < 0.7 [yellow]
>              data < 0.9 [red]
>           ]
>       ]
>       if colors [color: first colors pane/color: second colors]
>     ]
>   ]
> ]
> 
> Then your loop would appear like this:
> 
>  foreach line result [
>     append lay-spec compose [
>         (make-lbl-name to-word line/3 set-word!) text bold 200 (form
>         line/3)
>         pgr (line/5)
>         return
>     ]
>  ]
> 
> Nice and clean. Code is untested.
> 
> --=20
> Regards,
> Henrik Mikael Kristensen
> -- 
> To unsubscribe from the list, just send an email to 
> lists at rebol.com with unsubscribe as the subject.
> 


-- 
http://www.fastmail.fm - The way an email service should be

-- 
To unsubscribe from the list, just send an email to 
lists at rebol.com with unsubscribe as the subject.

Reply via email to