inherited class variables
jmv
jmvoegeli at bluewin.ch
Fri Oct 15 12:50:47 UTC 2021
Hello $lister,
I would like to override class variables declared in a super class programmatically.
I am unable to get a valid reference of the group $cvars (where the super class variable are listed)
I can get a valid reference to the $cvardefs group but the super class variable are not there
Here is my code :
Selected methods for Class 'Aikikan.o_Meta_Code' as at 15 oct 2021 14:34:27 Page 1
##### Method '$Obj_Build_Super_Class' #####
No. Local Variable Type Subtype Init.Val/Calc Description
1 vClass_Vars Item reference #NULL
2 vListe_Des_Fens List
3 vLst_Nom National 255
4 vLst_Ref Item reference #NULL
5 vMsg National 255 ""
6 vName National 255 ""
7 vNbDe_Fen 32 bit integer 0
8 vObj_Build_Class_Ref Item reference #NULL
9 vObj_Build_Var_Ref Item reference #NULL
10 vSuper National 255 ""
11 vValide Boolean kFalse
12 vVars_Def Item reference #NULL
13 vVide Boolean kTrue
No. Method text
1 Calculate vName as "fObj_Build"
2 Calculate vSuper as "Aikikan.o_Build"
3
4 Calculate vMsg as con("On change l’ancètre de ",vName)
5 Working message CHANGE SUPER CLASS (Cancel button) {[vMsg]}
6
7 Do $root.$libs.Aikikan.$windows.$makelist($ref.$name,$ref.$ref) Returns vListe_Des_Fens
8 Do vListe_Des_Fens.$redefine(vLst_Nom,vLst_Ref)
9 Calculate vNbDe_Fen as vListe_Des_Fens.$linecount
10
11 For vListe_Des_Fens.$line from 1 to vNbDe_Fen step 1
12
13 Do vListe_Des_Fens.$loadcols()
14
15 Calculate vMsg as con("On change l’ancètre de ",vName,kCr,"dans ",vLst_Nom)
16 Redraw working message
17
18 Set reference vVars_Def to vLst_Ref.$cvardefs
19 Do fObj_Null.$ItemRefIsNull(vVars_Def) Returns vVide
20 If (vVide)
21 Jump to start of loop
22 End If
23
24 Set reference vClass_Vars to vLst_Ref.$cvars.$ref
25 Do fObj_Null.$ItemRefIsNull(vClass_Vars) Returns vVide
26 If (vVide)
27 Jump to start of loop
28 End If
29
30 Do vClass_Vars.$findname(vName) Returns vObj_Build_Class_Ref
31 Do fObj_Null.$ItemRefIsNull(vObj_Build_Class_Ref) Returns vVide
32 If (vVide)
33 Jump to start of loop
34 End If
35
36 Do vVars_Def.$findname(vName) Returns vObj_Build_Var_Ref
37 Do fObj_Null.$ItemRefIsValid(vObj_Build_Var_Ref) Returns vValide
38 If (vValide)
39 Do vVars_Def.$add(vName,kObject,vSuper) Returns vObj_Build_Var_Ref
40 ## Else
41 ## Do vObj_Build_Var_Ref.$inherited.$assign(kFalse)
42 ## Do vObj_Build_Var_Ref.$objsubtype.$assign(vSuper)
43 End If
44
45 Save class [vLst_Nom]
46
47 End For
48
49 Close working message
50
51 Quit method kTrue
52
In other words :
$cvars do contain the super class variable, but I cannot access it,
I can access $cvardefs but it does not contain the super class variable.
What am I doing false here ?
Thank you for your help.
Best regards,
Jean-Marc
More information about the omnisdev-en
mailing list