Está en la página 1de 9

Visual Basic - Guía del Estudiante Cap.

9
EL DRAG & DROP (Arrastrar y Soltar)
LA FUNCION SHELL
LA FUNCION COMMAND PARA PASAR PARAMETROS

EL DRAG & DROP (Arrastrar y Soltar)

El Drag & Drop es una forma visual de representar el movimiento de algo. Para ello se toma
algo de una parte de la interface gráfica, mediante la operación de colocar el puntero del ratón
y pulsar su botón izquierdo sobre ese algo que se quiere tomar. Sin dejar de pulsar el botón
izquierdo del ratón se desliza (se arrastra) el puntero del ratón hasta el punto de la interface
gráfica donde lo queremos dejar. Ese punto puede ser un control o un formulario. Una vez en
el punto de destino se suelta el botón del ratón y se “deja caer” lo que habíamos tomado en el
punto de origen. El efecto de “tomar” algo de un control le denominaremos DragOver, y el
efecto de dejar caer le denominaremos DragDrop.

El Drag & Drop tiene un efecto visual muy didáctico. Pero NO HACE otra cosa. Es decir, no
toma nada del control origen ni lo suelta al llegar a destino. Esa acción de tomar algo en el
origen o soltarlo al llegar al destino debemos realizarla mediante código en los eventos
adecuados (MouseDown, DragOver , DragDrop), dando los valores adecuados a las
propiedades DragMode y DragIcon, y utilizando el método Drag.

PROPIEDAD DragMode

Es una propiedad de lectura y escritura. Devuelve o establece un valor que determina si se


usa el modo de arrastre manual o automático en una operación de arrastrar y soltar.

Sintaxis NombreControlOrigen.DragMode [= número]

Donde número puede tomar los valores 0 (Manual) ó 1 (Automático). El valor predeterminado
es el 0.

Cuando esta propiedad está a 0 (Manual) se debe emplear el Método Drag para iniciar una
operación Drag & Drop. Si está a 1, la operación de arrastrar y soltar se inicia
automáticamente cada vez que hacemos click sobre el botón izquierdo del ratón, teniendo el
puntero del mismo sobre el control. Los controles contenedores OLE sólo se arrastran
automáticamente cuando no tienen el enfoque.

Parece en principio mas práctico tener esta propiedad a 1. Sin embargo la realidad es distinta.
Se controla mucho mejor el Drag & Drop poniendo esta propiedad a 0 (Manual), pese a que en
este caso deberemos utilizar el método Drag para iniciar el proceso.

El poner esta propiedad en automático conlleva también el hecho de que el control no toma el
foco haciendo click sobre él, ya que no sabe si lo que quiere hacer es llevarle el foco o iniciar
una operación de Drag & Drop.

PROPIEDAD DragIcon

Devuelve o establece el icono que se presenta como puntero del ratón durante una operación
de arrastrar y soltar.

Sintaxis NombreControlOrigen.DragIcon [= icono]

Donde Icono es cualquier referencia a un icono válido.

Esta propiedad va a marcar el icono que aparezca durante la operación Drag & Drop
desplazándose a lo largo de la ventana. Si no se especifica esta propiedad, el desplazamiento
se expresa mediante un rectángulo del tamaño del control origen, cosa que resulta bastante
desagradable en cualquier aplicación. Debe ponerse por lo tanto un icono en esta propiedad.

El valor de esta propiedad puede establecerse en tiempo de diseño, eligiendo el icono en el


cuadro de Propiedades del control origen, o en tiempo de ejecución. En este caso, la
referencia a un icono válido puede darse igualando el valor de esta propiedad a un icono ya
existente en la aplicación (NCO.DragIcon = Form1.Icon pondría como icono el del formulario
Form1, NCO.DragIcon = Text1.DragIcon pondría el mismo icono de Text1 para esta
propiedad), o cargándolo mediante la función LoadPicture :

(NCO.DragIcon = LoadPicture (C :\Iconos\Icono1.ICO)

El archivo que se cargue debe tener la extensión .ICO y formato de icono.

Para Nota. Cuando quiera colocar un icono animado en la propiedad DragIcon (una hoja de
papel que oscila al moverse, una hoja de papel que se destruye - ejemplos tomados de W95-),
debe usar varios iconos en secuencia. Por lo tanto debe cambiar la propiedad DragIcon a lo
largo del tiempo que dura el arrastre. Puede utilizar para ello un temporizador (control Timer) o
basarse en las coordenadas del formulario por donde se mueve (para eso introducen en el
evento DragOver del Formulario). Dado que el cambio debe ser rápido, no es conveniente
acceder al disco (mediante la función LoadPicture) cada vez que tiene que cambiar la imagen
del icono. Como para simular un movimiento tan sencillo son suficientes pocas imágenes, (8
por ejemplo) puede crear otras tantas variables tipo Picture, cargar las imágenes al comienzo
de la aplicación (con la función LoadPicture) y cuando necesite el movimiento animado del
icono, cargar las 8 imágenes secuencialmente desde esas variables, para simular el
movimiento

NCO.DragIcon = Variable1
NCO.DragIcon = Variable2
......
NCO.DragIcon = Variable8

Esto le ocupará mas memoria. Es el precio a pagar por la rapidez y la buena presentación de
una aplicación.

METODO Drag

Inicia, termina o cancela una operación de arrastre de cualquier objeto excepto los controles
Line, Menu, Shape o Timer.

Sintaxis NombreControlOrigen.Drag TipoAcción

NombreControlOrigen es el nombre del control donde se inició la operación Drag & Drop.

TipoAcción es un valor o una constante que especifica la acción a realizar, según se describe a
continuación :

Constante Valor Descripción

vbCancel 0 Cancela la operación de arrastre.


vbBeginDrag 1 Inicia el arrastre del objeto.
vbEndDrag 2 Termina el arrastre y suelta el objeto.

Si se omite TipoAcción, la acción predeterminada es iniciar el arrastre del objeto.

El uso del método Drag para controlar una operación de arrastrar y soltar sólo se requiere
cuando la propiedad DragMode del control origen tiene el valor Manual (0). Sin embargo, Drag
puede usarse con objetos cuya propiedad DragMode tenga el valor 1 (o vbAutomatic).

En versiones anteriores de Visual Basic, Drag era un método asíncrono y las instrucciones
siguientes se ejecutaban incluso aunque la acción de arrastre no hubiera terminado. En Visual
Basic versión 4.0, Drag es un método síncrono y las instrucciones siguientes no se ejecutan
hasta que la acción de arrastre no haya terminado.

Usando el método Drag puede controlar exactamente cuando quiere que se produzca el inicio
del Drag & Drop y el final. El autor de esta Guía del Estudiante vuelve a recomendar que
ponga la propiedad DragMode = 0 (Manual). Entre otras razones por la siguiente :

Cuando tenemos la propiedad DragMode de un TextBox a 1 (automático) ese TextBox no


podrá coger el foco, (al menos de forma fácil) y si lo consigue no puede seleccionar el texto
que tiene actualmente, ya que VB no puede saber si lo que está ocurriendo es que queremos
seleccionar el texto o si deseamos iniciar la operación D & D.

Como decíamos al principio, el Drag & Drop solamente es una manifestación visual de algo
que se está produciendo, pero ese algo deberemos programarlo. Por ejemplo, es muy típico
llevar un dato de una casilla a otra (de un TextBox a otro p.e.) mediante una operación D & D.

El dato debemos llevarlo a una variable que nos permita, al final de la operación, introducir
ese dato en el TextBox final. (No olvide declarar la variable en el lugar correspondiente para
que sea válida en ambos controles). La acción de llevar el dato a la variable debemos hacerla
en el procedimiento mas adecuado. Puede ser por ejemplo, el procedimiento MouseDown del
control origen, ya que cualquier operación de D & D comienza haciendo click en el control
origen. Si tiene la propiedad DragMode de ese control en Manual, en el momento de hacer
Click, ese control toma el foco y, caso de un TextBox, puede arrastrar con el ratón para
cambiar el texto, cosa que no podría hacer si pone DragMode=1.

EVENTO DragOver

Cuando una operación de arrastrar y soltar está en progreso y el cursor del ratón pasa por
encima de un control o un formulario, se produce el evento DragOver de ese control o
formulario.

Dependiendo si se trata de un Formulario convencional, un Formulario MDI o un control, el


procedimiento DragOver captura distintos parámetros :

Private Sub Form_DragOver(origen As Control, x As Single, y As Single, estado As Integer)


Private Sub MDIForm_DragOver(origen As Control, x As Single, y As Single, estado As
Integer)
Private Sub Control_DragOver([índice As Integer,]origen As Control, x As Single, y As Single,
estado As Integer)

Donde :

origen = Control que se está arrastrando. O dicho de forma mas ortodoxa, control en el que se
inició la operación de Drag & Drop. Dentro de este procedimiento puede hacer referencia a sus
propiedades y métodos con este argumento. Por ejemplo, Source.Visible = False. Caso de
que el Control Origen fuese parte de un array de controles, el Index de ese control se tiene en
índice

x, y Número que especifica la posición horizontal (x) y vertical (y) actual del puntero del
mouse dentro del control o formulario destino. Estas coordenadas se expresan siempre en
términos del sistema de coordenadas del destino tal y como se establece en las propiedades
ScaleHeight, ScaleWidth, ScaleLeft y ScaleTop.

estado Entero que nos indica el estado de transición del control que se está arrastrando en
relación al formulario o control destino:

0 = Entra. Este valor se produce en el instante en el que entra el cursor del ratón a
este control o Formulario. Se genera también en el control origen en el instante que se
pulsa el botón del ratón, iniciándose de esta forma el D & D.
1 = Deja Este valor se produce cuando el cursor sale del control o Formulario.
2 = Sobre Este valor se produce cuando el cursor se está moviendo sobre el control o
el Formulario destino.

Mediante el parámetro origen (completado con índice si el origen se trata de un array)


podemos conocer el control desde el que se inició la operación de Drag & Drop. Debemos
tener siempre presente que el procedimiento DragOver se realiza cada vez que pasamos por
encima de un control o formulario durante una operación de Drag & Drop, independientemente
que ese control o formulario sea o no sea origen ni destino de esa operación. Puede emplearse
el procedimiento DragOver para comprobar si ese valor que transportamos puede depositarse
sobre el control o formulario por el que estamos pasando, si el valor que llevamos está dentro
de los márgenes que admite la aplicación, etc. Es muy llamativo por ejemplo, cambiar el color
del control que va a recibir el valor traspasado si este valor se sale de los márgenes
aceptables. O cambiar la propiedad DragIcon del control origen cuando ese dato no se puede
depositar en ese control. Es típico poner la señal de trafico de Prohibido cuando el dato
transportado no se puede soltar sobre el control sobre el que estamos pasando el cursor del
ratón. (Como el control origen se pasa como parámetro al procedimiento DragOver con el
nombre Origen basta con poner Origen.Dragicon = ..... ) Recuerde en este caso que al
abandonar ese control debe restaurar el icono original. Para ello es útil cargar varias variables
con los distintos iconos que se van a usar y luego igualar la propiedad DragIcon del control
origen a una u otra variable, dependiendo de los valores u otros factores de la aplicación.

En el siguiente ejemplo, se declaran 6 variables tipo Picture que van a almacenar seis iconos
distintos :

En General - Declaraciones
Dim pepe as string
Dim icono1 As Picture, Icono2 As Picture, Icono3 As Picture
Dim Icono4 As Picture, Icono5 As Picture, Icono6 As Picture

El Form1.Load se cargan los valores de estas variables con seis iconos existentes en el disco.
El icono asignado al control origen (Text1) es Icono4.
Set icono1 = LoadPicture("C:\vb\icons\dragdrop\drag1pg.ico")
Set Icono2 = LoadPicture("C:\vb\icons\dragdrop\drag2pg.ico")
Set Icono3 = LoadPicture("C:\vb\icons\dragdrop\drag3pg.ico")
Set Icono4 = LoadPicture("C:\vb\icons\dragdrop\drop1pg.ico")
Set Icono5 = LoadPicture("C:\vb\icons\dragdrop\dragfldr.ico")
Set Icono6 = LoadPicture("C:\vb\icons\dragdrop\dropfldr.ico")
Text1.DragIcon = Icono4

En el control destino se cambia el icono si el valor de la variable transportada (pepe) es mayor


de 999 :
En el procedimiento DragOver
If Val(pepe) > 999 Then Source.DragIcon = icono1
‘Al salir de Text1 se recupera el icono original
If State = 1 Then Source.DragIcon = Icono4

EVENTO DragDrop

Ocurre cuando se completa una operación de arrastrar y soltar como resultado de arrastrar un
control sobre un formulario o control y liberar el botón del mouse o utilizar el método Drag con
su argumento acción establecido a 2 (Drop).

Dependiendo de si soltamos sobre un Formulario convencional, Formulario MDI o Control, este


evento captura los siguientes parámetros :

Private Sub Form_DragDrop(origen As Control, x As Single, y As Single)


Private Sub MDIForm_DragDrop(origen As Control, x As Single, y As Single)
Private Sub Control_DragDrop([índice As Integer,]origen As Control, x As Single, y As Single)
Estos parámetros son idénticos a los del Procedimiento DragOver ya comentados

Utilice un procedimiento de evento DragDrop para controlar qué ocurre tras completarse una
operación de arrastrar. Por ejemplo, puede mover el contenido del control origen a un nuevo
lugar o copiar un archivo de un lugar a otro, depositar un valor sobre un control etc.

Recuerde que la operación Drag & Drop no hace otra cosa que lo que se puede ver en la
interface gráfica. Debe poner en este Procedimiento (DragDrop) el código necesario para que
se realice la operación deseada.

FIN DEL DRAG & DROP

LA FUNCION SHELL

La función Shell se utiliza para ejecutar un programa ajeno a la aplicación que se está
ejecutando. Imaginemos que tenemos una aplicación Visual Basic que necesita, por ejemplo,
establecer una comunicación telefónica, y que esa comunicación telefónica nos la realiza un
programa desarrollado en C++ , llamado MARCADOR.EXE que funciona perfectamente y no
queremos desaprovechar. Imaginemos que ese programa tiene la posibilidad de introducirle el
número telefónico que debe marcar como un parámetro. Este parámetro se le introduce,
supongamos, añadiendo el número al nombre del programa ejecutable. Por ejemplo:

MARCADOR.EXE 1234567

En nuestra aplicación Visual Basic introduciremos una línea invocando la función Shell seguida
del nombre (y Path) del ejecutable y del parámetro que le vamos a introducir al ejecutable:

Shell "C:\VB\MARCADOR.EXE 080"

Mediante esta línea, lo que hacemos es ejecutar el programa MARCADOR.EXE e introducirle


como parámetro el número a marcar. Resultado: el programa MARCADOR.EXE llama al
número 080 (Bomberos), y una vez establecida la llamada podemos pasarle a ese Organismo
datos o lo que nuestra aplicación haga.

Veamos que dice la Ayuda de VB respecto a la Función Shell:

Ejecuta un programa ejecutable.

Sintaxis Variable = Shell ( rutaDeAcceso [, estiloDeVentana] )

donde:

Variable es identificador de la tarea (ID)

rutaDeAcceso es el nombre del programa por Ejecutar (con su Path) y cualquier argumentos
o conmutadores (switches) de línea de comando requeridos; puede incluir directorio o carpeta
y unidad de disco. También puede ser el nombre de un documento que se ha asociado con un
programa ejecutable.

estiloDeVentana es el número correspondiente al estilo de la ventana en la cual se va a


ejecutar el programa. En Microsoft Windows, si se omite estiloDeVentana, el programa se
inicia minimizado con enfoque.

El argumento con nombre estiloDeVentana tiene estos valores:

Constante Valor Descripción

vbHide 0 Se oculta la ventana y se pasa el foco a la ventana oculta.


vbNormalFocus 1 La ventana recupera el foco y vuelve a su posición y
tamaño
original.
vbMinimizedFocus 2 La ventana se muestra como un icono con foco.
vbMaximizedFocus 3 La ventana se maximiza con foco.
vbNormalNoFocus 4 La ventana vuelve al tamaño y posición más recientes. La
ventana activa actual permanece activa.
vbMinimizedNoFocus 6 La ventana se muestra como un icono. La ventana activa
actual permanece activa.
Comentarios

Si la función Shell ejecuta con éxito el archivo nombrado, devuelve la identificación de la tarea
(ID) del programa iniciado. La ID de la tarea es un número exclusivo que identifica el programa
en ejecución. Este número debe ser un Long. Si la función Shell no puede iniciar el programa
nombrado, ocurrirá un error. Si desea conocer el ID de la tarea, realice una aplicación con un
botón (cmbCalculadora) y un label (label1). Ponga en ese botón en su procedimiento click, el
siguiente código. - Observe que esta aplicación inicia la calculadora de Windows -

Private Sub cmbCalculadora_Click()


Dim variable As Long
variable = Shell("C:\windows\calc.exe", 1)
label1.Caption = Str(variable)
End Sub

Posiblemente lo único que le importe sea el ejecutar esa aplicación, sin dar mayor importancia
al ID de la tarea. Utilice una línea con la siguiente expresión :

Shell ("C:\windows\calc.exe"), 1

(Observe en las dos formas de ejecutar la función Shell, que la colocación de los paréntesis y
la coma separadora es distinto.

El programa a ejecutar puede ser un programa Windows caso anterior de la calculadora) o un


programa DOS.

Nota La función Shell ejecuta otros programas de manera asíncrona. Esto quiere decir que
no se puede esperar que un programa iniciado con Shell termine su ejecución antes de que se
ejecuten las instrucciones que siguen a la función Shell en la aplicación. Esto es un gran
inconveniente de la función Shell. Excepto en contadas ocasiones, siempre es necesario
conocer cuando se ha terminado de ejecutar el programa iniciado mediante Shell. Y no es ese
el único problema. La mayoría de los programas DOS que se ejecutan con Shell no se cierran
automáticamente. Esto significa que si podemos evitar el uso de Shell debe evitarse. Pero si
es completamente necesario, tampoco pasa nada. Pero hay que controlar, tanto la terminación
del proceso DOS como su cierre.

Podemos usar para ello APIs. No las hemos explicado todavía. Por eso, y adelantar un poco
como se trabaja con ellas, vamos a presentar, sin grandes explicaciones, lo que hay que hacer
para poder detectar que se ha terminado de ejecutar el programa DOS y para cerrarlo. Verá
mas APIs mas adelante.

El programa DOS elegido para este ejemplo es el popular ARJ.EXE, un compresor de datos
que, sin ánimo de publicidad, es uno de los mejores que existen. Pero trabaja solamente en
DOS. Se utiliza un Procedimiento que he llamado ExecCmdNoFocus, para detectar que el
proceso abierto para comprimir o descomprimir ha finalizado, y proceder a cerrarlo.

La declaración de las Apis y Constantes (En la sección de Declaraciones de un Módulo) es la


siguiente:

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)


Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As _
String, ByVal lpWindowName As String) As Long
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal _
bInheritHandle As Long, ByVal dwProcessID As Long) As Long
Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode _
As Long) As Long

Declaramos las constantes

Public Const WM_CLOSE = &H10


Public Const STILL_ACTIVE = &H103
Public Const PROCESS_QUERY_INFORMATION = &H400

El Procedimiento podemos ponerlo en el Módulo anterior o en el formulario. Variará el tipo de


declaración de las APIs:

Public Sub ExecCmdNoFocus(ByVal CmdLine As String)

(CmdLine es el parámetro que le vamos a pasar cuando invoque este procedimiento).

'Este procedimiento inicia un proceso en DOS y espera a que termine


'Una vez terminado este proceso, cierra la ventana, que se mostrará minimizada y sin foco

Declaramos las variables locales en ese procedimiento

Dim hProcess As Long 'handle del proceso donde se invoca la función Shell
Dim RetVal As Long 'Valor donde la función GetExitCode coloca el resultado
Dim winHwnd As Long ' manipulador de la ventana que contenga el Caption
‘Finalizado - ARJ
Dim RetValls As Long 'valor de retorno de PostMessage

hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell(CmdLine, _


vbMinimizedNoFocus))

Do
GetExitCodeProcess hProcess, RetVal
Sleep 100
'en este apartado comprueba si está abierta la ventana "Finalizado - ARJ"
winHwnd = FindWindow(vbNullString, "Finalizado - ARJ")
If winHwnd <> 0 Then
RetValls = PostMessage(winHwnd, WM_CLOSE, 0&, 0&)
End If
Loop While RetVal = STILL_ACTIVE

End Sub

La ventana DOS del ARJ tiene el Caption Finalizado - ARJ cuando ya ha terminado el
proceso. En el procedimiento ExecCmdNoFocus se analiza si esa ventana está presente
(prueba de que ARJ ya ha terminado, pues antes de terminar tiene otro Caption).

Para llamar a ese procedimiento hay que citarle por su nombre ( ExecCmdNoFocus) que
como lo hemos declarado Public en un Módulo, podemos llamarle desde cualquier parte de la
aplicación. Debemos pasarle el parámetro CmdLine, que será el programa que vamos a
ejecutar con Shell y los parámetros adicionales que este programa necesite (En este caso, el
programa es ARJ.EXE y a continuación debe indicársele el nombre del archivo ya
comprimido, a continuación a para que añada mas ficheros a ese archivo, y a continuación el
nombre de ese fichero o ficheros a añadir :

El parámetro CmdLine del procedimiento es todo lo que va entre paréntesis.

ExecCmdNoFocus ("C:\DirA\ARJ.EXE a C:\DirB\Fichero1.Ext")


NO se preocupe si no lo entiende ahora. Es difícil.

LA FUNCION COMMAND

En el ejemplo anterior usábamos un ejecutable realizado en C++ para marcar un número


telefónico que le introducíamos como parámetro. ¿Podemos hacer eso en una aplicación VB?
La respuesta debe ser SI. Usaremos para ello la función Command. Esta función nos
devuelve el parámetro introducido tras el nombre del ejecutable realizado en VB, cuando
iniciamos la aplicación VB mediante la línea de comandos de Windows (línea Archivo |
Ejecutar del Menú de Windows 3.xx o línea Ejecutar de W95), o desde otra aplicación
utilizando la función Shell.

Veamos también en este caso lo que dice la Ayuda de VB:

Command (Función)

Devuelve parte del argumento de la línea de comandos utilizada para lanzar Microsoft Visual
Basic o un programa ejecutable desarrollado con Visual Basic.

Cuando se inicia Visual Basic desde la línea de comandos, la parte de la línea de comandos
que sigue a /CMD se pasa al programa como un argumento de la línea de comandos. En el
siguiente ejemplo, cmdlineargs representa la información de argumento devuelta por la función
Command.

VB /CMD cmdlineargs

En las aplicaciones desarrolladas con Visual Basic y compiladas en un archivo .EXE,


Command devuelve los argumentos que aparezcan en la línea de comandos tras el nombre de
la aplicación. Por ejemplo:

MyApp cmdlineargs

En la ventana Código, puede usted cambiar el texto devuelto por Command eligiendo
Opciones del proyecto en el menú Herramientas.

Veamos con un par de ejemplos como se pueden usar estas dos funciones:

Marcador Telefónico

Esta aplicación debe marcar un número telefónico. El número a marcar se le pasará como
parámetro tras el nombre de la aplicación. La aplicación ya compilada se llamará
MARCADOR.EXE. Para marcar un número debemos poner, en la línea de Comando de
Windows:

Marcador.exe 1234567

o como ya sabemos, introducirle el parámetro mediante una llamada con la función Shell
desde otra aplicación:

Shell Marcador.exe 1234567

Como no vamos a realizar llamada alguna, sino comprobar que esto puede funcionar, nuestra
pequeña aplicación tendrá solamente un Label llamado FRMARCADORL1 donde
presentaremos el número a marcar. Todo el código necesario se lo metemos en el
procedimiento Activate del formulario:

Private Sub Form_Activate()


FRMARCADORL1.Caption = Command
End Sub
También podemos pasar parámetros a un ejecutable, mediante el Drag & Drop de Windows.
Hemos visto mas atrás como podemos hacer Drag & Drop en una aplicación VB. Pero como
comentábamos, el D&D no es una función de VB, sino de Windows. Y Windows lo utiliza en su
Explorador de Windows para pasar como parámetro a una aplicación el nombre del fichero
que arrastremos hacia el icono que representa a esa aplicación. Como estoy seguro que se ha
liado, vamos con un ejemplo.

Si Vd. hace un editor de textos (Editor.EXE) que soporta un formato determinado (por ejemplo
el RichTextFormat RTF), para ejecutar su programa y meterle como parámetro el nombre del
fichero Carta.RTF de forma que al arrancar lea directamente el fichero Carta.RTF, basta con ir
al Explorador de Windows, abrir la carpeta que contenga Carta.RTF, arrastrar el nombre de
ese fichero y llevarlo al icono que representa a Editor.EXE, que imaginemos que le ha
preparado un acceso directo. Suelte el botón del ratón y su editor se ejecutará, y además, le
meterá como parámetro el nombre del fichero Carta.RTF (con su Path correspondiente) Si Ud.
había previsto la captura del Command tal como se explicó mas atrás, y ha preparado su
aplicación para que tome el contenido de Command y entienda que tiene que abrir y cargar
ese fichero, su aplicación Editor.EXE cargará automáticamente ese fichero. Observe que esta
es la forma de trabajar de los procesadores de texto usados normalmente (Word, WordPerfect,
Write, etc.)

FIN del noveno capítulo de VISUAL BASIC - Guía del Estudiante.


Copyright Luis Suárez Bernaldo 1998. Este texto es de libre difusión para fines educativos.
Prohibida la copia total o parcial para usos comerciales. San Sebastián de los Reyes (Madrid,
España) , Junio de 1998

También podría gustarte