` Comment on an Icetips Article
Icetips - Templates, Tools & Utilities for Clarion Developers

Templates, Tools and Utilities
for Clarion Developers

Add a comment to an Icetips Article

Please add your comments to this article. Please note that you must provide both a name and a valid email address in order for us to publish your comment. Comments are moderated and are not visible until they have been approved. Spam is never approved!

Your Name:  
Email:  
Header text/Subject:  

Please enter your comment in the box below:

Back to article list   Search Articles     Add Comment     Printer friendly     Direct link  

Templates: What is needed for ABC to generate method call embeds
2003-06-13 -- Ole-morten Heien
 
Newsgroups: TopSpeed.Topic.Templates Editors note: Please note that some lines may wrap in the template code. Hi. Allmost all my classes has a template wrapper and i dont have problems with this. I have added some changes to your code that represent the way i do it Hope this help. > > #EXTENSION(MyExtension,'Explanation'), PROCEDURE > #PREPARE > #CALL(%ReadABCFiles(ABC)) > #CALL(%SetClassDefaults(ABC), 'Default', 'Resizer', 'MyClass') #CALL(%SetClassDefaults(ABC),'ClassName','ObjectName' & %ActiveTemplateInstance,'ClassName') I dont remember why i use ClassName tvice > #CALL(%SynchronizeOverrides(ABC)) This CALL i dont use. Why are you? > #ENDPREPARE > #BOXED('Default Resizer prompts'),AT(0,0),WHERE(%False),HIDE > #INSERT(%OOPHiddenPrompts) #Insert(%OOPHiddenPrompts(ABC)) > #ENDBOXED > #SHEET > #TAB('Classes') > #WITH(%ClassItem,'Default') #With(%ClassItem,'ClassName') > #INSERT(%ClassPrompts(ABC)) > #ENDWITH > #ENDTAB > #ENDSHEET > #! > #ATSTART > #CALL(%ReadABCFiles(ABC)) > #CALL(%SetClassDefaults(ABC), 'Default', 'Resizer', 'MyClass') #Call(%SetClassDefaults(ABC),'ClassName',ObjectName' & %ActiveTemplateInstance,'ClassName') Again i dont remember why i use classname tvice > #EQUATE(%ResizerObjectName,%ThisObjectName) THis EQUATE i dont use #Declare(%ThisControl) #Call(%GetControlName(ABC)),%ThisControl ! My template is for controls > #ENDAT > #! > #AT(%GatherObjects) > #CALL(%AddObjectList(ABC), 'Default') #Call(%AddObjectList(ABC),'ClassName') #Call(%SetClassItem(ABC),'ClassName') > #ENDAT > > And some other #AT's of mine that i use #At(%LocalProcedures) #Call(%GenerateVirtuals(ABC),'ClassName','Local Objects|ABC Objects|' & %ThisControl & ' - Some descriptions','%GenerateVirtuals(YourTemplateChain)',%True) #Endat #At(ClassNameMethodCodeSection,%ActiveTemplateInstance),PRIORITY(5000),DESCR IPTION('Parent Call'),WHERE(%ParentCallValid()) #Call(%GenerateParentCall(ABC)) #EndAt 'ClassNameMethodCodeSection ' Here the CLassName is your className. This is like WindowManagerMethodCodeSection Next i add some groups #GROUP(%GenerateVirtuals,%TreeText,%DataText,%CodeText) #Embed(%ClassNameMethodDataSection,'Any description'),%ActiveTemplateInstance,%pClassMethod,%pClassMethodPrototype,L ABEL,DATA,Prepare(,%FixClassName(%FixBaseClassToUse('ClassName'))),TREE(%Tre eText & %DataText) #?%NULL #?CODE #Embed(%ClassNameMethodCodeSection,'Any description'),%ActiveTemplateInstance,%pClassMethod,%pClassMethodPrototype,P REPARE(,%FixClassName(%FixBaseClassToUse('ClassName'))),TREE(%TreeText & %CodeText) #GROUP(%BaseClassToUse) #if(%UseDefaultABCBaseClass) #if(%ActualDefaultBaseCLassType) #Return(%ActualDefaultBaseClassType) #Else #Assert(%DefaultBaseCLassType,'%BaseClassToUse: Symbol %DefaultBaseClassType is being returned empty [' & %ClassItem & ']') #Return(%DefaultBaseClassType) #EndIf #ElsIf(%UseABCBaseClass) #Return(%ABCBaseClass) #Elsif(~%UseABCBaseClass) #Return(%ExtBaseClass) #EndIf #Assert(%False,'%BaseClassToUse: IF clauses all missed') #GROUP(%GetBaseClassType) #Assert(%ClassItem,'%GetBaseCLassType: ClassItem has no instance') #Return(%BaseClassToUse()) #Group(%MethodEmbedPointValid() #if(Upper(%pClassName) = UPPER(%BaseClassToUse()) AND ~%pClassMethodPrivate #Return(%True) #EndIf #Return(%False) #Group(%FixClassName,%ToUse) #Assert(%ToUse,'%FixClassName: ToUse parameter empty') #Call(%ReadABCFiles(ABC)) #Call(%NoCaseFix(ABC),%pClassName,%ToUse) #Assert(Upper(%pClassName) = upper((%ToUse),'%FixClassName: Cannot find class 'ยจ& %ToUse) #Group(%FixBaseClassToUse,%FixTo) #Assert(%FixTo,'%FixBaseClassToUse: FixTo parameter empty ' & %FixTo) #Call(%SetClassItem(ABC),%FixTo) #Return(%BaseClassToUse) #Group(%ParentCallValid) #If(Upper(%pClassMethod) = 'CONSTRUCT' or upper(%pClassMethod) = 'DESTRUCT' or %pClassMethod = '') #Return(%False) #EndIf #Return(%True) Thats about it i guess :-) BTW - I found out about this by looking at SoftMasters Office Template -- Ole-Morten Heien HD Software www.hdsoftware.no Mail: o-m|__Spammers_Not_Welcome_here_|heien@hdsoftware.no ICQ: 72785878 MSN: spam@hdsoftware.no


Today is November 23, 2024, 3:37 am
This article has been viewed 35227 times.
Google search has resulted in 59 hits on this article since January 25, 2004.



Back to article list   Search Articles   Add Comment   Printer friendly

Login

User Name:

Password: