|
|
 | | From: | Robert Kersting | | Subject: | Resizable forms | | Date: | Thu, 30 Dec 2004 18:46:06 GMT |
|
|
 | I realize that forms themselves are already resizable.
What I would like to see is automatic control repositioning based on form resizing -- possibly based on properties within the controls.
For instance: all visual components have an xScale and yScale property from 0-1 that determines the proportionate increase/decrease in scale the control assumes when the container it is in (or form) resizes. Each time the form is resized, a ratio of old size vs new size is calculated and each container within the form resizes itself to that proportion (based on its xScale and yScale properties) and each component within the containers (incl other containers) resizes itself accordingly (and so on until all pontainers and components have been accounted for).
This, by the way, is the method I use and as long as the components are laid out in somewhat regular patterns, everything looks very smooth (although complicated forms can take a second to finish).
I would like this built-into dBase, though because it is a nuisance to have to include all the code to make this happen in every form -- even with the components subclassed.
Robert Kersting
|
|
 | | From: | Silvio Genco | | Subject: | Re: Resizable forms | | Date: | Fri, 31 Dec 2004 00:31:02 +0100 |
|
|
 | Take a look at 'Outlook style menu' discussion in Programming group More than the Menu source code there's a form_resize2.cc to resize any form and rearrange the objects.
[usage] In any form in the OnOpen and onSize events:
function form_onOpen set procedure to form_resize2.cc additive this.resizer = new form_resize() this.resizer.parent = this form.fw = form.width // original width form.fh = form.height // original height form.wf = form.width // opening width form.hf = form.height // opening height form.morewx = 0 // opening % resize form.morehx = 0 // opening % resize return
function form_onSize(nSizeType, nWidth, nHeight) if type('form.wf') # "U" form.resizer.resizewin(form.wf,form.hf,form.fw,form.fh) endif Return
Silvio
"Robert Kersting" ha scritto nel messaggio news:41d44a33.428772062@news.dbase.com... > > I realize that forms themselves are already resizable. > > What I would like to see is automatic control repositioning based on > form resizing -- possibly based on properties within the controls. > > For instance: all visual components have an xScale and yScale property > from 0-1 that determines the proportionate increase/decrease in scale > the control assumes when the container it is in (or form) resizes. > Each time the form is resized, a ratio of old size vs new size is > calculated and each container within the form resizes itself to that > proportion (based on its xScale and yScale properties) and each > component within the containers (incl other containers) resizes itself > accordingly (and so on until all pontainers and components have been > accounted for). > > This, by the way, is the method I use and as long as the components > are laid out in somewhat regular patterns, everything looks very > smooth (although complicated forms can take a second to finish). > > I would like this built-into dBase, though because it is a nuisance to > have to include all the code to make this happen in every form -- even > with the components subclassed. > > Robert Kersting > > > >
|
|
 | | From: | Robert Kersting | | Subject: | Re: Resizable forms | | Date: | Sat, 01 Jan 2005 00:19:20 GMT |
|
|
 | Thanks. I'll check it out.
Rob
On Fri, 31 Dec 2004 00:31:02 +0100, "Silvio Genco" wrote:
>Take a look at 'Outlook style menu' discussion in Programming group >More than the Menu source code there's a form_resize2.cc to resize any form >and rearrange the objects. > >[usage] >In any form in the OnOpen and onSize events: > > function form_onOpen > set procedure to form_resize2.cc additive > this.resizer = new form_resize() > this.resizer.parent = this > form.fw = form.width // original width > form.fh = form.height // original height > form.wf = form.width // opening width > form.hf = form.height // opening height > form.morewx = 0 // opening % resize > form.morehx = 0 // opening % resize > return > > function form_onSize(nSizeType, nWidth, nHeight) > if type('form.wf') # "U" > form.resizer.resizewin(form.wf,form.hf,form.fw,form.fh) > endif > Return > >Silvio > > >"Robert Kersting" ha scritto nel messaggio >news:41d44a33.428772062@news.dbase.com... >> >> I realize that forms themselves are already resizable. >> >> What I would like to see is automatic control repositioning based on >> form resizing -- possibly based on properties within the controls. >> >> For instance: all visual components have an xScale and yScale property >> from 0-1 that determines the proportionate increase/decrease in scale >> the control assumes when the container it is in (or form) resizes. >> Each time the form is resized, a ratio of old size vs new size is >> calculated and each container within the form resizes itself to that >> proportion (based on its xScale and yScale properties) and each >> component within the containers (incl other containers) resizes itself >> accordingly (and so on until all pontainers and components have been >> accounted for). >> >> This, by the way, is the method I use and as long as the components >> are laid out in somewhat regular patterns, everything looks very >> smooth (although complicated forms can take a second to finish). >> >> I would like this built-into dBase, though because it is a nuisance to >> have to include all the code to make this happen in every form -- even >> with the components subclassed. >> >> Robert Kersting >> >> >> >> > >
|
|
 | | From: | Todd Kreuter [dBVIPS] | | Subject: | Re: Resizable forms | | Date: | Thu, 30 Dec 2004 15:33:57 -0500 |
