Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Can I create a new object from an object on a form?
Message
 
 
À
28/09/2005 12:42:17
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Versions des environnements
Visual FoxPro:
VFP 8 SP1
Divers
Thread ID:
01054004
Message ID:
01054052
Vues:
27
>Maybe I misstated my problem. I have an editbox on the screen. I want to add another editbox to the screen based on an existing editbox already on the screen. I don't want to instatiate another editbox based on a class from a library, but rather from the first editbox in its current state. When I create the second editbox on the fly the existing editbox's properties have already been modified or set that I may want to use as they currently exist. Basically, I'd like to be able to say something like:
>
> THISFORM.ADDOBJECT("edtMemo2", "THISFORM.edtMemo1")
>
>By the way, this code doesn't work because it can't find a class named THISFORM.edtMemo1 in any library. I tried it without the quotation marks around THISFORM.edtMemo1 as well...
>
>Jim

Basically, if I undesrtood you right, you want to create a clone of your editbox, which almost all properties to be the same (I suspect, top, left and name properties must be different). Then here is an idea:
local lcClass, lcClasslib, lnI, luValue
lcClass = thisform.myFirstObject.class
lcClassLib = thisform.myFirstObject.classlib
* Create a new object of the same class
thisform.NewObject("mySecondObject",m.lcClass,m.lcClassLib) 
=amembers(laProps,thisform.myFirstObject)
for lnI1=1 to alen(laProps)
    if not inlist(lower(laProps[m.lnI]),'class','classlib','top','left','name')
    try
       luValue = getpem(thisform.myFirstObject, laProps[m.lnI])
       store m.luValue to ("thisform.mySecondObject." + laProps[m.lnI]) 
    catch
      =Messagebox(laProps[lnI]+" property is read-only")
    endtry  
   endif
next
This is from the top of my head and not tested. But hopefully you can use it. I guess there could be more elegant and simple method to create a clone.
If it's not broken, fix it until it is.


My Blog
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform