De supportafdeling van Mercator krijgt vaak de vraag wat de namen zijn van de objecten waaruit de Mercator-schermen bestaan. Deze vraag is niet echt interessant aangezien Visual FoxPro als dusdanig een systeem biedt om alle objecten binnen een hiërarchisch niveau in een formulier op te sommen.
Elk formulier of subelement in de hiërarchie beschikt over de controls-reeks die alle op dat niveau geplaatste controles (objecten) omvat. Via de functie stop kan men vervolgens makkelijk de verkregen naam weergeven.
Voorbeelden
Voor een verkoopscherm
stop(ventes.controls(1).name)
stop(ventes.controls(2).name)
stop(ventes.controls(3).name)
...
Voor het tabblad "Extra" van de artikelfiche
stop(f_stock.pageframe.complement.controls(1).name)
stop(f_stock.pageframe.complement.controls(2).name)
...
Om alle objecten van een hiërarchisch niveau op te sommen, volstaat het een code uit te voeren die lijkt op de code waarmee een bestand 'c:\test\objets.txt' wordt gegenereerd dat de naam van alle objecten bevat.
delete file 'c:\test\objets.txt'
local i_ctl
for i_ctl=1 to f_stock.pageframe.complement.controlCount
strtofile(f_stock.pageframe.complement.controls(m.i_ctl).name+chr(13)+chr(10),'c:\test\objets.txt',1)
endfor
stop('OK')
Wij raden af om in uw modules de objecten op te roepen via de reeks
controls(). De volgorde in de reeks kan immers gewijzigd worden telkens als er een nieuwe Mercator-versie verschijnt, terwijl de objectnamen niet veranderen.
Voorbeeld:
- f_stock.pageframe.complement.controls(1).visible = .F. -> NIET OK!
- f_stock.pageframe.complement.num_serie.visible = .F. -> OK!
Om de naam van het actieve venster te kennen, volstaat het parameters in te stellen voor een functietoets met als commandostring:
stop(wontop()).
Activeer vervolgens het gewenste venster en druk op de aldus ingestelde functietoets.
Deze functionaliteiten zijn geen eigen Mercator-functionaliteiten, maar kunnen wel door elke Visual Fox Pro-programmeur worden opgeroepen.
De supportafdeling van Mercator zal de gevraagde objectnamen niet langer geven, aangezien ze via deze methode makkelijk zelf te vinden zijn.