|
|
 | Robert Kersting wrote: > > I would like this built-into dBase, though because it is a nuisance to > have to include all the code to make this happen in every form -- even > with the components subclassed.
See the shared code ng. Not exactly what you are wishing for, but...
-- Todd Kreuter [dBVIPS]
|
|
 | | From: | Marty Kay | | Subject: | Re: Resizable forms | | Date: | Mon, 3 Jan 2005 12:34:17 -0500 |
|
|
 | Hi Robert,
Different people have different ideas about the correct or best way to resize and reposition components when resizing a form.
dBASE currently leaves this up to the developer.
I don't see us imposing a specific algorithm for this. However, I will record your wish for future consideration if you wish :-)
- Marty Kay (dBI) -
> I realize that forms themselves are already resizable. > > What I would like to see is automatic control repositioning based on > form resizing -- possibly based on properties within the controls. > > For instance: all visual components have an xScale and yScale property > from 0-1 that determines the proportionate increase/decrease in scale > the control assumes when the container it is in (or form) resizes. > Each time the form is resized, a ratio of old size vs new size is > calculated and each container within the form resizes itself to that > proportion (based on its xScale and yScale properties) and each > component within the containers (incl other containers) resizes itself > accordingly (and so on until all pontainers and components have been > accounted for). > > This, by the way, is the method I use and as long as the components > are laid out in somewhat regular patterns, everything looks very > smooth (although complicated forms can take a second to finish). > > I would like this built-into dBase, though because it is a nuisance to > have to include all the code to make this happen in every form -- even > with the components subclassed.
|
|
 | | From: | Robert Kersting | | Subject: | Re: Resizable forms | | Date: | Tue, 04 Jan 2005 15:34:39 GMT |
|
|
 | Marty,
As long as the users had some control I think it would be OK. The way I described was somewhat primitive, but IMO a good start.
I found some of the refereces that the other posts referred to, but have not yet had time to test them.
As far as dBase goes, there are a variety of possible implementation methods. MS (Foxpro at least) uses a custom ActiveX control, Java uses LayoutManager classes, I'm sure other systems use other methods. I think a custom control (one of the posts referred to one) would work and would offer flexibility as if a developer didn't like the implememtation then he/she could write (or get) a different custom control that implemented the form resizing differently.
Rob
On Mon, 3 Jan 2005 12:34:17 -0500, "Marty Kay" wrote:
>Hi Robert, > >Different people have different ideas about the correct or best way >to resize and reposition components when resizing a form. > >dBASE currently leaves this up to the developer. > >I don't see us imposing a specific algorithm for this. >However, I will record your wish for future consideration if you wish :-) > >- Marty Kay (dBI) - > > >> I realize that forms themselves are already resizable. >> >> What I would like to see is automatic control repositioning based on >> form resizing -- possibly based on properties within the controls. >> >> For instance: all visual components have an xScale and yScale property >> from 0-1 that determines the proportionate increase/decrease in scale >> the control assumes when the container it is in (or form) resizes. >> Each time the form is resized, a ratio of old size vs new size is >> calculated and each container within the form resizes itself to that >> proportion (based on its xScale and yScale properties) and each >> component within the containers (incl other containers) resizes itself >> accordingly (and so on until all pontainers and components have been >> accounted for). >> >> This, by the way, is the method I use and as long as the components >> are laid out in somewhat regular patterns, everything looks very >> smooth (although complicated forms can take a second to finish). >> >> I would like this built-into dBase, though because it is a nuisance to >> have to include all the code to make this happen in every form -- even >> with the components subclassed. > >
|
|
|