Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Releasing public variable
Message
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00875746
Message ID:
00877125
Vues:
20
Steve,

Ok, can I ask why you are using your own DBF to store these form designs instead of the native SCX/VCX files for forms and classes?

You can create a "builder" that will convert your dbf into regular VFP forms that would be saved in that manner instead of dbf. A little bit of alternate coding can just build your form on the fly without needing to resort to writing PRG files out of this process.

For example a builder looks like:
create form test nowait
aselobj( laX, 1 ) && get object reference to the form in the designer
loForm = lax[1]
for i = 1 to 5
   lcName = "txt" + transform( i )
   loForm.AddObject( lcName, "textbox" )
   loControl = eval( "loForm." + lcName )
   with loControl
      .Top = i * 25
   endwith
endfor
you could also make it just a simple runtime form generator:
goForm = createobject( "form" )
goForm.Visible = .t.
for i = 1 to 5
   lcName = "txt" + transform( i )
   goForm.AddObject( lcName, "textbox" )
   loControl = eval( "goForm." + lcName )
   with loControl
      .Top = i * 25
      .Visible = .t.
   endwith
endfor
but now the form is just a running instance of a form. You'd have to have saved your procedure info into classes that you can reuse.

>I have a table myForm.dbf with the infor for each class in it.
>It has fields for class name, kind of object, procedures, info for listboxes,
>and values for top, left, width, height. There is one record for each class defintion.
>
>There is a prog create_classes.prg for taking the info
>from each record and writing the class definitions, and putting into one prg file, myform.prg.
>
>At the end of the program, I set proc to myForm.prg. Then use createobject("contact"),
>to bring up the form in the procedure file.
>
>This works fine, the form comes up. But it seems that after the first run,
>nothing changes in terms of what comes up on the screen unless I exit and restart
>vfp.
>
>For instance, in the myform.dbf, there is a field for the LEFT position of the form
>called cLeft. If I want to change the value for LEFT postion of any object,
>I should be able to change the value
>in the myForm.dbf, run create_classes.prg and then see the changes on the screen.
>
>However, unless I quit VFP, I do not see changes in the position of
>objects, even though the changes show in the class definitions written in the procedure
>file myForm.prg.
>
>It is for this reason that I have assumed that something must be
>holding the memory of the first values generated by the create_classses.prg. Trying to remove
>anything from memory, I have therefor been trying different combinations of clear all,
>clear class, clear program (to remove the procedure file).
>
>But these are all new commands to me and I am admittedly very
>clumsy at them since I have not previously programmed with forms. This is what is happening
>and what I am trying to fix.
df (was a 10 time MVP)

df FoxPro website
FoxPro Wiki site online, editable knowledgebase
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform