La nueva función EditSource() en VFP7 y superior es particularmente práctica en por lo menos 3 escenarios.
1) Comunicandose con otro desarrollador con respecto a un código en una localización particular de un método o PRG. Por ejemplo, al reportar un "bug" al desarrollador, en lugar de escribir algo parecido a esto al describir donde está el problema:
MODI CLASS AlgunaClase OF AlgunVCX METHOD AlgunMetodo *-- ir a la línea 17 *-- or *-- ir a la línea IF VARTYPE(AlgunaVariable) = 'U'
Ud. solo puede escribir:
EditSource("AlgunVCX.VCX",17,"AlgunaClase","AlgunMetodo")
y a continuación describir el problema.
2) Escribir a un desarrollador que abra el programa, clase, o formulario en una línea específica del código.
3) Insertando referencias de EditSource() en comentarios de código, así que cualquier lectura del desarrollador, puede simplemente seleccionar el texto del EditSource() y hacer Click Derecho y ejecutar la selección desde el menú contextual.
Clases:
EditSource("MyLib.VCX",0,"ClassName")
... equivalente a MODI CLASS ClassName OF MyLib
Métodos de clases:
EditSource("MyLib.VCX",2,"ClassName","Init")
... equivalente a MODI CLASS ClassName OF MyLib METHOD INIT, pero con la ayuda agregada de especificar el número de la línea donde se coloca el cursor.
Métodos de clases miembros:
EditSource("MyLib.VCX",2,"ClassName","Member.Init")
... equivalente a MODI CLASS ClassName OF MyLib METHOD Member.Init, pero con la ayuda agregada de especificar el número de la línea donde se coloca el cursor.
Formularios
EditSource("MyForm.SCX")
... equivalente a MODI FORM MyForm
Métodos de formularios:
EditSource("MyForm.SCX",6,"","Form1.Load")
... equivalente a MODI FORM MyForm METHOD LOAD, pero con la ayuda agregada de especificar el número de la línea donde se coloca el cursor.
Metodos miembros de formularios:
EditSource("MyForm.SCX",13,"","Form1.Member.Init")
... equivalente a MODI FORM MyForm METHOD Member.Init, pero con la ayuda agregada de especificar el número de la línea donde se coloca el cursor.
Programas:
EditSource("MyPRG.PRG")
... equivalente a MODI COMM MyPRG
Programas:
EditSource("MyPRG.PRG",10)
... equivalente a MODI COMM MyPRG, pero con la ayuda agregada de especificar el número de la línea donde se coloca el cursor.
Como el número exacto de la línea puede cambiar, al llamar EditSource() desde el código de un desarrollador que cambio el código fuente por modificaciones o la inserción de comentarios, usted puede determinar programaticamente el número de la línea deseada antes de llamar EditSource(). Ud. puede usar un PRG como el ejemplo:
local laLines[1], lnLine, xx alines(laLines,filetostr("Test.PRG")) FOR xx = 1 to alen(laLines,1) IF laLines[xx] =lnLine = xx exit ENDIF ENDFOR EditSource("Test.PRG",lnLine)
EditSource() dispara un NOWAIT implícito de modo que usted pueda tomar la acción de seguimiento en el código del desarrollador que ejecuta EditSource(). Por ejemplo, para destacar una línea específica del código, ejecute:
keyboard "{Shift+End}"
ó
keyboard "{Shift+DnArrow}"
inmediatamente después del comando EditSource().
Copie y pegue el código siguiente en la ventana de comandos, y después lo ejecuta para ver el efecto:
text to lcString noshow * test.prg aa = 100 bb = 200 cc = 300 return aa + bb + cc endtext strtofile(lcString,"test.prg") text to lcString noshow * test1.prg editsource("test.prg",3) keyboard "{Shift+DnArrow}" endtext strtofile(lcString,"test1.prg") do test1
[025] VFP Tips & Tricks - Drew Speedie