scieee Science in your language
[es] (orig)

Scripting en Rational Rose (LSI-2000-01) : Versión Borrador

Read accessible full text

Scripting en Rational Rose (LSI-2000-01) : Versión Borrador

Author: Martín Díaz, Octavio
Year: 2000
Source: https://idus.us.es/bitstreams/1eeff4fd-7e46-415f-b192-7ef38c83e6cd/download
Sc ip ing
en
Ra ional Rose
(Ve sion b o ado )
Oc a io Ma n Daz
Dp o. de Lengua jes y Sis emas In o ma icos
Facul ad de In o ma ica y Es ads ica, Uni e sidad de Se illa
A da. de la Reina Me cedes s/n, Se illa 41.012
Tel/Fax: 95.455.71.39, e-mail: oc a[email p o ec ed]
26 de Ene o de 2.000
Cap ulo 1
In o duccion
El p esen e manual se ha ealizado a pa i de la ayuda o ecida p o
Ra ional Rose 98
.
1.1 Ex ensibilidad de
Ra ional Rose
Ra ional Rose
p e mi e la p osibilidad de ex ende y p e sonaliza su uncionalidad a aquellas
necesidades de desa ollo de so wa e esp eccas pa a un p oyec o de e minado. Son en e o as:

Au oma iza las acciones del usua io en el en o no de
Ra ional Rose
con
sc ip s
(p o
ejemplo, c eacion de diag amas y clases, mo dicaciones del mo delo, gene acion de do cu-
men os y o as).

Ejecu a las unciones de
Rose
desde o as aplicaciones median e la au oma izacion
OLE
.

Accede a las clases, p opiedades y me o dos de un mo delo de
Rose
desde un en o no de
desa ollo de so w
a e median e la inclusion de la lib e a de ex ension de ip os.

Pe sonaliza los men us de la aplicacion.

U iliza el adminis ado de anexos (
Add{ins
).
1.1.1
Sc ip ing
El lengua je de
sc ip ing
de
Ra ional Rose
es una e sion ampliada del lengua je
Summi
BasicSc ip
. Las ex ensiones ealizadas a es e lengua je pe mi en au oma iza las acciones
del usua io en el en o no de la aplicacion yen algunos casos ealiza unciones que no es an
disp onibles di ec amen e a a es del in e az de usua io.
1.1.2 Au oma izacion
OLE
La au oma izacion
OLE
p e mi e la in eg acion de o as aplicaciones con
Ra ional Rose
de
dos o mas:

U ilizando
R
ose
como un con olado de la au oma izacion: un ob je o
OLE
puede se
llamado desde un
sc ip
. Po ejemplo: un
sc ip
puede ejecu a unciones en aplicaciones
ales como
Wo d
o
Visual Basic
.
1
Sc ip de Rose
Elemen os
del Modelo
Diag amas In e az de Ex ensión
de Rose
(REI)
Aplicación
Rose
Au oma ización
de Rose
Figu a 1.1: El diag ama de comp onen es de
Ra ional Rose
.

U ilizando
Rose
como un se ido de au oma izacion: el ob je o
OLE
de la aplicacion
puede se llamado desde o as aplicaciones que ac uen como un con olado
OLE
. Po
ejemplo:
Visual Basic
,
Excel
,
Summi BasicSc ip
,
So b idge Basic Language
,
C++
yo os.
1.1.3 El mo delo de comp onen es de
Ra ional Rose
La aplicacion
Ra ional Rose
es a basada en comp onen es y es a en o cada hacia el desa ollo
de so wa e basado en comp onen es. To da la uncionalidad de la aplicacion es accesible a a es
del Mo delo del In e az de Ex ension de
Rose
(
REI
) que esencialmen e es un me amo delo de un
mo delo de
Rose
que exp one los paque es, clases, p opiedades y me o dos que denen y con olan
la aplicacion y o das sus unciones.
La comunicacion con es e in e az se ealiza a a es de
sc ip s
o de la au oma izacion
OLE
.
La lib e a de ex ension de ip os
Ra ionalRose. lb
p e mi e accede al in e az
REI
desde un
en o no de p og amacion.
El diag ama de la gu a 1.1 mues a los comp onen es del nucleo de
Ra ional Rose
, los
comp onen es del in e az
REI
y las elaciones en e ellos:

In e az de ex ension
El conjun o com un de in e aces u ilizados po un
sc ip
o una
au oma izacion
OLE
pa a accede a
Ra ional Rose
. A su ez se sub di iden en es
in e aces muy imp o an es:
{
Aplicacion Rose
Los ob je os de ex ension que o man el in e az a las unciones de la
aplicacion.
{
Diag amas
Los ob je os de ex ension que o man el in e az a los diag amas y is as.
{
Elemen os del modelo
Los ob je os de ex ension que o man el in e az a los elemen os
de un mo delo.

Sc ip ing
El conjun o de
sc ip s
que inc emen an la uncionalidad de
Ra ional Rose
.

Au oma izacion
El conjun o de ob je os de au oma izacion que p e mi en a
Ra ional
Rose
unciona como un con olado o un se ido
OLE
.
2
1.1.4 Pe sonalizacion de los men us
los men us de la aplicacion se pueden ex ende o adap a mo dicando el che o de men us
(
Rose.mnu
) que
Rose
lee al inicio de su ejecucion. Se p e mi en a ~nadi :

Submen us.

Op ciones de men u que ejecu en:
{
P imi i as de
Rose
.
{
Sc ip s
.
{
Comandos de sis ema.
{
P og amas ex e nos.

Sepa ado es de men us.
1.1.5 Adminis ado de anexos (
add{ins
)
El adminis ado de anexos de
Ra ional Rose
o ece algunas acilidades pa a ins ala nue os
p o duc os y ex ensiones en el en o no de la aplicacion.
1.2 C eacion y mo dicacion de
sc ip s
Pa a c ea un nue o
sc ip
se ealizan los siguien es pasos:
1. Selecciona
Tools/New Sc ip
del men ude
R
ose
.
2. Esc ibi el ex o del
sc ip
.
3. Selecciona
File/Sa e As
del men u pa a sal a el nue o
sc ip
.
Y pa a mo dica un
sc ip
ya exis en e:
1. Selecciona
Tools/Open Sc ip
del men ude
Rose
.
2. Selecciona alguno de los
sc ip s
disp onibles.
3. Pulsa
Ok
pa a en a en el edi o de
sc ip s
y isualiza lo.
4. Selecciona el ex o del
sc ip
y copia lo al p o apap eles.
5. Selecciona
Tools/New Sc ip
.
6. Pega el con enido del p o apap eles en el nue o
sc ip
.
7. Selecciona
File/Sa e As
pa a sal a el nue o
sc ip
.
3
1.3 Asp ec os basicos del lengua je de
sc ip s
1.3.1 Inicio y nalizacion de
sc ip s
Al igual que en muchos o os lengua jes, la ejecucion del
sc ip
comienza en la sub u ina
M ain
.
Po lo an o, o do
sc ip
deb e ene la denida. Cuando la ejecucion llega al
End Sub
co esp on-
dien e a la sub u ina
M ain
es a se e mina. El siguien e ejemplo mues a la denicion habi ual
de
M ain
:
Sub Main()
MsgBox ``Es a es la sub u ina Main().''
End Sub
La sen encia
End
naliza de mane a o zada la ejecucion del
sc ip
, ce ando o dos los
che os abie os. Es e segundo ejemplo adelan a la nalizacion del
sc ip
con la sen encia
End
:
Sub Main()
MsgBox "La p oxima lnea e mina alaejecucion del sc ip ."
End
End Sub
1.3.2 Los comen a ios
En el siguien e ejemplo se pueden obse a a ias o mas de in o duci comen a iosenelcodigo
de un
sc ip
:
MsgBo
x ``Hola'' 'Visualiza un mensa je.
REM Es o es un comen a io.
MsgBox ``An es del comen a io''
/* Es e pa a o es a o do comen ado.
Es a lnea ambien se a igno ada.
Es a es la ul ima lnea del comen a io. */
MsgBox ``Despues del comen a io''
1.3.3 Un asp ec o sin ac ico
El ca ac e de con inuacion de lnea ( ) p e mi e di idi una sen encia compleja en a ias lneas.
4

Cap ulo 2
In o duccion al lengua je
Summi
BasicSc ip
Como se ha dicho an e io men e, el lengua je de
sc ip ing
de
Ra ional Rose
es a basado en
una e sion de
Basic
,po lo que su ap endiza je esul a sencillo. A con inuacion se desc ib en
las p incipales ca ac e s icas del lengua je y que se p o d an u iliza cuando se esc iba un
sc ip
pa a
Ra ional Rose
.
2.1 Tip os de da os simples
En p ime luga se mues an los p incipales ip os que o ece el lengua je.
2.1.1 Tip os logicos
Bo olean
Es e ip o de da os ep esen a a los alo es logicos
T ue
y
False
. Po de ec o, una
a iable
b o oleana end ael alo
False
.
2.1.2 Tip os nume icos
In ege (%)
Es e ip o de da os ep esen a a los nume os en e os de has a cua o dgi o de p ecision en el
siguien e ango:
;
32768

in eg e

32767
Long (&)
Es e ip o de da os ep esen a a los n ume os en e os la gos de has a 10 dgi os de p ecision en el
siguien e ango:
;
2

147

483

648

Long

2

147

483

647
5
Cu ency (@)
Es e ip o de da os ep esen a a los n ume os en pun o{jo con 15 dgi os a la izquie da del pun o
decimal y cua o a la de echa, po lo que son u iles pa a calculos mone a ios. El ango es el
siguien e:
;
922

337

203

685

477
:
5808

cu ency

922

337

203

685

477
:
5807
Single (!)
Es e ip o de da os ep esen a a los nume os eales con 7 dgi os de p ecision en los siguien es
angos:
;
3
:
402823
E
38

sing l e
;
1
:
401298
E
;
45
1
:
401298
E
;
45

sing l e

3
:
402823
E
38
Double (#)
Es e ip o de da os ep esen a a los n ume os eales con 15{16 dgi os de p ecision en los siguien es
angos:
;
1
:
797693134862315
E
308

doubl e
;
4
:
94066
E
;
324
4
:
94066
E
;
324

doubl e

1
:
797693134862315
E
308
2.1.3 Tip os de cadenas de ca ac e es
S ing ($)
Es e ip o de da os ep esen a a las cadenas de ca ac e es. Cada ca ac e iene un alo en e 0
y255 (el habi ual codigo
ASCI I
)yla longi ud maxima de una cadena es de 32767 ca ac e es.
Al con a io que en o os lengua jes, las cadenas pueden con ene nulos, como se mues a en el
siguien e ejemplo:
s$ = ``<''+``Hola''+Ch $(0)+``!'' 'Es a cadena incluyeunca ac e nulo.
La unci
on
Len
de uel eelnume o de ca ac e es de la cadena (incluyendo los ca ac e es no
imp imibles). No malmen e una cadena se decla a con longi ud a iable (la memo ia eque ida
pa a su almacenamien o dep ende a de su longi ud). Las a iables cadena no asignadas ienen
po de ec o una longi ud 0. Tambien se pueden decla a con un ama ~no jo (mas ap opiadas
pa a el paso de es uc u as con ama ~no jo a u inas ex e nas). Po ejemplo:
Dim s As S ing
s = ``Hola'' 'Es a cadena iene longi ud 4.
Dim s As S ing * 20
s = ``Hola'' 'Es a cadena iene longi ud 20 (el espacio sob an e es ellenado con espacios).
6
Al asigna una exp esion (de ip o cadena) a una a iable ( ambien de ip o cadena) se aplican
las siguien es eglas:

Se ellena con espacios has a alcanza la longi ud de la cadena (en caso de que ue a
meno ).

Se unca a la longi ud de la cadena (en caso de que sea mayo ).
2.1.4 Tip os de echas y ho as
Da e
Es e ip o de da os ep esen a a las echas y ho as de mane a conjun a. Su ango es el siguien e:
J anua y
1

100 00 : 00 : 00

da e

Decembe
31

9999 23:59:59
;
6574340

da e

2958465
:
99998843
En el o ma o nume ico, la pa e en e a almacena el n ume o de das desde el
31{Dic{1899
,
y la pa e accional el n ume o de segundos anscu idos del da. El alo p o de ec o es 0. Po
ejemplo:
Dim d As Da e
d=#Janua y 1, 1990#
Pa a e i a ambig "uedades debidas a los di
e sos o ma os u ilizados en dis in os paises se e-
comienda la u ilizacion del o ma o de echa uni e sal:
Va iableFecha = #YY/MM/DD HH:MM:SS#
2.1.5 Tip os a ian es
Va ian
Es el ip o p o de ec o en
BasicSc ip
y se u iliza pa a decla a a iables que puedan con ene
da os de di e en es ip os. Du an e la exis encia de un
Va ian
su ip o puede cambia en e:
Nume icos
I n eg e
,
Long
,
S ing l e
,
Double
,
B ool ean
,
C u ency
.
Logico
B ool ean
.
Temp o al
D a e
.
Cadena
S ing
.
Ob jec o
O bj ec
.
Da o in alido
Un
Va ian
con da os in alidos se conside a nulo (
Null
).
Da o sin inicia
Un
V a ian
sin inicializa se conside a aco (
Emp y
).
Las siguien es unciones se u ilizan pa a de e mina el ip o del da o con enido:
7
Va Typ e
De uel e una cons an e que ep esen a al ip o.
IsNume ic
De uel e
T ue
si el ip o es nume ico, una cadena que con iene un nume o o un
ob jec o cuya p opiedad p o de ec o sea nume ica.
IsDa e
De uel e
T ue
si con iene una echa, una cadena con e ible a echa o un ob jec o cuya
p opiedad p o de ec o sea una echa.
IsOb jec
De uel e
T ue
si con iene un ob je o.
IsNull
De uel e
T ue
si no con iene un da o alido.
IsEmp y
De uel e
T ue
si no es a inicializado.
Asignacion a una a iable de ipo a ian e
Inicialmen e se le conside a aco (
V a T ype
de ol e a
ebE mp y
). Si no es a inicializado de-
ol e a 0 en las exp esiones nume icas o una cadena de longi ud ce o en una exp esion de
cadenas. Si se quie e da un alo nulo a un
V a ian
que yaes a inicializado hay que asigna le
o o
V a ian
que es e aco. Cuando se le asigna un alo ambien se le asigna un ip o y p o lo
an o en o das las op e aciones p os e io es se comp o a a como cualquie a iable de ese ip o.
Ope aciones sob e a iables de ipo a ian e
No malmen e, un
V a ian
se comp o a a seg un el ip o de da os que con enga. La unica ex-
cep cion es la p omo cion au oma ica de los ip os nume icos en caso de salidas de angos. Po
ejemplo:
Dim a As In ege , b As In ege , c As In ege
Dim x As Va ian , y As Va ian , z As Va ian
a% = 32767
b% = 1
c% = a% + b% 'Es a op e acion se sald a de ango
x = 32767
y=1
z=x+y 'z se con ie e a
Long
p o que la suma es a ue a del ango en e o
Sumas con a iables de ipo a ian e
Seg un el con enido de un
V a ian
el op e ado +" puede ealiza una de dos unciones: con-
ca ena cadenas o suma n ume os. Debido a que el ip o no es cono cido has a el momen o de la
ejecucion se pueden ealiza op e aciones e oneas. Se ecomienda u iliza el op e ado &" pa a
conca ena dos
V a ian
que con engan cadenas.
Va iables de ipo a ian e sin con enido
Una a iable
V a ian
puede ene asignado un alo esp ecial que indica que no con iene da o
alido (
Null
). El alo
Null
se puede u iliza pa a busca e o es p o que es e alo se p opaga
a a
es de las exp esiones. Po ejemplo:
Dim a As Va ian
a=Null
Des en ajas de los ipos a ian es
1. La e olucion del p og ama es mas len a compa ada con los ip os undamen ales p o que
cada op e acion implica el examen del ip o con enido.
8
MyApp.To olba .Bu ons(0)
MyApp.To olba .Bu ons(``Tuesday'')
Cada elemen o de una coleccion es en s mismo un ob je o. Po ejemplo:
Dim MyTo olba Bu on As Ob jec
Se MyTo olba Bu on = MyApp.To olba .Bu ons(``Sa e'')
MyAppp.To olba .Bu ons(1).Cap ion = ``Op en''
Una coleccion iene p opiedades pa a ob ene in o macion sob e ella y me o dos que p e mi en
la na egacion p o sus miemb os. Po ejemplo:
Dim MyTo olba Bu on As Ob jec
NumBu ons% = MyApp.To olba .Bu ons.Coun
MyApp.To olba .Bu ons.Mo eNex
MyApp.To olba .Bu ons.FindNex ``Sa e''
Fo i = 1 To MyApp.To olba .Bu ons.Coun
Se MyTo olba Bu on = MyApp.To olba .Bu ons(i)
MyTo olba Bu on.Cap ion = ``Copy''
Nex i
P opiedades de una coleccion
Coun
es la unica p opiedad aplicable a las colecciones. Es el n ume o de ob je os con enidos en
la coleccion que p e mi e la u ilizacion de un con ado pa a eco e la coleccion median e una
i e acion.
Me o dos de las colecciones
A con in
uacion se desc ib en los me o dos de una coleccion, que p e mi en la lo calizacion y p o ce-
samien o de elemen os en ella. Aunque o das las p opiedades y me o dos sean los mismos, ac uan
sob e ip os di e en es de ob je os seg un el ip o de ob je o con enido. Po ejemplo, el me o do
C l assC oll ec ion:Ge A
ob iene una ob je o clase", y el me o do
C a eg o y C oll ec ion:Ge A
ob-
iene un ob je o ca ego a", e c. Es os me o dos son:
Exis s
Indica si un ob je o exis e en una coleccion.
FindFi s
Ob iene el ndice (p osicion) de la p ime a ins ancia de un ob je o en una coleccion.
FindNex
Ob iene el ndice (p osicion) de la siguien e ins ancia de un ob je o en una coleccion.
Ge Wi hUniqueID
Ob iene la ins ancia de un ob je o en una coleccion, dado su iden icado
ID
unico, excep o pa a aquellos ip os de ob je os que no ienen
ID
unico (como los ob je os
E x e nal D ocumen
o
P ope y
).
Ge A
Ob iene una ins ancia esp ecca de un ob je o en una coleccion.
Ge Fi s
Ob iene la p ime a ins ancia de un ob je o en una coleccion.
Ge Ob jec
Ob iene el in e az OLE aso ciado con una coleccion dada.
IndexO
Ob iene el ndice (p osicion) de un ob je o en una coleccion dada.
15

Me o dos pa a las colecciones denidas po el usua io
Acon inuacion se desc ib en cua o me o dos de colecciones adicionales, que p e mi en a~nadi
o qui a ob je os de una coleccion. Sin emba go, es os me o dos solo son alidos pa a aquellas
colecciones denidas p o el usua io y no pueden se u ilizadas en las colecciones co esp ondien es
de un mo delo de
Ra ional Rose
.
Add
A~nade un ob je o a la coleccion de ob je os.
AddCollec ion
A~nade una coleccion a una coleccion de ob je os.
Remo e
Elimina una coleccion de una coleccion de ob je os.
Remo eAll
Elimina el con enido comple o de una coleccion.
2.3 Cons an es, a iables y exp esiones
2.3.1 Denicion de cons an es
Se puede decla a una cons an e pa a se u ilizada en el
sc ip
.En el momen o de la decla acion,
p o d a asigna se una exp esion o mada po li e ales y o as cons an es (no se pe mi en las
llamadas a uncion, excep o
Ch
$). Po ejemplo:
Cons s$ = ``Hola'' + Ch (44)
Cons a% = 5 'Cons an e en e a cuyo alo es 5
Cons b# = 5 'Cons an e eal doble cuyo alo es 5.0
Cons c$ = ``5'' 'Cons an e cadena cuyo alo es ``5''
Cons d! = 5 'Cons an e eal simple cuyo alo es 5.0
Cons e& = 5 'Cons an e en e a la ga cuyo alo es 5
Cons a As In ege = 5 'Cons an e en e a cuyo alo es 5
Cons bAsDouble=5 'Cons an e eal doble cuyo alo es 5.0
Cons c As S ing = ``5'' 'Cons an e cadena cuyo alo es ``5''
Cons d As Single = 5 'Cons an e eal simple cuyo alo es 5.0
Cons e As Long = 5 'Cons an e en e a la ga cuyo alo es 5
Cons a = 5 'Cons an e en e a
Cons b = 5.5 'Cons an e eal simple
Cons c = 5.5E200 'Cons an e eal doble
Cons FichDe = ``De ec o. x ''
Sub Tes 1
Cons FichDe = ``Fiche o. x ''
MsgBox FichDe 'Visualiza ``Fic
he o. x ''.
End Sub
Sub Tes 2
MsgBox FichDe 'Visualiza ``De ec o. x ''.
End Sub
16
En el siguien e ejemplo se mues an las cons an es decla adas en una en ana de mensa je
(
c l
p o duce un sal o de lnea en la en ana):
Cons c l = Ch $(13) + Ch $(10)
Cons s As S ing = ``Es o es una cons an e.''
Sub Main()
MsgBox s$ & c l & ``Las cons an es se mues an a iba.''
End Sub
2.3.2 Decla acion de a iables
La sen encia
Dim
La sen encia
Dim
decla a una lis a de a iables lo cales con sus co esp ondien es ip os y ama ~nos.
Su sin axis es:
Dim
Name
&(
< S ubsc ip s >
)] &As &New]
Type
] &,Name &(
< S ubsc ip s >
)] &As &New]
Type
]]
:::
Una al e na i a a
Dim
es el
ca ac e de decla acion de ipos
. Po ejemplo, las siguien es
decla aciones son equi alen es:
Dim Temp e a u a As In ege
Dim Temp e a u a%
El pa ame o
S ubsc ip s
p e mi e la decla acion de a ays dinamicos y jos (si se exp esan
los lmi es sup e io es e in e io es has a 60 dimensiones) siguiendo la siguien e sin axis:
&
Low e
To]
U ppe
&,&
Low e
To]
U ppe
]...
El pa ame o
Type
esp ecica el ip o del da o que se decla a y puede se :
S ing
,
I n eg e
,
Long
,
Single
,
Double
,
C u ency
,
Obj ec
,ob jec os de da os o ip os de da os (del sis ema o
denidos p o el usua io).
Una sen encia
Dim
den o de una sub u ina o uncion decla a a iables lo cales a ella. Si
apa ece ue a, en onces su alcance es global y equi alen e al de las a iables decla adas con la
sen encia
P i a e
.
Cadenas de longi ud ja
Se decla an a ~nadiendo la longi ud a la decla acion del ip o
S ing
:
Dim nomb e a iable As S ing * longi ud cadena
Decla acion de a iables implci as
Cuando
BasicSc ip
encuen a una a iable no decla ada con
Dim
,en onces su ip o se a el
esp ecicado p o el ca ac e de decla acion de ip os. Si no lo iene, en onces la p ime a le a del
nomb e de la a iable es buscado en las sen encias
De T ype
pa a asigna le un ip o p o de ec o.
Si a un as oda a no se ha encon ado un ip o pa a la a iable, en onces se aun
V a ian
.
Decla acion de obje os de au oma izacion
OLE
17
Se pueden decla a a iables de un ip o de ob je o explci o pa a ob je os cono cidos po
Basic-
Sc ip
a a es de las lib e as de ip os. Se sigue la siguien e sin axis:
Dim
N omb eV a iabl e
As
Appl ica ion:C l ass
El pa ame o
Appl ica ion
esp ecica la aplicacion u ilizada pa a egis a el ob je o de au o-
ma izacion
OLE
yelpa ame o
C l ass
esp ecica el ip o de ob je o denido en la lib e a de ip o.
De es a mane a se es a u ilizando el enlace es a ico en iemp o de compilacion y mejo ando el
endimien o de la in o cacion a sus me o dos.
C eacion de nue os obje os
La palab a cla e op cional
New
se u iliza pa a decla a una nue a ins ancia del ob je o de da os
esp ecicado y no se puede u iliza cuando se decla an a ays u ob je os de au oma izacion
OLE
.
En iemp o de ejecucion, se no ica a a la aplicacion que se es a deniendo un n
ue oob je o:
la aplicacion esp onde a median e la c eacion de un nue o ob je o sico (den o del con ex o
ap opiado) y de ol e auna e e encia al mismo, que se asigna a inmedia amen e a la a iable
que se es a decla ando. Cuando se acab e el ambi o de la a iable en onces se no ica a a la
aplicacion pa a que es a des uya ese ob je o sico.
Con enciones pa a los nomb es de a iables
Los nomb es de a iables deb en segui las siguien es eglas:
1. Deb en comenza con una le a.
2. Pueden con ene le as, dgi os y el ca ac e de sub ayado ( ). Las pun uaciones no se
p e mi en. El signo de exclamacion (!) se pe mi e, pe o si es a en la ul ima p osicion se
in e p e a a como un ca ac e de decla acion de ip os.
3. El ul imo ca ac e del nomb e puede se un ca ac e de decla acion de ip o: #, @, %, !,
&y$.
4. No deb en excede los 80 ca ac e es de longi ud.
5. No pueden con ene palab as ese adas.
Ejemplos
Los siguien es ejemplos u ilizan la sen encia
Dim
pa a decla a a iables ipadas:
Sub Main()
Dim i As In ege
Dim l& 'En e o la go
Dim s As Single
Dim d# 'Real doble
Dim c$ 'Cadena
Dim MyA ay(10) As In ege 'A ayde10en e os
Dim MyS ings$(2,10) 'A ay de bidimensional de cadenas
Dim Filenames$(5 o 10) 'A ayde6cadenas(nume adas de 5 a 10)
Dim Values(1 o 10, 100 o 200) 'A ayde a ian es bidimensional
End Sub
18
La sen encia
Public
Decla a una lis a de a iables p ublicas, es deci , a iables que son globales pa a o das las sub-
u inas y unciones de o dos los
sc ip s
. La sin axis que se sigue es:
Public
N ame
&(
S ubsc ip s
)] &As
Type
]&,
Name
&(
S ubsc ip s
)] &As
Type
]]...
Cuando no se esp ecica o a cosa, cualquie a iable se decla a implci amen e lo cal a la
u ina que la u iliza. La sen encia
Gl obal
iene el mismo signicado que
Public
.
Cuando se u ilizan a iables compa idas, se deb e asegu a que las decla aciones son iden icas
en o dos los
sc ip s
.
El siguien e ejemplo u iliza una sub u ina pa a calcula el a ea de 10 c culos y isualiza el
esul ado en una en ana. Las a iables
R
y
A
son decla adas como p ublicas pa a que puedan
u iliza se an o en
Main
como en
A ea
.
Cons c l = Ch $(13) + Ch $(10)
Public x#, a #
Sub A ea()
a # = (x# ^ 2) * Pi
End Sub
Sub Main()
msg = ``Las a eas de los diez c culos son:'' & c l
Fo x# = 1 To10
A ea
msg = msg & x# & ``: '' & a # & Basic.Eoln$
Nex x#
MsgBo
x msg
End Sub
La sen encia
P i a e
Decla a una lis a de a iables p i adas, es deci , a iables que son globales pa a o das las sub-
u inas y unciones que se ejecu en en el
sc ip
ac ual. La sin axis que se sigue es:
P i a e
Name
&(
S ubsc ip s
)] &As
Type
]&,
N ame
&(
S ubsc ip s
)] &As
Type
]]...
La sen encia
Redim
Se u iliza pa a ol e a decla a un a ay, median e la esp ecicacion de un lmi e in e io y o o
sup e io pa a cada dimension del a ay. La sin axis de es a sen encia es:
Redim &P ese e]
Va iableName
(&
S ubsc ip Rang e
]) &As
Type
],
:::
Si la a iable ya es aba an e io men e denida, en onces deb e hab e se decla ado p e iamen e
median e la sen encia
Dim
como un a ay dinamico (sin esp ecica dimensiones). Es os a ays
19
pueden se e{dimensionados cualquie n ume o de eces.
El pa ame o
S ubsc ip Rang e
esp ecica las nue as dimensiones, y cuando no se esp ecican,
se conside a que el a ay no end a elemen os. Po de ec o, el lmi e in e io es ce o, aunque
dep ende de la sen encia
O p ion B ase
. Se sigue la sin axis:
&
Low e
To]
U ppe
&,&
Low e
To]
U ppe
]
:::
Las dimensiones del nue oa ay deb en es a en el siguien e ango, gene andose un e o en
caso de que no se cumplan:
;
32768

Low e

Uppe

32767
El pa ame o
Type
puede u iliza se pa a esp ecica el ip o de cada elemen o del a ay. Es os
es an es ingidos a cualquie ip o de da os undamen al, ip os de da os denidos p o el usua io
o ob je os.
La edimension del a aybo a o dos los elemen os al menos que no se u ilice la palab a
cla e
P ese e
.En es e caso, los da os del a ayseman ienen si ello es p osible. Si el n ume o de
elemen os se inc emen a, los nue os elemen os se inicializan a ce o o cadena aca. Si el nue o
ama ~no es in e io , los elemen os sob an es se an b o ados. Cuando se indica
P ese e
,elnue o
nume o de dimensiones deb e a se ce o o el mismo n ume o que ya ena.
El siguien e ejemplo u iliza la sen encia
F il eLis
pa a edimensiona un a ay y ellena lo
con cadenas de nomb es de che os. Un nue oa ay es en onces edimensionado pa a gua da
an os elemen os encon ados p o
F il eLis
, copiando el a ay y isualizandolo pa cialmen e:
Sub Main()
Dim *$()
FileLis *$,``*.*''
con ado = Ub ound(*$)
Redim nl$(Lb ound(*$) To Ub ound(*$))
Fo x = 1 o con ado
nl$(x) = *(x)
Nex x
MsgBox ``El ul imo elemen o del nue
o a ayes: ''&nl$(con ado )
End Sub
2.3.3 Exp esiones
Como en cualquie lengua je, Las exp esiones es an compues as p o op e ado es y op e andos.
Ba-
sicSc ip
p e mi e u iliza a iables, llamadas a unciones, cons an es y li e ales con di e en es
ip os de da os en las exp esiones. Cuando es o o cu e, los dos a gumen os se con ie en al ip o
del op e ando con mayo p ecision. Si una op e acion se ealiza en e una exp esion nume ica y
o a ex ual, en onceslaul ima se con ie e a una exp esion nume ica.
Cuando una a iable de ip o ob je o es u ilizada con op e ado es nume icos ales como la
suma o la es a, se u iliza au oma icamen e la
p opiedad po de ec o del obje o
. En el siguien e
ejemplo, las dos op e aciones p os e io es a la decla acion del ob je o son equi alen es p o que la
20

p opiedad p o de ec o de un ob je o de la clase
Excel
es
:V al ue
:
Dim Excel As Ob jec
Se Excel = Ge Ob jec (,``Excel.Applica ion'')
MsgBox ``Es a aplicacion es '' & Excel
MsgBox ``Es a aplicacion es '' & Excel.Value
Op e ado es
A con inuacion se denen los op e ado es exis en es en
BasicSc ip
.Hay que eco da que
seg un los ip os de los op e andos a ia a el esul ado de la op e acion.
Conca enacion de cadenas
&
Di ision en e a
n
Suma, es a, mul iplicacion y di ision
+,
;
,

,
=
Po encia
^
Compa aciones
<
,

,
>
,

,=,
<>
Conjuncion logica o bina ia
And
Equi alencia logica o bina ia
Eq
(de uel e
T ue
si amb os op e andos ienen el mismo alo
logico)
Implicaci
on logica o bina ia
Imp
(de uel e
T ue
si el segundo op e ando es
T ue
)
Iden icacion de clase
Is
(de uel e
T ue
si las dos a iables ob je os que son op e andos ha-
cen e e encia al mismo ob je o. Es a compa acion puede ealiza se con
No hing
pa a
de e mina si la a iable ob je o es a sin inicializa )
Compa acion con pa ones
Lik e
Res o de una di ision
Mod
Negacion logica o bina ia
No
Disyuncion logica o bina ia
O
Exclusion logica o bina ia
Xo
(de uel e
T ue
si amb os op e andos ienen dis in os alo es
logicos)
P ecedencia de op e ado es
A con inuacion se mues a la p ecedencia en e op e ado es en
BasicSc ip
(de mayo a meno
p ecedencia). A igual p ecedencia, se e al uan de izquie da a de echa.
Pa 
en esis
()
Exp onenciacion
^
Menos una io
;
21
Di ision y mul iplicacion
=

Di ision en e a
n
Modulo
Mod
Suma y es a
+
;
Conca enacion de cadenas
&
Compa a i as
=
<>><<
=
>
=
Compa acion de cadenas y ob je os
Lik e I s
Negacion logica
No
Conjuncion logica o bina ia
And
Disjuncion logica o bina ia
O
Op e ado es logicos o bina ios
Xo Eq Imp
P ecision de los op e andos
BasicSc ip
ealiza la con e sion de ip os au oma icamen e, pe o algunas eces es o puede
o casiona alg un e o de ango. Po ejemplo, cuando los alo es de pun o *o an e se con ie en
aen e os, la pa e accional se pie de, edondeando al en e o m
as ce cano u ilizando el edondeo
de Bake :

Si la pa e accional es mayo que
:
5, el n ume o es edondeado hacia a iba.

Si la pa e accional es meno que
:
5, el n ume o es edondeado hacia aba jo.

Si la pa e accional es igual a
:
5, el nume o es edondeado hacia a iba si es impa y
hacia aba jo si es pa .
Cuando se u ilizan op e ado es nume icos, bina ios, logicos o compa a i os, el ip o de da o
del esul ado es gene almen e el mismo del ip o de da os del op e ando mas p eciso. Po ejemplo,
al suma un en e o y un en e o la go, p ime o se con ie e el en e o a un en e o la go, y despues
se ealiza la suma, saliendose de ango solo cuando el esul ado no puede con ene se en un en e o
la go. El o den de p ecision se mues a en la siguien e lis a (de meno a mayo p ecision):

E mp y

B ool ean

In ege

Long

Single

Da e

Double

C u ency
22
Hay algunas excep ciones con algunos op e ado es. Las eglas pa a la con e sion de op e andos
son mas complicadas cuando alg un op e ando es de ip o
Va ian
. En muchos casos, un alo
ue a de ango causa la p omo cion au oma ica del esul ado al siguien e ip o de da os mas
p eciso.
Li e ales
Los li e ales son alo es con un ip o esp ecco implci o que se pueden u iliza en las exp esiones.
Algunos ejemplos de li e ales son:

10

43265

5#

5
:
5

5
:
4
E
100

&
HF F

&
O
47

&
HF F
#

Hola"

Hola""

#1
=
1
=
1994#
2.4 Funciones y sub u inas
2.4.1 Decla acion de p o o ip os de sub u inas
La sen encia
D ecl a e
c ea el p o o ip o de una u ina ex e na o una u ina de
BasicSc ip
que
se deni a p os e io men e en el modulo uen e oen o o modulo. La sen encia
D ecl a e
deb e
apa ece en el ex e io de cualquie decla acion
Sub
o
F unc ion
y el p o o ip o decla ado solo
se a alido en aquel
sc ip
donde apa ezca. Sigue la siguien e sin axis:
Decla e
Sub
j
Func ion
g
N ame
&
T y peC ha
] &CDecl
j
Pascal
j
Sys em
j
S dCall]
&Lib ``LibName$'' &Alias ``AliasName$'']]
&(&
P a ame e Lis
])] &As
Type
]
P a ame e Lis
es la lis a de pa ame os (has a 30) de la u ina y cada uno de ellos iene la
siguien e sin axis:
&Op ional] &ByVal
j
ByRe ]
P a ame e N ame
&()] &As
P a ame e T ype
]
Los pa ame os que se u ilizan son los siguien es:

Name Typ eCha ]
Nomb e de la u ina. En las unciones, es op cional indica el ip o de
alo a de ol e colo cando un ca ac e de decla acion de ip os (cualquie a de ellos excep o
@ pa a el caso de unciones ex e nas).
23

LibName$
Deb e se esp ecicada si la u ina es ex e na pa a indica el nomb e de la
lib e a o codigo uen e que la con iene y apa ece aen e comillas. Pueden u iliza se alias
en caso de con*ic os (
AliasName$
deb e apa ece en e comillas). Po ejemplo:
{
Decla e Func ion Ge Cu en Time Lib use " () As In ege
{
Decla e Func ion Ge Time Lib use " Alias Ge Cu en Time" As In ege

Typ e
Indica el ip o a de ol e . Pa a las unciones ex e nas, los ip os alidos son:
I n eg e
,
Long
,
S ing
,
S ing l e
,
D oubl e
,
Da e
,
B ool ean
y ob je os de da os. Po o o lado, los ip os
C u ency
y
Va ian
, las cadenas de longi ud a iable, los a ays, los ip os denidos p o
el usua io y los ob je os de au oma izacion
OLE
no pueden se de uel os p o las unciones
ex e nas.

Op ional
Pa a indica la op cionalidad de un pa ame o. To dos los pa ame os op cionales
deb en se de ip o
V a ian
, y se decla an al nal de la lis a de pa ame os.

ByVal
Se pasa a el pa ame o p o alo , p o lo que no p o d a se mo dicados p o la u ina.

ByRe
Se pasa a el pa ame o po e e encia, po lo que p o d a cambia se. Po de ec o,
o dos los pa ame os se pasan p o e e encia.

Pa ame e Name
Nomb e del pa ame o, que deb e segui las con enciones de nomb es
de BasicSc ip . ()
00
indica que el pa ame o es un a ay.

Pa ame e Typ e
Esp ecica el ip o del pa ame o. La clausula
As
deb e se incluida solo
si el nomb e del pa ame o no con iene un ca ac e de decla acion de ip o. Ademas de los
ip os basicos, pueden esp ecica se es uc u as denidas p o el usua io, ob je os de da os y
ob je os de au oma izacion
OLE
. Pa a pasa pa ame os a u inas ex e nas, si el ip o de
da o no es cono cido, se puede u iliza
Any
, o zando al compilado a ela ja el chequeo
de ip o, p e mi iendo que cualquie ip o de da os pueda se pasado en el luga de dicho
a gumen o. Po ejemplo:
{
Decla e Sub Con e i Lib MiLib e ia" (a As Any)
Paso de pa ame os
Po de ec o, el paso de pa ame os en
BasicSc ip
es po e e encia. Muchas u inas ex e -
nas equie en un alo en luga de una e e encia y pa a ello es a
ByV al
. Po ejemplo, el
p o cedimien o en C
oid M essag eB eep
(
in
) deb e a decla a se as:
Decla e Sub MessageBeep Lib ``use '' (ByVal n As In ege )
El siguien e p o cedimien o en C
in S y s emP a ame e sI n o
(
in  in  in

in
) es un ejem-
plo de paso de pa ame os p o e e encia y se esc ibi a as:
Decla e Func ion Sys emPa ame e sIn o Lib ``use ''
(ByVal ac ion As In ege ,
ByVal uPa am As In ege ,
ByRe pIn o As In ege ,
ByVal up da eINI As In ege ) As In ege
Paso de cadenas
Las cadenas pueden pasa se p o e e encia opo alo . Cuando se pasan p o e e encia, lo que
se pasa es un pun e o a un pun e o a una cadena al es ilo
C
( e minada con
nul l
) y la u ina
ex e na puede cambia el pun e o o mo dica el con enido de la cadena. Cuando se pasa po
24
Salida o zada de sub u inas
La sen encia
E xi S ub
ue za la salida de la sub u ina ac ual, con inuando la ejecucion po la
sen encia que sigue a la llamada de la sub u ina. Solo puede apa ece den o del blo que de una
sub u ina. En el siguien e ejemplo la sub u ina isualiza una en ana de dialogo y en onces
naliza. La ul ima lnea no deb e a se nunca ejecu ada a causa de la sen encia
Exi Sub
.
Sub Main()
MsgBox ``Te minando
M ain
().''
Exi Sub
MsgBox ``Sigue o da a el
Main
().''
End Sub
2.4.4 Algunos asp ec os del paso de pa ame os
Da o undamen al a
Va ian
Al pasa el da o p o e e encia se p e iene que el
V a ian
cambie su ip o den o de la u ina.
Po ejemplo:
Sub Foo( As Va ian )
=50 'OK.
= ``Hola, mundo'' 'Aqu se p o duce un e o de ip o.
End Sub
Sub Main()
Dim i As In ege
Foo i 'Pasa un en e o p o e e encia.
End Sub
Va ian
a da o undamen al
Un
Va ian
no puede pasa se a una u ina que acep e da os undamen ales p o e e encia. Po
ejemplo:
Sub Foo(i as In ege )

End Sub
Sub Main()
Dim a As Va ian
Foo a 'Aqu el compilado da un e o de ip o.
End Sub
Paso de es uc u as
Las UDT's pueden pasa se an o a u inas denidas po el usua io como a u inas ex e nas.
Siemp e se pasan p o e e encia: la palab a cla e
ByV al
no puede u iliza se cuando se denen
a gumen os de ip o es uc u a que se pasan a u inas ex e nas (median e
D ecl a e
).
ByV al
solo
31

se p o d a u iliza con ip os de da os undamen ales. En ealidad, cuando se pasa una es uc u a
a una u ina ex e na solo se pasa un pun e o lejano a la es uc u a de da os.
Paso de a ays
Los a ays siemp e se pasan p o e e encia. Po ejemplo:
Dim a(10) As S ing
FileLis a 'Ambas llamadas es an bien.
FileLis a()
Pa ame os nominales
Muchos elemen os del lengua je sop o an los pa ame os nominales, que p e mi en la esp ecicacion
de pa ame os en una uncion o sub u ina median e su nomb e, en luga del adicional o den
p ede e minado. Algunos ejemplos de una llamada a
MsgBox
:

Nominal
:
{
MsgBox P omp := Hola mundo."
{
MsgBox Ti le:= T ulo", P omp := Hola mundo"
{
MsgBox HelpFile:= BASIC.HLP",P omp := Hola mundo", HelpCon ex :=10

Posicional
:
{
MsgBox Hola mundo"
{
MsgBox Hola mundo",, T ulo"
{
MsgBox Hola mundo",,, BASIC.HLP",10
De es a o ma, el codigo es mas acil de lee y ademas se e i a ene que cono ce el o den
de los pa ame os, sob e o do si los pa ame os son muchos y/o op cionales. Se deb en segui las
siguien es eglas:

Los pa ame os nominales deb en u iliza el nomb e del pa ame o esp ecicado en la des-
c ipcion de ese elemen o del lengua je, de lo con a io hab a un e o de compilacion.

To dos los pa ame os ( an o nominales como op cionales) se sepa an p o comas.

El pa ame o nominal y su alo aso ciado se sepa an con :=".

Si un pa ame o es nominal, o dos los pa ame os que le siguen ambien deb en se lo.
Po ejemplo:
MsgBox ``Hola mundo'', Ti le:=``T ulo'' 'OK
MsgBox P omp :=``Hola mundo'',,``T ulo'' 'MAL
32
2.5 Sen encias selec i as
2.5.1 La sen encia
I ...Then...Else
Pe mi e al ejecucion condicionada de una sen encia o g up o de sen encias. La sin axis es:
I
C ondi ion
Then
S a emen s
&Else
E l seS a emen s
]
Una segunda sin axis a ~nade la clasula
ElseI
:
I
C ondi ion
Then
&
S a emen s
]
&ElseI
E l seC ondi ion
Then
&
E l seI S a emen s
]]
&Else
&
E l seS a emen s
]]
End I
Los pa ame os son:
Condi ion
Cualquie exp esion que esuel aun alo logico.
S a emen s
Una o mas sen encias sepa adas p o +". Es e g up o se ejecu a cuando la condicion
es
T ue
.
ElseS a emen s
Una o mas sen encias sepa adas p o +". Es e g up o se ejecu a cuando o das
las condiciones an e io es son
False
.
ElseCondi ion
Cualquie exp esion que esuel aun alo logico. Se e al ua si o das las condi-
ciones p e ias son
False
. Pueden apa ece cualquie n ume o de clasulas
ElseI
.
ElseI S a emen s
Una o mas sen
encias sepa adas p o +". Es e g up o se ejecu a cuando su
condicion es
T ue
.
2.5.2 La sen encia
Selec Case
Es la sen encia de seleccion m ul iple, seg un el alo de una de e minada exp esion. Su sin axis
es la siguien e:
Selec Case
T es E xp ession
&Case
E xp essionLis
&
S a emen B l ock
]]
&Case
E xp essionLis
&
S a emen B l ock
]]

&Case Else
&
S a emen B l ock
]]
End Selec
Es a sen encia iene las siguien es pa es:
33
Tes Exp ession
Una exp esion nume ica o de cadena.
S a emen Blo ck
Un g up o de sen encias de
BasicSc ip
. Si
T es E xp ession
se iguala con
alguna de las exp esiones con enidas en
E xp essionLis
,en onces se ejecu a a el blo que
de sen encias.
Exp essionLis
Una lis a de exp esiones (sepa adas po comas) que se an compa adas con
T es E xp ession
.
Se pueden u iliza angos de exp esiones m ul iples den o de una clasula
Case
simple. Po
ejemplo:
Case 1 To 10,12,15, Is
>
40
Solo se ejecu a a el blo que que iguale p ime o la exp esion. Si no se encuen a ninguno,
en onces se ejecu a a el blo que
Case Else
.
El siguien e ejemplo u iliza la sen encia
S el ec C ase
pa a isualiza el sis ema op e a i o
ac ual:
Sub Main()
OpSys em% = Basic.OS
Selec Case OpSys em%
Case 0,2
s = ``Mic oso Windows''
Case3 o8,12
s = ``UNIX''
Case 10
s = ``IBM OS/2''
Case Else
s = ``O o sis ema''
End Selec
MsgBox ``Es a e sion de BasicSc ip es a ejecu andose sob e: '' & s
End Sub
2.5.3 Funciones selec i as
A con inuacion se mues an es unciones de muy al o ni el que p e mi en esc ibi sen encias
selec i as en una sola lnea de codigo:
Cho ose
Recib e un ndice y has a 13 exp esiones como pa ame os y de uel e la exp esion que
se encuen a en la p osicion indicada.
II
Recib e una exp esion logica y o as dos exp esiones (pa es cie a y alsa) y de ol e a una
u o a seg un la e aluacion de la exp esion logica.
Swi ch
Recib e has a sie e pa es condicion{exp esion y de uel e la exp esion que co esp onde
a la p ime condicion que sea
T ue
.
34
2.6 Sen encias i e a i as
2.6.1 El bucle
Do...Loop
Se pueden u iliza has a es ip os de bucles:
Do
While
j
Un il
g
C ondi ion
S a emen s
Lo op
Do
S a emen s
Lo op
While
j
Un il
g
C ondi ion
Do
S a emen s
Lo op
Como en cualquie o o lengua je, el blo que se epi e mien as la condicion sea e dade a o
has a que la condicion sea e dade a. El bucle es inni o cuando no se esp ecica la clausula de
condicion. La condicion siemp e se a cualquie exp esion logica.
Acon inuacion se mues an a ios ejemplos. El p ime o de ellos u iliza la sen encia
Do::: while
que ejecu a el cue p o de la i e acion p ime o y en onces chequea la condicion, epi iendolo si la
condicion es cie a:
Dim a$(100)
i% = -1
Do
i% = i% + 1
I i% = 0 Then
a(i%) = Di $(``*'')
Else
a(i%) = Di $
End I
Lo op While (a(i%)
<>
``'' And i%
<
=99)
% = Selec Box(i% & `` che os encon ados'',,a)
El segundo ejemplo u iliza la sen encia
D o W hile : : : Loop
, que chequea p ime o la condici
on
y ejecu a el cue p o de la i e acion si es cie a, ol iendo de nue oalpun o de chequeo:
Dim a$(100)
i% = 0
a(i%) = Di $(``*'')
Do While (a(i%)
<>
``'' And i%
<
=99)
i% = i% + 1
a(i%) = Di $
Lo op
% = Selec Box(i% & `` che os encon ados'',,a)
El e ce ejemplo u iliza la sen encia
D o U n il : : : Loop
, que ejecu a la i e acion has a que la
condicion sea cie a, e aluando p ime o la condicion:
35
Dim a$(100)
i% = 0
a(i%) = Di $(``*'')
Do Un il a(i%) = ``'' O i% = 100
i% = i% + 1
a(i%) = Di $
Lo op
% = Selec Box(i% & `` che os encon ados'',,a)
El cua o ejemplo u iliza la sen encia
D o : : : Loop U n il
, que ejecu a la i e acion has a que
la condicion sea cie a, e aluandola as la ejecucion del cue p o:
Dim a$(100)
i% = -1
Do
i% = i% + 1
I i% = 0 Then
a(i%) = Di $(``*'')
Else
a(i%) = Di $
End I
Lo op Un il (a(i%) = ``'' O i% = 100)
% = Selec Box(i% & `` che os encon ados'',,a)
Salida o zada de los bucles (
Do...Loop
)
La sen encia
E xi D o
lle a la lnea de ejecucion a la sen encia que sigue a la clausula
Loop
.
Solo pod a apa ece den o de una sen encia
D o : : : Loop
. El siguien e ejemplo ca ga un a a
y
con las en adas de di ec o ios al menos que hayamas de 10 en adas (en es e caso la sen encia
Do::: Loop
e mina la i e acion):
Sub Main()
Dim a$(5)
Do
i% = i% + 1
I i% = 1 Then
a(i%) = Di $(``*'')
Else
a(i%) = Di $
End I
I i%
>
= 10 Then Exi Do
Lo op While (a(i%)
<>
``'')
I i% = 10 Then
MsgBox ``<'' & i% & `` en ada p o cesadas!''
Else
MsgBox ``<Menos de '' & i% & `` en adas p o cesadas!''
End I
End Sub
36

2.6.2 El bucle
While...Wend
Es una sen encia i e a i a que epi e la ejecucion de una sen encia o g up o de ellas mien as
una condicion de en ada sea e dade a. La condicion se chequea al inicio de cada i e acion. La
sin axis es:
While
C ondi ion
&
S a emen s
]
Wend
El siguien e ejemplo ejecu a el bucle has a que el gene ado de n ume os alea o ios de uel e
el alo 1 (p e o un maximode1000 eces, momen o en el que se ue za la salida):
Sub Main()
x% = 0
coun %=0
While x%
<>
1
x% = Rnd(1)
I coun %
>
1000 Then
Exi Sub
Else
coun % = coun % + 1
End I
Wend
MsgBox ``El bucle se ejecu o''&coun % & `` eces.''
End Sub
2.6.3 El bucle
Fo Each
La sen encia
F o E ach
epi e un blo que de sen encias pa a cada elemen o de una coleccion o
a ay. Su sin axis es:
Fo Each
M embe
In
G oup
&
S a emen s
]
&Exi Fo ]
&
S a emen s
]
Nex &
M embe
]
Es a sen encia iene los siguien es pa ame os:
Membe
Nomb e de una a iable pa a gua da un elemen o en cada i e acion del bucle.
G oup
Nomb e de la coleccion o a ay.
S a emen s
El blo que de sen encias.
La a iable de la i e acion es una copia del elemen o de la coleccion o a ay, po lo que los
cambios sob e es as a iables no a ec an a los elemen os o iginales. Los elemen os se eco en
en el mismo o den en que es an almacenados en memo ia. La ejecucion con in ua has a que no
haya mas elemen os. Pueden anida se los bucles
F o E ach
con o os bucles, po lo que
N ex
37
a ec a aalmas in e no (
F o E ach
o
F o N ex
) en ese momen o. El nomb e de la a iable pa a
los miemb os deb e se unico.
El siguien e ejemplo mues a una sub u ina que i e a a a es de los elemen os de un a ay
u ilizando la sen encias
Fo ::: Each
:
Sub Main()
Dim a(3 To 10) As Single
Dim i As Va ian
Dim s As S ing
Fo i = 3 To10
a(i) = Rnd()
Nex i
Fo Each i In a
i=i+1
Nex i
s = ``''
Fo Each i In a
I s
<>
``'' Thens=s&``,''
s=s&i
Nex i
MsgBoxs
End Sub
En el siguien e ejemplo la sub u ina isualiza los nomb es de cada ho ja de un lib o de
Excel
:
Sub Main()
Dim Excel As Ob jec
Dim Shee s As Ob jec
Se Excel = C ea eOb jec (``Excel.Applica ion'')
Excel.Visible = 1
Excel.Wo kb o oks.Add
Se Shee s = Excel.Wo kshee s
Fo Each a In Shee s
MsgBox a.Name
Nex a
End Sub
2.6.4 El bucle
Fo ... Nex
La sen encia
Fo : : : Nex
epi e un blo que de sen encias un nume o esp ecicado de eces. Su
sin axis es la siguien e:
38
Fo
Coun e
=
S a
To
End
&S ep
I nc emen
]
&
S a emen s
]
&Exi Fo ]
&
S a emen s
]
Nex &
Coun e
&,
N ex C oun e
]
:::
]
Es a sen encia oma los siguien es pa ame os:
Coun e
Nomb e de una a iable nume ica (los ip os p osibles son:
In ege
,
Long
,
S ing l e
,
Double
o
Va ian
).
S a
Valo inicial del con ado .
End
Valo nal del con ado .
Inc emen
Can idad que se a ~nade al con ado en cada uel a del bucle. Se a p osi i o o nega i o
seg un los alo es iniciales y nales. Po de ec o, el inc emen o es +1. No se puede cambia
su alo du an e la ejecucion del bucle.
S a emen s
El cue p o de sen encias del bucle.
La sen encia con inua su ejecucion has a que llega a una sen encia
E xi F o
o cuando el
con ado es mayo que el alo nal (o meno si el bucle iene eco ido in e so). Es os bucles
pueden apa ece anidados. La sen encia
Nex
se aplica al bucle
Fo : : : Nex
mas in e no. La
clausula
Nex
puede op imiza se ag upando a ios con ado es. Po ejemplo, los siguien es bucles
son equi alen es:
Fo i = 1 To10 Fo i = 1 To10
Fo j=1 To10 Fo j=1To10
Nex j Nex j,i
Nex i
El siguien e ejemplo cons uye la abla de e dad pa a la op e acion logica
O
u ilizando a ios
bucles
F o : : : N ex
anidados:
Sub Main()
Fo x = -1 To0
Fo y = -1 To0
Z=xO y
msg = msg & Fo ma (Abs(x%),``0'') &`` O ''
msg = msg & Fo ma (Abs(y%),``0'') &`` =''
msg = msg & Fo ma (Z,``T ue/False'') & Basic.Eoln$
Nex y
Nex x
MsgBox msg
End Sub
Salida o zada de los bucles (
Fo ...Nex
)
La sen encia
Exi F o
ue za la salida del bucle mas in e no
Fo
, con inuando la lnea de
ejecucion as la sen encia
N ex
.Solo puede apa ece en los blo ques
Fo : : : Nex
.
El siguien e ejemplo ellena un a ay con en adas de di ec o ios has a que se encuen a
una en ada nula o se hayan p o cesado 100 en adas, momen o en el que el bucle e mina po
39
una sen encia
E xi F o
.La en ana de dialogo isualiza un con ado de che os encon ados y
algunas en adas del a ay:
Cons c l = Ch (13) +
Ch
(10)
Sub Main()
Dim a$(100)
Fo i = 1 To 100
I i=1Then
a$(i) = Di $(``*'')
Else
a$(i) = Di $
End I
I (a$(i) = ``'') O (i
>
= 100) Then Exi Fo
Nex i
msg = ``Hay '' & i & `` che os encon ados.'' & c l
MsgBox msg & a$(1) & c l & a$(2) & c l & a$(3) & c l & a$(10)
End Sub
40
De aul P op e ies
Las p opiedades p o de ec o del mo delo.
Deploymen Diag am
El diag ama de despliegue aso ciado al mo delo.
Ro o Ca ego y
La ca ego a
Top Le el
de
Ra ional Rose
.Se co esp onde a la is a logica
del mo delo. Solo lec u a.
Ro o Subsys em
El subsis ema
Top Le el
de
Ra ional Rose
. Se co esp onde a la is a de
comp onen es del mo delo. Solo lec u a.
Ro o UseCaseCa ego y
La ca ego a az a la que p e enecen los casos de usos. Se co es-
p onde a la is a de casos de uso del mo delo. Solo lec u a.
UseCases
Los casos de usos que p e enecen al mo delo.
Ylosme o dos esp eccos de la clase
Model
son:
FindCa ego ies
Encon a una coleccion de ca ego as del mo delo.
FindCa ego yWi hID
Encon a una ca ego a esp ecca del mo delo.
FindClassWi hID
Encon a una clase esp ec
ca del mo delo.
FindClassses
Encon a una coleccion de clases del mo delo.
FindI emWi hID
Encon a un  em esp ecco del mo delo.
FindI ems
Encon a una coleccion de  emes del mo delo.
Ge AllClasses
Ob ene o das las clases de o das las ca ego as del mo delo.
Ge AllCa ego ies
Ob ene o das las ca ego as del mo delo.
Ge AllSubsys ems
Ob ene o dos los subsis emas del mo delo.
Ge AllMo dules
Ob ene o dos los modulos del mo delo.
Ge AllP o cesso s
Ob ene o dos los p o cesado es del mo delo.
Ge AllDe ices
Ob ene o dos los disp osi i os del mo delo.
Ge AllUseCases
Ob ene o dos los casos de uso del mo delo.
Ge Ac i eDiag am
Ob ene el diag ama ac ualmen e ac i o del mo delo.
Ge Selec edClasses
Ob ene o das las clases ac ualmen e seleccionadas en el mo delo.
Ge Selec edCa ego ies
Ob ene o das las ca ego as ac ualmen e seleccionadas en el mo delo.
Ge Selec edMo dules
Ob ene o dos los modulos ac ualmen e seleccionados en el mo delo.
Ge Selec edSubsys ems
Ob ene o dos los subsis emas ac ualmen e seleccionados en el mo-
delo.
Ge Selec edUsesCases
Ob ene o dos los casos de uso ac ualmen e seleccionados en el mo-
delo.
AddP o cesso
A~nadi un p o cesado al mo delo.
Dele eP o cesso
Elimina un p o cesado del mo delo.
47

AddDe ice
A~nadi un disp osi i o al mo delo.
Dele eDe ice
Elimina un disp osi i o del mo delo.
La clase
De aul ModelP ope ies
es un con enedo pa a las p opiedades p o de ec o que
p e enecen al mo delo. Solo hayunobje o
D e aul M odel P ope ies
po modelo. Los me o dos
esp eccos de es a clase son:
AddDe aul P op e y
A~nadi una p opiedad p o de ec o a un conjun o de p opiedades.
CloneDe aul P op e ySe
Duplica un conjun o de p opiedades po de ec o pa a u iliza lo
como base pa a c ea un nue oconjun o de p opiedades.
C ea eDe aul P op e ySe
C ea un nue oconjun o de p opiedades p o de ec o (en blanco).
Dele eDe aul P op e y
Elimina una p opiedad p o de ec o del conjun o de p opiedades p o
de ec o.
Dele eDe aul P op e ySe
Elimina una p opiedad p o de ec o de un mo delo.
FindDe aul P op e y
Encon a una p opiedad po de ec o esp ecicada dados un mo delo,
unaclaseyelnomb e de una he amien a.
Ge De aul P op e ySe
Ob ene el conjun o de p opiedades po de ec o pa a una he a-
mien a y clase dadas.
Ge De aul Se Names
Ob ene los nomb es de los conjun os de p opiedades p o de ec o pa a
una he amien
a y clase dadas.
Ge To olNamesFo Class
Ob ene los nomb es de las he amien as aso ciadas a una clase dada.
IsTo olVisible
De e mina si la pagina con las p opiedades po de ec o del mo delo de una
he amien a dada es a isible en las esp ecicaciones.
Se To olVisibili y
Es ablece la isibilidad de una he amien a, es deci , si la pagina de p o-
piedades pa a esa he amien a apa ece a en las esp ecicaciones.
Todas las elaciones (
C l assR el a ion
,
I nhe i s
,
Has
y
Real iz es
) he edan de la clase
Re-
la ion
: sus p opiedades y me o dos p e mi en esp ecica y ob ene la in o macion de o das las
pa es in oluc adas en cada elacion del mo delo. Vease la subseccion sob e el diag ama de
he encias de
Rel a ion
.
La clase
Ex e nalDocumen
o ece las p opiedades y me o dos que p e mi en c ea do cu-
men os ex e nos o in o mes desde el en o no de
Ra ional Rose
. Po ejemplo, se puede ejecu a
Wo d
en
Windows
pa a pasa la in o macion de un mo delo a un do cumen o de
Wo d
. Las
p opiedades esp eccas de
E x e nal D ocumen
son:
Pa en Ca ego y
La aplicacion a u iliza pa a ab i el do cumen o.
Pa h
El camino comple o al do cumen o.
URL
La
URL
del do cumen o en In e ne . Las p opiedades
P a h
y
URL
son excluyen es en e
s.
Ylosme o dos esp eccos de
E x e nal D ocumen
son:
IsURL
Chequea si el do cumen o iene una
URL
.
Op en
Ab i un do cumen o ex e no.
48
Deploymen Diag am
Elemen
ModuleDiag am
Diag am Scena ioDiag am
S a eDiag am ClassDiag am
Figu a 3.3: Diag ama de he encia de la clase
Diag am
.
3.2.3 Diag ama de he encia de la clase
Diag am
El diag ama de clases de la gu a 3.3 mues a la es uc u a de he encia de la clase
D iag am
en
el mo delo
REI
.
Ya se ha comen ado que cada ob je o en un mo delo es un elemen o, as que la clase
Diag am
es a di ec amen e sub o dinada a
E l emen
. La clase
Diag am
o ece un conjun o de p opie-
dades y me o dos que o das las demas clases de diag amas (p o ejemplo, diag ama de clases,
diag ama de escena ios, diag ama de comp onen es, e c.) he edan. Cualquie diag ama se com-
p one de a ios elemen os (
i ems
) y is as de esos elemen os (
I emV iew s
). Cada
I em iew
es
la ep esen acion sica de un elemen o de
Ra ional Rose
y es un ob je o con las p opiedades
yme o dos que denen su apa iencia en la en ana del diag ama (p osicion, colo , ama ~no, e c.).
La op e a i idad basica de la clase
Diag am
se esume en los siguien es pun os:

La p opiedad
D iag am:I emV iew s
es u ilizada pa a i e a a a es de la coleccion de
is as de elemen os que p e enecen al diag ama.

La p opiedad
D iag am:I ems
es u ilizada pa a i e a a a es de los elemen os que exis en
en el diag ama.

El me o do
D iag am:Ge V iew F om
es u ilizado pa a encon a la p ime a is a de un
elemen o.

Pa a encon a cuales son las is as de los elemen os ac ualmen e seleccionados en el
diag ama, se eco e la lis a de is as de elemen os del diag ama. Pa a cada una de ellas,
se u iliza el me o do
I emV iew :I sS el ec ed
pa a de e mina si es a o no seleccionado en el
diag ama. Se puede ob ene en onces la is a de elemen o seleccionada o ealiza cualquie
o o p o ceso basandose en es a in o macion.

Una mane a apida pa a ob ene o dos los elemen os seleccionados en un diag ama es
u iliza el me o do
D iag am:Ge S el ec edI ems
. En luga de i e a a a es del diag ama y
chequea cada is a, es e me o do simplemen e de uel e o do aquello que es e seleccionado.
O as p opiedades esp eccas de
Diag am
son:
Do cumen a ion
La do cumen acion anexa al diag ama.
Visible
La isibilidad del diag ama.
O os me o dos esp eccos de
Diag am
son:
49
Exis s
Comp oba si un de e minado ob je o del diag ama exis e.
Layou
Dibuja un diag ama.
In alida e
Redibuja un diag ama.
Up da e
Mo dica un diag ama.
AddNo eView
A~nadi una no a a un diag ama.
Remo eNo eView
Bo a una no a del diag ama.
Ge No eViews
Ob ene las no as p e enecien es al diag ama.
Rende
Sal a el g aco del diag ama en un che o con el o ma o
Windows Me ale
.
Rende Enhanced
La misma accion que
Rende
,pe oconmayo calidad.
Rende ToClipb oa d
La misma accion que
Rende
, p e o gua da el g aco en el p o apap eles.
Rende EnhancedToClipBoa d
La misma accion que
Rende T oC lipboa d
, p e o con mayo
calidad.
IsAc i e
Indica si el diag ama es a ac ualmen e ac i o en la aplicacion.
Ac i a e
Ac i a el diag ama.
La clase
ClassDiag am
p e mi e a ~nadi , ob ene y b o a clases y ca ego as del diag ama
de clases. Las p opiedades esp eccas de
C l assD iag am
son:
Pa en Ca ego y
La ca ego a que con iene al diag ama de clases.
Ylosme o dos esp eccos de
C l assD iag am
son:
AddAsso cia ion
A~nadi una aso ciaci
on al diag ama.
AddCa ego y
A~nadi una ca ego a al diag ama.
AddClass
A~nadi una clase al diag ama.
AddUseCase
A~nadi un caso de uso al diag ama.
Ge Asso cia ions
Ob ene la coleccion de las aso ciaciones que p e enecen al diag ama de clases.
Ge Ca ego ies
Ob ene la coleccion de las ca ego as que p e enecen al diag ama de clases.
Ge Classes
Ob ene la coleccion de las clases que p e enecen al diag ama de clases.
Ge ClassView
Ob ene una is a de clase de un diag ama de clases.
Ge Selec edCa ego ies
Ob ene las ca ego as ac ualmen e seleccionadas en el diag ama de
clases.
Ge Selec edClasses
Ob ene las clases ac ualmen e seleccionadas en el diag ama de clases.
Ge UseCases
Ob ene los casos de uso p e enecien es al diag ama.
IsUseCaseDiag am
De e mina si el diag ama de clases es un diag ama de casos de uso.
Remo eAsso cia ion
Elimina una aso ciacion del diag ama de clases.
50
Remo eCa ego y
Elimina una ca ego a del diag ama de clases.
Remo eClass
Elimina una clase del diag ama de clases.
Remo eUseCase
Elimina un caso de uso del diag ama.
Un escena io es una ins ancia de un caso de uso y mues a los e en os que o cu en du an e
la ejecucion del sis ema. La clase
Scena ioDiag am
p e mi e c ea una ep esen acion isual
de un escena io. Las p opiedades esp eccas de
S cena ioD iag am
son:
Ins anceViews
La coleccion de is as de ins ancias p e enecien es al diag ama.
Ylosme o dos esp eccos de
S cena ioD iag am
son:
AddIns ance
A~nadi una ins ancia al diag ama de escena io.
AddIns anceView
A~nadi una is a de ins ancia al diag ama de escena io.
C ea eMessage
C ea un mensa je y a ~nadi lo al diag ama de escena io.
Dele eIns ance
Elimina una ins ancia del diag ama de escena io.
Ge Diag amTyp e
Ob ene el alo del ip o de diag ama.
Ge Messages
Ob ene la coleccion de mensa jes que p e enecen al diag ama de escena io.
Ge Selec edLinks
Ob ene los enlaces ac ualmen e seleccionados en el diag ama de escana io.
Ge Selec edMessages
Ob ene el conjun o de mensa jes ac ualmen e seleccionados en el dia-
g ama de escena io.
Ge Selec edOb jec s
Ob ene el conjun o de ob je os ac ualmen e seleccionados en el diag ama
de escana io.
Remo eIns anceView
Elimina una is a de ins ancia del diag ama de escena io.
La clase
S a eDiag am
dene las p opiedades y me o dos que p e mi en la manipulacion de
ob je os en la is a de es ados (con iene los diag amas de es ado) de un mo delo. Las p opiedades
esp ec
cas de la clase
S a eD iag am
son:
Pa en
La maquina de es ados que con iene el diag ama de es ados.
Ylosme o dos esp eccos de
S a eD iag am
son:
AddS a eView
A~nadi una is a de es ados a un diag ama de es ados.
Ge Selec edS a es
Ob ene los es ados ac ualmen e seleccionados en un diag ama de es ados.
Ge Selec edS a eViews
Ob ene las is as de es ados ac ualmen e seleccionadas en un dia-
g ama de es ados.
Ge Selec edT ansi ions
Ob ene las ansiciones ac ualmen e seleccionadas en un diag ama
de es ados.
Ge S a eView
Ob ene el es ado de una is a de es ados en un diag ama de es ados.
Ge S a eViews
Ob ene o das las is as de es ados en un diag ama de es ados.
51
Remo eS a eView
Elimina una is a de es ados de un diag ama de es ados.
Un
ModuleDiag am
map ea la colo cacion de las clases y ob je os en modulos. Las p opie-
dades esp eccas de
M odul eD iag am
son:
Pa en Subsys em
El subsis ema que con iene el modulo. Siemp e hace e e encia a un ob je o
S ubsy s em
alido.
Ylosme o dos esp eccos de
M odul eD iag am
son:
AddMo dule
A~nadi unmodulo al diag ama de modulos.
AddSubsys em
A~nadi un subsis ema al diag ama de modulos.
Ge Mo dules
Ob ene la coleccion que con iene o dos los modulos p e enecien es al diag ama
de modulos.
Ge Selec edMo dules
Ob ene los modulos ac ualmen e seleccionados en el diag ama de modulos.
Ge Selec edSubsys ems
Ob ene los susbsis emas ac ualmen e seleccionados en el diag ama
de modulos.
Ge Subsys ems
Ob ene la coleccion que con iene o dos los subsis emas que p e enecen al
diag ama de modulo.
Un diag ama de despliegue es la ep esen acion isual de los disp osi i os yp o cesado es
sicos. La clase
Deploymen Diag am
o ece las siguien es me o dos esp eccos:
AddDe ice
A~nadi un disp osi i o al diag ama de despliegue.
AddP o cesso
A~nadi un p o cesado al diag ama de despliegue.
Ge De ices
Ob ene los disp osi i os que p e enecen al diag ama de despliegue.
Ge P o cesso s
Ob ene los p o cesado es que p e enecen al diag ama de despliegue.
Remo eDe ice
Elimina un disp osi i o del diag ama de despliegue.
Remo eP o cesso
Elimina un p o cesado del diag ama de despliegue.
3.2.4 Diag ama de he encia de la clase
Logical
El diag ama de clases de la gu a 3.4 mues a la es uc u a de he encia de las dos p incipales
clases logicas del mo delo
REI
:
C a eg o y
y
C l ass
. Ambas he edan de las clases
Package
y
RoseI em
esp ec i amen e, que p e enecen al diag ama de he encia de la clase
M odel
.
La clase
Ca ego y
p e mi e deni y manipula colecciones logicas de clases. Las p opiedades
esp ecicas de la clase
C a ego y
son:
Asso cia ions
La coleccion de o das las aso ciaciones que p e enecen a la ca ego a.
Ca ego ies
La coleccion de las ca ego as que son hijas de las ca ego a.
ClassDiag ams
La coleccion de los diag amas de clase que p e enecen a la ca ego a.
52

RoseI em
Class
Package
Ca ego y
Figu a 3.4: Diag ama de he encia de la clase
Logical
.
Classes
La coleccion de las clases que p e enecen a la ca ego a.
Global
Iden ica la ca ego a como global.
Pa en Ca ego y
La ca ego a que con iene a la ca ego a.
Scena ioDiag ams
La coleccion de los diag amas de escena io que p e enecen a la ca ego a.
UseCases
La coleccion que con iene los casos de uso que p e enecen a la ca ego a.
Ylosme o dos esp eccos de la clase
C a eg o y
son:
AddCa ego y
A~nadi una ca ego a a una ca ego a.
AddCa ego yDep endency
A~nadi una dep endencia de ca ego a a una ca ego a.
AddClass
A~nadi una clase a una ca ego a.
AddClassDiag am
A~nadi un diag ama de clase a una ca ego a.
AddScena ioDiag am
A~nadi un diag ama de escena io a una ca ego a.
AddUseCase
A~nadi un caso de uso a una ca ego a.
Dele eCa ego y
Elimina una ca ego a de una ca ego a.
Dele eCa ego yDep endency
Elimina una dep endencia de ca ego a de una ca ego a.
Dele eClass
Elimina una clase de una ca ego a.
Dele eClassDiag am
Elimina un diag ama de clase de una ca ego
a.
Dele eScena ioDiag am
Elimina un diag ama de escena io de una ca ego a.
Dele eUseCase
Elimina un caso de uso de una ca ego a.
Ge AllCa ego ies
Ob ene o das las ca ego as que p e enecen a una ca ego a y o das las
ca ego as p e enecien es a sus hijas.
Ge AllClasses
Ob ene o das las clases que p e enecen a la ca ego a y o das sus hijas.
Ge AllUseCases
Ob ene la coleccion que con iene los casos de uso que p e enecen a la ca e-
go a.
53
Ge AssignedSubsys em
Ob ene el subsis ema asignado a la ca ego a.
Ge Ca ego yDep endencies
Ob ene la coleccion de dep endencias de ca ego a que p e enecen
a la ca ego a.
HasAssignedSubsys em
Ob ene el subsis ema asignado a la ca ego a.
Relo ca eCa ego y
Recolo ca una ca ego a den o de una ca ego a.
Relo ca eClass
Recolo ca una clase den o de una ca ego a.
Relo ca eClassDiag am
Recolo ca un diag ama de clase den o de una ca ego a.
Relo ca eScena ioDiag am
Recolo ca un diag ama de escena io den o de una ca ego a.
Se AssignedSubsys em
Asigna un subsis ema a la ca ego a.
TopLe el
Indica si la ca ego a es la ca ego a az.
La clase
Class
pe mi e es ablece y ob ene las ca ac e s icas y elaciones de las clases
esp eccas de un mo delo: si es una clase abs ac a, si es un ip o undamen al, si es p e sis en e,
si puede se concu en e con o as clases, su conjun o de a ibu os y op e aciones, sus elaciones
con o os ob je os del mo delo, e c. Las p opiedades esp eccas de la clase
C l ass
son:
Pa en Ca ego y
La ca ego a que con iene la clase.
Abs ac
Iden ica la clase como abs ac a.
A ibu es
La coleccion que con iene los a ibu os de la clase.
Op e a ions
La coleccion que con iene las op e aciones de la clase.
Exp o Con ol
La isibilidad de la clase.
Ca dinali y
La ca dinalidad de la clase.
ClassKind
El ip o de la clase.
Concu ency
El ip o de concu encia de la clase con o os ob je os.
Pe sis ence
Iden ica la clase como p e sis en e.
Space
El algo i mo de espacios a u iliza pa a la clase.
Fundamen alTyp e
Iden ica la clase como un ip o undamen al.
S a eMachine
La maquina de es ado que p e enece a la clase.
Pa en Class
La clase pad e de es a clase.
Ylosme o dos esp eccos de la clase
Class
son:
AddAssignedMo dule
Asigna un modulo (comp onen e) a la clase.
AddAsso cia ion
A~nadi una aso ciacion (
Associa ion
) a una clase.
AddA ibu e
A~nadi un a ibu o a una clase.
AddClassDep endency
A~nadi una dep endencia de clase a la clase.
54
AddHas
A~nadi una ag egacion (
H asR el a ionship
) a una clase.
AddInhe i Rel
A~nadi una elacion de he encia (
I nhe i Rel a ionship
) en e clases en una
clase.
AddNes edClass
A~nadi una clase anidada a una clase.
AddOp e a ion
A~nadi una op e acion a una clase.
AddRealizeRel
A~nadi una elacion de ealizacion a una clase.
C ea eS a eMachine
C ea una maquina de es ado pa a una clase.
Dele eAsso cia ion
Elimina una aso ciacion de una clase.
Dele eA ibu e
Elimina un a ibu o de una clase.
Dele eClassDep endency
Elimina una dep endencia de clase de una clase.
Dele eHas
Elimina una ag egacion de una clase.
Dele eInhe i Rel
Elimina una elacion de he encia en e clases en una clase.
Dele eNes edClass
Elimina una clase anidada de una clase.
Dele eOp e a ion
Elimina una op e acion de una clase.
Dele eRealizeRel
Elimina una elacion de ealizacion de una clase.
Dele eS a eMachine
Elimina la maquina de es ados de la clase del mo delo.
Ge AssignedLanguage
Ob ene el nomb e del lengua je de p og amacion asignado a la clase.
Ge AssignedMo dules
Ob ene los modulos asignados a la clase.
Ge Asso cia eRoles
Ob ene los oles aso ciados a la clase.
Ge Asso cia ions
Ob ene las aso ciaciones en las que pa icipa la clase.
Ge ClassDep endencies
Ob ene la coleccion de clases de dep endencia que p e enecen a la
clase.
Ge HasRela ions
Ob ene las ag egaciones en las que pa icipa la clase.
Ge Inhe i Rela ions
Ob ene las elaciones de he encia en las que pa icipa la clase.
Ge LinkAsso cia ion
Ob ene la aso ciacion pa a una clase de enlace (
Link
).
Ge Nes edClasses
Ob ene las clases anidadas en la clase.
Ge RealizeRela ions
Ob ene la coleccion de elaciones de ealizacion que p e enecen a la
clase.
Ge Roles
Ob ene los oles de la clase.
Ge SubClasses
Ob ene las sub clases de la clase.
Ge Sup e classes
Ob ene las sup e clases co esp ondien es a la clase.
IsALinkClass
De e mina si una clase es una clase de enlace.
IsNes edClass
De e mina si una clase es una clase anidada.
Remo eAssignedMo dule
Bo a una asignacion de modulo de la clase.
55
ClassView
Elemen
Ins anceView
RoseI emView Componen View
Subsys emView S a eView
No eView
Figu a 3.5: Diag ama de he encia de la clase
View
.
3.2.5 Diag ama de he encia de la clase
View
El diag ama de clases de la gu a 3.5 mues a la es uc u a de he encia de la clase
V iew
en
el mo delo
REI
.La clase
RoseI emV iew
he eda de
E l emen
, que p e enece al diag ama de
he encia de la clase
M odel
.
La clase
RoseI emView
p e mi e deni y manipula el ama ~no y p osicion de un
RoseI em
en un diag ama. Las p opiedades esp ecicas de la clase
RoseI emV iew
son:
Name
El nomb e de la is a del  em.
I em
El ob je o
RoseI em
ep esen ado p o la is a.
Pa en Diag am
El diag ama que con iene a la is a.
Pa en View
El ob je o
RoseI emV iew
que con iene a la is a.
SubViews
La coleccion de is as de  em que p e enecen a la is a.
XPosi ion
La co o denada ho izon al (x) del pun o cen al de la is a.
YPosi ion
La co o denada e ical (x) del pun o cen al de la is a.
Heigh
La al u a de la is a.
Wid h
La anchu a de la is a.
FillColo .Red
Es ablece el colo de la is a a o jo.
FillColo .G een
Es ablece el colo de la is a a e de.
FillColo .Blue
Es ablece el colo de la is a a azul.
FillColo .T anspa en
Es ablece el colo de la is a a anspa en e.
LineColo .Red
Es ablece el colo de lnea de la is a a o jo.
LineColo .G een
Es ablece el colo de lnea de la is a a e de.
LineColo .Blue
Es ablece el colo de lnea de la is a a azul.
Fon .Red
Es ablece el colo del ex o a o jo.
56
AssignedLanguage
El lengua je de p og amacion asignado al modulo.
Decla a ions
La coleccion de decla aciones co esp ondien es al modulo.
O he Pa
La segunda pa e del modulo cuando o ma pa e de un subsis ema.
Pa en SubSys em
El subsis ema que con iene el modulo.
Pa
Si el modulo es pa e de un subsis ema o no.
Pa h
El di ec o io donde se encuen a el modulo.
Typ e
El ip o del modulo.
Ylosme o dos esp eccos de
M odul e
son:
AddRealizeRel
A~nadi una elacion de ealizacion a un modulo.
AddVisibili yRela ionship
C ea una nue a elacion de isibilidad y a ~nadi la a un modulo.
Dele eRealizeRel
Elimina una elacion de ealizacion de un modulo.
Dele eVisibili yRela ionship
Elimina una elacion de isibilidad de un modulo.
Ge AllDep endencies
Ob ene o dos los modulos que a ec an al modulo.
Ge AssignedClasses
Ob ene la coleccion de clases asignadas al modulo.
Ge Dep endencies
Ob ene la coleccion de modulos incluidos en el modulo.
Ge RealizeRela ions
Ob ene la coleccion de elaciones de ealizacion p e enecien es a un
modulo.
Ge Subsys emDep endencies
Ob ene la coleccion de elaciones de isibilidad en e un modulo
y un subsis ema.
3.2.9 Diag ama de he encia de la clase
Rela ion
El diag ama de clases de la gu a 3.9 mues a la es uc u a de he encia de la clase
Rel a ion
en
el mo delo
REI
. Es as clases he edan de
RoseI em
que p e enece al diag ama de he encia de la
clase
M odel
, y son un sub conjun o de las clases logicas del mo delo.
To das las elaciones (
C l assR el a ion
,
I nhe i s
,
Has
,
Real iz es
) he edan de la clase
Rela ion
,
cuyas p opiedades y me o dos p e mi en esp ecica y ob ene la in o macion sob e los ex emos
de las elaciones en el mo delo. Las p opiedades esp eccas de la clase
Rel a ion
son:
Supplie Name
El nomb e del ex emo suminis ado de la elacion.
Ylosme o dos esp eccos de la clase
Rel a ion
son:
HasClien
De e mina si la elacion iene una pa e clien e.
HasSupplie
De e mina si la elacion iene una pa e suminis ado a.
Ge Clien
Ob ene el ob je o
RoseI em
que ac ua como clien e de la elacion.
Ge Supplie
Ob ene el ob je o
RoseI em
que ac ua como suminis ado de la elacion.
63

RoseI em
Rela ion
T ansi ion
Role Ca ego yDependency
RealizeRela ion
ModuleVisibili yRela ionShip
ClassRela ion
Inhe i Rela ion HasRela ionship ClassDepedency
Figu a 3.9: Diag ama de he encia de la clase
Rela ion
.
Los oles deno an el p oposi o o capacidad en que una clase se aso cia con o a. La clase
Role
exp onen un conjun o de p opiedades y me o dos pa a de e mina las ca ac e s icas de los
oles y p e mi en ob ene los oles de un mo delo. Las p opiedades esp eccas de la clase
Role
son:
Class
La clase co esp ondien e al ol.
Cons ain s
Las es icciones del ol.
Asso cia ion
La aso ciacion inculada al ol.
Exp o Con ol
La isibilidad de los a ibu os.
F iend
Indica si el ol es
iend
" o no, p e mi iendo el acceso a sus a ibu os y op e aciones no
publicos.
Con ainmen
La elacion con enedo a del ol.
Ca dinali y
La ca dinalidad del ol.
Agg ega e
Indica si el ol es una clase ag egado o no.
S a ic
Indica si el ol es es a ico o no.
Na igable
Indica si el ol es na egable o no.
Keys
La coleccion de cla es co esp ondien es al ol.
Ylosme o dos esp eccos de
Role
son:
AddKey
De uel eunacla e basada en el nomb e y ip o de un a ibu o.
Dele eKey
Elimina una cla e de un ol.
Ge ClassName
Ob iene el nomb e de la clase aso ciado con el ol.
64
La clase
Ca ego yDependency
p e mi e deni y manipula las elaciones de dep endencia
en e las ca ego as.
La clase
ClassRela ion
he eda de la clase
Rel a ion
y es la clase pad e de
H asR el a ionship
,
C l assD ependency
e
I nhe i Rel a ion
.los me o dos esp eccos de
C l assR el a ion
son:
Ge Con ex Class
Ob ene la clase clien e de la elacion.
Ge Supplie Class
Ob ene la clase suminis ado a de la elacion.
La elacion de he encia indica una elacion je a quica en e las clases en las que una clase
compa e al es uc u a y/o comp o amien o de o a clase. La clase
Inhe i Rela ion
exp one un
conjun o de p opiedades y me o dos pa a de e mina las ca ac e s icas de la elacion de he encia.
Las p opiedades esp eccas de
I nhe i Rel a ion
son:
Exp o Con ol
La isibilidad de la elacion de he encia.
F iendshipRequi ed
Si la p opiedad
F iend
es eque ida p o la elacion de he encia.
Vi ual
Si la elacion es i ual o no.
La elacion
Has
" indica una elacion con enedo a o ag egado en e clases. La clase
Has-
Rela ionship
exp one un conjun o de p opiedades y me o dos pa a de e mina las ca ac e s icas
de es as elaciones en un mo delo. Las p opiedades esp eccas de
H asR el a ionship
son:
Clien Ca dinali y
La ca dinalidad del clien e de la elacion.
Con ainmen
El con enedo de clase pa a la elacion.
Exp o Con ol
La isibilidad de la elacion.
S a ic
Si la elacion es es a ica o no.
Supplie Ca dinali y
La ca dinalidad del suminis ado de la elacion.
La clase
ClassDependency
exp one un conjun o de p opiedades y me o dos pa a de e -
mina las ca ac e s icas de las dep endencias en e las clases. Las p opiedades esp eccas de
C l assD ependency
son:
Clien Ca dinali y
La ca dinalidad del clien e de la dep endencia.
Supplie Ca dinali y
La ca dinalidad del suminis ado de la dep endencia.
In ol esF iendship
Si la clase implica la p opiedad
F iend
o no.
Exp o Con ol
La isibilidad de la dep endencia.
Una elacion de ealizacion en e una clase logica y una clase comp onen e mues a que la
clase comp onen e ealiza las op e aciones denidas p o la clase logica. Los me o dos esp eccos
de clase
RealizeRela ion
son:
Ge Con ex Class
Ob ene la clase clien e de la elacion.
Ge Con ex Comp onen
Ob ene el comp onen e clien e de la elacion.
Ge Supplie Class
Ob ene la clase suminis ado a de la elacion.
65
Message
RoseI em
Objec Ins ance Link
Pe sis ence Synch oniza ion F equency
Figu a 3.10: Diag ama de he encia de la clase
Scena io
.
Ge Supplie Comp onen
Ob ene el comp onen e suminis ado de la elacion.
La clase
ModuleVisibili yRela ionship
desc ib e el clien e y suminis ado de una elacion
en e modulos. Las p opiedades esp eccas de
M odul eV isibil i y Rel a ionship
son:
Con ex Mo dule
El nomb e del modulo clien e de la elacion.
Con ex Subsys em
El nomb e del subsis ema clien e de la elacion.
Supplie Mo dule
El nomb e del modulo suminis ado de la elacion.
Supplie Subsys em
El nomb e del subsis ema sumnis ado de la elacion.
La clase
T ansi ion
es una clase que p e enece al diag ama de he encia de
S a e
, p e o
ambien he eda de la clase
Rel a ion
p o que se conside a que una ansicion es una elacion
en e los es ados uen e y des ino.
3.2.10 Diag ama de he encia de la clase
Scena io
El diag ama de clases de la gu a 3.10 mues a la es uc u a de he encia de la clase
S cena io
en el mo delo
REI
. Las clases
O bj ec I ns ance
,
Link
y
M essag e
he edan de
RoseI em
que
p e enece al diag ama de he encia de la clase
M odel
.
La clase
Objec Ins ance
exp one un conjun o de p opiedades y me o dos pa a de e mina
las ca ac e s icas de los ob je os en un mo delo. Las p opiedades esp eccas de
O bj ec I ns ance
son:
ClassName
El nomb e de la clase del ob je o.
Links
La coleccion de enlaces co esp ondien es al ob je o.
Mul ipleIns ances
Si exis en m ul iples ins ancias del ob je o o no.
Pe sis ence
Si la ins ancia del ob je o es p e sis en e o es a ica.
Ylosme o dos esp eccos de
O bj ec I ns ance
son:
AddLink
A~nadi un enlace a la ins ancia del ob je o.
66
Dele eLink
Elimina un enlace de la ins ancia del ob je o.
Ge Class
Ob ene la clase a la que p e enece la ins ancia del ob je o.
IsClass
De uel e
T ue
si la ins ancia del ob je o es una clase.
Los ob je os in e accionan a a es de sus enlaces hacia o os ob je os. Un enlace es una
ins ancia de una aso ciacion, de la misma mane a que un ob je o es una ins ancia de una clase.
Las p opiedades y me odosdelaclase
Link
p e mi en deni enlaces en e ob je os y de e mina
la na u aleza de las aso ciaciones. Las p opiedades esp eccas de
Link
son:
LinkRole1
Dene una ins ancia de ob je o como un enlace en
Role
1.
LinkRole2
Dene una ins ancia de ob je o como un enlace en
Role
2.
LinkRole1Sha ed
Dene una ins ancia de ob je o como un enlace en
Role
1con isibilidad
compa ida.
LinkRole2Sha ed
Dene una ins ancia de ob je o como un enlace en
Role
2con isibilidad
compa ida.
LinkRole1Visibili y
Dene una ins ancia de ob je o como un enlace en
Role
1 y de e mina su
ip o de isibilidad.
LinkRole2Visibili y
Dene una ins ancia de ob je o como un enlace en
Role
2 y de e mina su
ip o de isibilidad.
Ylosme o dos esp eccos de
Link
son:
AddMessageTo
A~nadi un mensa je al enlace.
AssignAsso cia ion
Asigna una aso ciacion al enlace.
Dele eMessage
Elimina un mensa je del enlace.
Ge Messages
Ob ene los mensa jes lle ados p o el enlace.
UnAssignAsso cia ion
Elimina una asignacion de aso ciacion del enlace.
Los mensa jes denen la in e accion en e los ob je os. La clase
Message
o ece p opiedades
y me o dos que p e mi en ob ene el emi en e y des ino del mensa je jun o a o a in o macion
esp ecca del mismo. Las p opiedades esp eccas de
M essag e
son:
F equency
La ecuencia del mensa je (si el mensa je es en iado solo una ez o p e iodicamen e).
Synch oniza ion
La seman ica de concu encia del mensa je.
Ylosme o dos esp eccos de
M essag e
son:
Ge Sende Ob jec
Ob ene el ob je o que en ioelmensaje.
Ge Recei e Ob jec
Ob ene el ob je o que ecibio el mensa je.
IsMessageToSel
Si el mensa je es en iado a s mismo o no.
IsOp e a ion
Si el mensa je es una op e acion o no.
67
Ge Op e a ion
La op e acion aso ciada con el mensa je.
Ge Link
Ob ene el enlace aso ciado con el mensa je.
La clase
Pe sis ence
dene los alo es po de ec o pa a la p e sis encia de ob je os. Las
p opiedades esp eccas de
P e sis ence
son:
Pe sis en
El alo p o de ec o pa a la p e sis encia de ob je os.
T ansien
El alo p o de ec o pa a la ansicion de ob je os.
La clase
Synch oniza ion
dene los alo es p o de ec o pa a la sinc onizacion de ob je os.
Las p opiedades esp eccas de
S y nch oniz a ion
son:
Asynch onous
Dene el alo p o de ec o pa a los mensa jes asnc onos.
Balking
Dene el alo p o de ec o pa a los mensa jes
B al k ing
".
Simple
Dene el alo p o de ec o pa a los mensa jes simples.
Synch onous
Dene el alo p o de ec o pa a los mensa jes snc onos.
Timeou
Dene el alo p o de ec o pa a los mensa jes
T imeou
".
La clase
F equency
dene los alo es po de ec o pa a la ecuencia de mensa jes. Las
p opiedades p o de ec o de
F eq uency
son:
Ap e io dic
El alo p o de ec o pa a los mensa jes no p e iodicos.
Pe io dic
El alo p o de ec o pa a los mensa jes p e iodicos.
3.2.11 Diag ama de he encia de la clase
S a e
El diag ama de clases de la gu a 3.11 mues a la es uc u a de he encia de la clase
S a e
en el
mo delo
REI
.Las clases
Ac ion
y
S a e
he edan de
Elemen
y
RoseI em
mien as que
E en
y
S a eM achine
di ec amen e de
Elemen
. Tan o
Elemen
como
RoseI em
p e enecen al
diag ama de he encia de la clase
M odel
. La clase
T ansi ion
he eda de
Rela ion
, que p e enece
al diag ama de he encia de la clase
Rel a ion
.
Un e en o es una o cu encia que causa una ansicion de es ado. Las p opiedades y me o dos
de la clase
E en
denen y con olan e en os que a ec an a los es ados y es ablece las ansiciones
de ob je os en un mo delo. Las p opiedades esp eccas de
E en
son:
A gumen s
Las condiciones que a ec an al e en o.
Gua dCondi ion
Dene una condicion de gua da: cuando sea
T ue
p e mi i a la o cu encia
del e en o y mien as sea
False
el e en o no o cu i a.
Name
El nomb e del e en o.
Yelme o do esp ecco de
E en
es:
Ge Ac ion
Ob ene la accion co esp ondien e al e en o.
68

S a eMachine
Elemen
RoseI em E en
Rela ion Ac ion S a e
T ansi ion
Figu a 3.11: Diag ama de he encia de la clase
S a e
.
La clase
S a eMachine
con iene o da la in o macion sob e el es ado de los ob je os de una
de e minada clase. La maquina de es ado de una clase dene o dos los posibles es ados y
ansiciones pa a esa clase. Una clase puede ene o no una maquina de es ado y una maquina
de es ado solo puede p e enece a una clase. Las p opiedades esp ecca de
S a eM achine
son:
Diag am
El diag ama de es ados que con iene la maquina de es ados.
Pa en Class
La clase a la que p e enece la maquina de es ados.
S a es
La coleccion de es ados de la maquina de es ados.
Ylosme o dos esp eccos de
S a eM achine
son:
AddS a e
A~nadi un es ado a una maquina de es ados.
Dele eS a e
Elimina un es ado de una maquina de es ados.
Ge AllS a es
Ob ene o dos los es ados de una maquina de es ados.
Ge AllT ansi ions
Ob ene o das las ansiciones de una maquina de es ados.
Ge T ansi ions
Ob ene la coleccion de ansiciones de una maquina de es ados.
Relo ca eS a e
Recolo ca un es ado en una maquina de es ados.
La clase
T ansi ion
p o ee el medio pa a segui la aza de un ob je o en un cam
bio de
es ado, es deci , en el pun o donde no es a en el es ado o iginal p e o aun no ha llegado a su
es ado des ino. Los me o dos esp eccos de
T ansi ion
son:
Ge SendAc ion
Ob ene el mensa je a en ia cuando la ansicion o cu e.
Ge Sou ceS a e
Ob ene el es ado inicial de la ansicion.
Ge Ta ge S a e
Ob ene el es ado des ino de la ansicion.
69
Ge T igge Ac ion
Ob ene la accion a ealiza cuando el e en o dispa ado de la ansicion
o cu a.
Ge T igge E en
Ob ene el e en o que dispa a la ansicion.
Redi ec To
Redi ecciona la ansicionaunnue o es ado des ino.
Una accion es una op e acion que es a aso ciada a una ansicion, oma una can idad insigni-
can e de iemp o pa a ealiza se y no se puede in e umpi . Las p opiedades de la clase
Ac ion
son:
A gumen s
El con enido de la accion.
Ta ge
El ob je o des ino de la accion.
La clase
S a e
esp ecica el conjun o de p opiedades y me o dos que con olan la in o macion
sob e el es ado de los ob je os de un mo delo. Las p opiedades esp eccasdelaclase
S a e
son:
His o y
Esp ecica a que sub es ado se uel e cuando se e o na a un sup e es ado.
Pa en S a e
El sup e es ado que con iene al es ado.
Pa en S a eMachine
La maquina de es ados a la que p e enece el es ado.
S a eKind
El ip o del es ado.
Subs a es
Los sub es ados del es ado (p o lo an o, es un sup e es ado).
T ansi ions
El conjun o de ansiciones denidas pa a el es ado.
Ylosme o dos esp eccos de
S a e
son:
AddDoAc ion
A~nadi una accion (
Do
") a un es ado.
AddEn yAc ion
A~nadi una accion de en ada (la p ime a ez) a un es ado
AddExi Ac ion
A~nadi una accion de salida a un es ado.
AddS a e
A~nadi un sub es ado a un es ado.
AddT ansi ion
A~nadi una ansicion a un es ado.
AddUse DenedE en
A~nadi un e en o denido p o el usua io a un es ado.
Dele eAc ion
Elimina una accion de un es ado.
Dele eS a e
Elimina un sub es ado de un es ado.
Dele eT ansi ion
Elimina una ansicion de un es ado.
Dele eUse DenedE en
Elimina un e en o denido p o el usua io de un es ado.
Ge AllSubs a es
Ob ene los sub es ados de un es ado.
Ge DoAc ions
Ob ene las acciones (
Do
") de un es ado.
Ge En yAc ions
Ob ene las acciones de en ada de un es ado.
Ge Exi Ac ions
Ob ene las acciones de salida de un es ado.
Ge Use DenedE en s
Ob ene los e en os denidos p o el usua io de un es ado.
Relo ca eS a e
Recolo ca un sub es ado en un es ado de e minado.
70
RoseI em
UseCase
Figu a 3.12: Diag ama de he encia de la clase
UseCase
.
3.2.12 Diag ama de he encia de la clase
UseCase
El diag ama de clases de la gu a 3.12 mues a la es uc u a de he encia de la clase
U seC ase
en
el mo delo
REI
. La clase
U seC ase
he eda de
RoseI em
que p e enece al diag ama de he encia
de la clase
Rel a ion
.Se pod a p ensa en un diag ama de casos de uso en luga de una clase,
p e o de es a mane a apa ece a en el diag ama de he encia de la clase
Diag am
.
La clase
UseCase
exp one un conjun o de p opiedades y me o dos que p e mi en deni y
manipula los conjun os de diag amas de clases y escena ios que o man los casos de uso de un
mo delo. Las p opiedades esp eccas de
U seC ase
son:
Abs ac
Si el caso de uso es una clase abs ac a ono.
ClassDiag ams
La coleccion de diag amas de clases co esp ondien es al caso de uso.
Pa en Ca ego y
La ca ego a que con iene el caso de uso.
Rank
El ango del caso de uso
Scena ioDiag ams
La coleccion de diag amas de escena ios co esp ondien es al caso de uso.
S a eMachine
La maquina de es ado co esp ondien e al caso de uso.
Ylosme o dos esp eccos de
U seC ase
son:
AddAsso cia ion
A~nadi una aso ciacion a un caso de uso.
AddClassDiag am
A~nadi un diag ama de clases a un caso de uso.
AddInhe i Rel
A~nadi una elacion de he encia a un caso de uso.
AddScena ioDiag am
A~nadi un diag ama de escena io a un caso de uso.
Dele eAsso cia ion
Elimina una aso ciacion de un caso de uso.
71
Dele eClassDiag am
Elimina un diag ama de clases de un caso de uso.
Dele eInhe i Rel
Elimina una elacion de he encia de un caso de uso.
Dele eScena ioDiag am
Elimina un diag ama de escena io de un caso de uso.
Ge Asso cia ions
Ob ene las aso ciaciones de un caso de uso.
Ge Inhe i Rela ions
Ob ene la coleccion de elaciones de he encia de un caso de uso.
Ge Roles
Ob ene la coleccion de oles de un caso de uso.
Ge Sup e UseCases
Ob ene los sup e {casos de uso de un caso de uso.
3.3 Diag amas del mo delo de empaque amien o de
REI
Acon inuacion se mues an los paque es en la is a logica del mo delo
REI
:
Applica ion Classes Applica ion Classes

Applica ion

Pa hMap

RoseAddInManage

AddIn

AddInCollec ion
Mo del Classes Mo delClasses
Sub classes o I em
I ems
Elemen s
RoseI em
Elemen
De aul Mo delP op e ies
Sub classes o Rela ion
Sub classes o ClassRela ion
Rela ions
Con ollableUni
1. Mo del Collec ions

Mo del

RoseI em

Ex e nalDo cumen

Con ollableUni

Package

Elemen

P op e y

De aul Mo delP op e ies
72
Sub Main()
Begin Dialog Plan illaDialogoSalida 16,32,116,64,``Salida''
Tex 4,8,108,8,``>Es as segu o de que quie es sali ?''
CheckBox 32,24,63,8,``Sal a los cambios'',.Sal a Cambios
OKBu on 12,40,40,14
CancelBu on 60,40,40,14
End Dialog
Dim Ven anaDialogoSalida As Plan illaDialogoSalida
c% = Dialog(Ven anaDialogoSalida)
End Sub
4.2 Visualiza un o mula io
4.2.1 El p o cedimien o
Dialog
Se u iliza pa a isualiza un o mula io: no de uel e ning un alo , al con a io que la uncion
del mismo nomb e. La sin axis es la que sigue:
Dialog
(
D ial og V a iabl e
&

&
D e aul B u on
]&
 T imeou
]])
La denicion de los es pa ame os es la siguien e:
DialogVa iable
Nomb e de la a iable que ha sido p e iamen e decla ada como un o mula io
denido p o el usua io.
De aul Bu on
Un en e o que esp ecica que bo on ac ua como bo on po de ec o en el o -
mula io. Es e alo sigue la misma no ma que el alo de salida pa a iden ica el b o on.
El alo p o de ec o es
;
1 (Bo on
OK
).
Timeou
Un en e o que esp ecica el n ume o de milisegundos pa a isualiza o mula io an es
de que au oma icamen e se qui e. El alo po de ec o es 0 (solo se qui a a as una
p e icion explci a del usua io).
En el siguien e ejemplo se isualiza un o mula io pa a mos a el pico mensa je de e o de
disco:
Sub Main()
Begin Dialog Plan illaE o Disco 16,32,152,48,``E o de Disco''
Tex 8,8,100,8,``La disque e a es a aca.''
PushBu on 8,24,40,14,``Ab o a '',.Ab o a
PushBu on 56,24,40,14,``Vol e ain en a '',.Rein en a
PushBu on 104,24,40,14,``Igno a '',.Igno a
End Dialog
Dim E o Disco As Plan illaE o Disco
Dialog E o Disco,3,0
End Sub
79

4.2.2 La uncion
Dialog
Tambien se puede u iliza la uncion
Dialog
que isualiza un o mula io denido p o el usua io.
La uncion de uel eunen e o que ep esen a al b o on que se pulso pa a sali :

-1
El b o on
OK
ue pulsado.

0
El b o on
C ancel
ue pulsado.

>
0
Se pulso o o b o on: el n ume o ep esen a al b o on, seg un el o den en el que es aen
la plan illa del cuad o de dialogo.
El siguien e ejemplo mues a de nue o la en ana a isualiza cuando o cu a un e o de dis-
que e a:
Sub Main()
Begin Dialog Plan illaE o Disco 16,32,152,48,``E o de Disco''
Tex 8,8,100,8,``La disque e a es a aca.''
PushBu on 8,24,40,14,``Ab o a '',.Ab o a
PushBu on 56,24,40,14,``Vol e ain en a '',.Rein en a
PushBu on 104,24,40,14,``Igno a '',.Igno a
End Dialog
Dim E o Disco As Plan illaE o Disco
% = Dialog(E o Disco,3,0)
MsgBox ``Has seleccionado el b o on: '' & %
End Sub
4.3 F
unciones de mensa jes o en anas de dialogo p edenidas
Answe Box
Mues a un mensa je y esp e a aque el usua io de una espues a, de ol iendo un
en e o indicando que b o on pulso el usua io.
AskBox, AskBox$
Mues a una en ana pa a p edi al usua io una en ada de da os, que
de uel e como una cadena.
AskPasswo d, AskPasswo d$
Mues a una en ana pa a pedi al usua io una en ada de
da os, que de uel e como una cadena. Pe o es a ez solo se isualizan as e iscos cuando
el usua io in o duzca los da os, p e mi iendo aslaen ada de cla es.
Inpu Box, Inpu Bo
x$
Mues a una en ana de dialogo con un con ol de edicion de ex os
pa a que el usua io pueda in o duci alg un da o.
MsgBox
Mues a un mensa je en una en ana de dialogo con un conjun o de b o ones p e-
denidos. Tiene dos e siones: uncional (de ol iendo un en e o que ep esen a el b o on
que ue seleccionado) y p o cedimen al.
Op enFilename$
Mues a una en ana de dialogo pa a ab i un che o.
Sa eFilename$
Mues a una en ana de dialogo pa a gua da un che o.
Selec Box
Mues a una en ana de dialogo que pe mi e al usua io selecciona en una lis a
de p osibilidades, de ol iendo un en e o que ep esen
a el ndice del elemen o que ue
seleccionado.
80
4.4 Me o dos y unciones sob e los con oles de los o mula ios
4.4.1 Me o dos
Ac i a eCon ol
Colo ca el o co en el con ol esp ecicado.
DlgCap ion
Cambiael  ulodela en ana de dialogo ac ual.
DlgEnable
Habili a/deshabili a el con ol esp ecicado.
DlgFocus
Colo ca el o co en el con ol esp ecicado.
DlgLis BoxA ay
Rellena un con ol de lis a (o a ian es) con los elemen os deuna ay.
DlgSe Pic u e
Cambia la imagen con enida en el con ol (una imagen o un b o on con imagen).
DlgTex
Cambia el ex o con enido en el con ol esp ecicado. El esul ado dep ende a del ip o
de con ol.
DlgValue
Cambiael alo de un con ol dado. El esul ado dep ende adel ipodecon ol.
DlgVisible
Mues a u o cul a el con ol esp ecicado.
Selec Bu on
Simula la pulsacion de un b o on de la en ana.
Selec ComboBoxI em
Selecciona un  em de un cuad o combinadodela en ana.
Selec Lis BoxI em
Selecciona un  em de una lis a de la en ana.
Se CheckBox
Ma ca el es ado de un con
ol de chequeo de la en ana.
Se Edi Tex
Es ablece el con enido de un edi o de ex o la en ana.
Se Op ion
Selecciona un b o on de op cion de la en ana.
4.4.2 Funciones
Bu onEnabled
De uel e
T ue
si el b o on esp ecicado en el o mula io ac i oes a habili ado
(si es as, puede se pulsado u ilizando la sen encia
S el ec B u on
).
Bu onExis s
De uel e
T ue
si el b o on esp ecicado es a p esen e en el o mula io ac i o.
CheckBoxEnabled
De uel e
T ue
si el con ol de e icacion esp ecicado en el o mula io
ac i o es a habili ado (si es as, su alo puede se es ablecido u ilizando la sen encia
S e C heck B ox
).
CheckBoxExis s
De uel e
T ue
si el con ol de e icacion esp ecicado es a p esen e en el
o mula io ac i o.
ComboBoxEnabled
De uel e
T ue
si la lis a combinada esp ecicada del o mula io ac i o
es a habili ada.
ComboBoxExis s
De uel e
T ue
si la lis a combinada esp ecicada es a p esen e en el o mu-
la io ac i o.
DlgCon olId
De uel eunen e o que ep esen a el ndice del con ol esp ecicado al y como
apa ece en la plan illa del o mula io.
DlgEnable
De uel e
T ue
si el con ol esp ecicado es a habili ado.
81
DlgFocus
De uel e una cadena que con iene el nomb e del con ol que iene el o co.
DlgLis BoxA ay
Rellena una lis a, una lis a combinada o una lis a ja combinada con los
elemen osdeuna ay, de ol iendo un en e o que ep esen a el n ume o de elemen os que
hay ac ualmen e en el con ol.
DlgTex $
De uel eelcon enido ex ual del con ol esp ecicado.
DlgValue
De uel e un en e o que ep esen a el alo del con ol esp ecicado. Suele se el
ndice del alo seleccionado den o de un con ol (lis as, g up os de op ciones, e c.).
DlgVisible
De uel e
T ue
si el con ol esp ecicado es a isible.
Edi Enable
De uel e
T ue
si el con ol de edicion de ex os esp ecicado es a habili ado en el
o mula io ac i o.
Edi Exis s
De uel e
T ue
si el con ol de edicion de ex os esp ecicado exis e en el o mula io
ac i o.
Ge CheckBox
De uel eunen e o que ep esen a el es ado del con ol de e icacion esp eci-
cado.
Ge ComboBoxI em$
De uel e una cadena que con iene el ex o de un elemen o den o de
una lis a combinada.
Ge ComboBoxI emCoun
De uel e un en e o que con iene el nume o de elemen os en la
lis a combinada esp ecicada.
Ge Edi Tex $
De uel e una cadena que es el con enido del con ol de edicion de ex os es-
p ecicado.
Ge Lis BoxI em$
De uel e una cadena que con iene el elemen o esp ecicado en una lis a.
Ge Lis BoxI emCoun
De uel e un en e o que con iene el nume o de elemen os en la lis a
esp ecicada.
Ge Op ion
De uel e
T ue
si el b o on de op cion esp ecicado es a ac i o.
Lis BoxEnabled
De uel e
T ue
si la lis a esp ecicada es a habili ada en el o mula io ac i o.
Lis BoxExis s
De uel e
T ue
si la lis a esp ecicada exis e en el o mula io ac i o.
MenuI emChecked
De uel e
T ue
si el elemen o de men u esp ecicado exis e y su con ol de
e icacion es aac i o.
MenuI emEnabled
De uel e
T ue
si el elemen o de men u esp ecicado exis e y es a habili-
ado.
MenuI emExis s
De uel e
T ue
si el elemen o de men u esp ecicado exis e.
Op ionEnabled
De uel e
T ue
si el b o on de op cion esp ecicado es a habili ado en el o mu-
la io ac i o.
Op ionExis s
De uel e
T ue
si el b o on de op cion esp ecicado exis e en el o mula io ac i o.
PopupMenu
Mues a un men u eme gen e que con iene los elemen os esp ecicados, de ol iendo
un en
e o que ep esen a el ndice al elemen o seleccionado.
82
4.5 P o cesamien o de acciones sob e un o mula io
Cuando se p o duce una de e minada accion sob e un o mula io,
BasicSc ip
llama a una
uncion esp ecial que iene aso ciada y que ges iona a el p o cesamien o de al accion. La sin axis
pa a deni es a uncion es:
F unc ion D l g P oc
(
C on ol N ame
$
 Ac ion S uppV al ue
)
As I n eg e
Pa a aso cia es a uncion a un o mula io se indica median e el pa ame o
:D l g P oc
en
la sen encia
B eg in D ial og
que lo dene. Los pa ame os que ecib e la uncion aso ciada al
o mula io son:
Con olName$
Cadena que con iene el nomb e del con ol aso ciado con
Ac ion
.
Ac ion
En e o que ep esen a la accion p o la que se llamo a la uncion.
SuppValue
En e o que con iene in o macion ex a aso ciada con dic
ha accion.
Cuando
BasicSc ip
isualiza un o mula io se p o ducen di e sos e en os debidos a la
in e accion con el usua io: pulsacion de b o ones, in o duccion de ex os p o el eclado, seleccion
de elemen os de una lis a y o os. Cuando se p o ducen es as acciones,
BasicSc ip
llama a la
uncion aso ciada al o mula io, pasandole como pa ame os: la accion que ha o cu ido, el nomb e
del con ol y o a in o macion ele an e. La siguien e abla desc ib e las di e en es acciones que
se pueden en ia a una uncion de o mula io:
1
Es a accion es en iada inmedia amen e an es de que el o mula io se mues e p o p ime a ez:
de es a o ma se da la op o unidad de p epa a la u ilizacion del o mula io. Los demas
pa ame os no son signica i os y se igno a ael alo esul ado de uel o p o la uncion.
2
Es a accion es en iada cuando:

Se pulsa un b o on. En es e caso,
C on ol N ame
$con end asunomb e y
S uppV al ue
se a: 1 si es un bo on
Ok
, 2 si es un bo on
C ancel
o un alo indenido si es o o
b o on. Si la uncion de uel e 0 como espues a en onces el o mula io se a ce ado.

Se ha mo dicado el es ado de un con ol de e icacion. En es e caso,
Con olN ame
$
con end asunomb e y
SuppV alue
el nue oes ado(1siac i oo 0 si desac i o).

Se ha seleccionado un b o on de op cion. En es e caso,
C on ol N ame
$con end asu
nomb e y
SuppV alue
el ndice del b o on ac i ado den o del g up o de op ciones (que
empieza en 0).

Se ha cambiado la seleccion ac ual de una lis a o lis a combinada. En es a caso,
C on ol N ame
$ con end a su nomb e y
SuppV alue
el ndice del nue o em selec-
cionado (que empieza en 0).
3
Es a accion es en iada cuando el con enido de un con ol de edicion de ex o o una lis a
combinada ha sido mo dicado. Es a accion solo se en a cuando dicho con ol pie de el
o co. En es e caso,
Con olN ame
$con end a su nomb e y
S uppV al ue
la longi ud del
nue ocon enido. El alo que de uel ela uncion es igno ado.
4
Es a accion es en iada cuando un con ol ob iene el o co de con ol.
C on ol N ame
$con end a
su nomb e y
S uppV al ue
el ndice del con ol que p e dio el o co (que empieza en 0). El
alo que de uel e la uncion es igno ado.
83
5
Es a accion es en iada con inuamen e cuando un o mula io es a inac i o. Si la uncion
de uel e 1 en espues a, en onces la accion inac i idad" ol e aase en iada. Pe o si la
uncion de uel e0, en onces la accion no ol e a a ep e i se. En es e caso,
Con olN ame
$
no con iene nada y
S uppV al ue
el n ume o de eces que se ha en iado has a el momen o.
6
Es a accion es en iada cuando se mue eel o mula io. En es e caso, los pa ame os no son
signica i os y se igno a ael alo de uel o p o la uncion.
La uncion de un o mula io no puede deni o os o mula ios, aunque s p o d a in
o ca
cualquie cuad o de dialogo p edenido ( ales como
MsgBox
o
I npu B ox
$). Po o o lado,
las unciones de los o mula ios s p o d an u iliza o as sen encias y unciones de
BasicSc ip
,
p e mi iendo la manipulacion de los con oles del o mula io de una mane a dinamica. Es as son:
D l g V isibl e
,
DlgT ex
$,
D l g T ex
,
D l g S e P ic u e
,
D l g Lis B oxA ay
,
DlgF ocus
,
D l g E nabl e
y
D l g C on ol I d
.
El siguien e ejemplo habili a/deshabili a un g up o de b o ones de op cion cuando un con ol
de e icacion es ac i ado/desac i ado:
Func ion FuncionFo mula io(Con olName$, Ac ion%, SuppValue%)
I Ac ion% = 2 And Con olName$ = ``Imp imi '' Then
DlgEnable ``Op cionesImp esion'',SuppValue%
SampleDlgP o c = 1 'No ce a el o mula io.
End I
End Func ion
Sub Main()
Begin Dialog Plan illaFo mula io 34,39,106,45,``Ejemplo'',.FuncionFo mula io
OKBu on 4,4,40,14
CancelBu on 4,24,40,14
CheckBox 56,8,38,8,``Imp imi '',.Imp imi
Op ionG oup .Op cionesImp esion
Op ionBu on 56,20,51,8,``Apaisado'',.Apaisado
Op ionBu on 56,32,40,8,``Ve ical'',.Ve ical
End Dialog
Dim UnFo mula io As Plan illaFo mula io
UnFo m
ula io.P in ing = 1
% = Dialog(UnFo mula io)
End Sub
84

Cap ulo 5
La ges ion de e o es
5.1 In o duccion
BasciSc ip
o ece un me o do pa a p o cesa de mane a adecuada los e o es que ocu en en
iemp o de ejecucion.
5.1.1 Denicion del ges o de e o es
Una plan illa gene ica pa a la denicion de un ges o de e o es den o de una sub u ina p o d a
se :
Sub UnaFuncion()
On E o Go o ca ch
'Codigo de la uncion.
Exi Sub
ca ch:
'Codigo del P o cesamien o del E o .
End Sub
B e emen e, la lnea de ejecucion ejecu a el codigo del algo i mo y si o cu e un e o , en onces
la lnea de ejecucion se anse e al codigo esp ecial pa a p o cesa lo.
5.1.2 La cap u a de un e o
La sen encia
On E o
dene la accion a lle a a cab o cuando o cu e un e o cap u able en
iemp o de ejecucion. La sin axis es la siguien e:
On E o
Go o
l abel
j
Resume Nex
j
Go o 0
g
La o ma
O n E o Go o Label
anse e la lnea de ejecucion ala e ique a esp ecicada
cuando o cu e un e o . La o ma
O n E o Resume N ex
ue za la con inuacion de la ejecucion
po la sen encia que sigue a la causan e del e o . La o ma
O n E o Go o
0anula cualquie
e o cap u ado exis en e.
85
5.1.3 El p o cesamien o del e o
Una ez que el ges o del e o iene el con ol, deb e a descub i cual ue la condicion que causo
el e o y con inua la ejecucion con la sen encia
Resume
pa a einicia el ges o de e o es,
ans iendo la ejecucion a un luga ap opiado den o del p o cedimien o ac ual. La sin axis es:
Resume
&0]
j
Nex
j
label
g
En el siguien e ejemplo se obse an a ios de sus usos que siguen la siguien e secuencia:
El usua io eclea dos en e os pa a mul iplica los. Si alguno de los n ume os es mayo
que un en e o, el p og ama ejecu a una u ina de e o y la ejecucion del p og ama
con inua en una seccion esp ecca u ilizando
Resume <l abel >
. En onces se es-
ablece un nue o pun o de cap u a de e o es, einiciando el ges o de e o es de la
sub u ina e indicando que el p og ama con inue su ejecucion p o la siguien e sen
en-
cia incluso si o cu ie a alg un e o .
Sub Main()
Dim a%, b%, x%
O aVez:
On E o Go o E o Rango
a% = Inpu Box(``In o duzca el p ime en e o a mul iplica '',``In oduzcaunnume o'')
b% = Inpu Box(``In o duzca el segundo en e o a mul iplica '',``In o duzca un n ume o'')
On E o Resume Nex 'Con inua la ejecucion del p og ama en la
x% = a% * b% 'siguien e lnea si o cu e un e o .
i e = 0 hen
MsgBoxx%
else
Msgb ox a% & `` * '' & b% & `` sale del ango de los en e os''
end i
Exi Sub
E o Rango: 'Ges o de e o es.
MsgBox ``Has in o ducido un alo no en e o. <In en alo o a ez!''
Resume O aVez
End Sub
El e o es anulado si el p o cedimien o e mina sin hab e ejecu ado es a sen encia. En ge-
ne al, exis en cua o o mas pa a einicia el ges o de e o es de mane a que se p e mi e que el
p o cedimien o acab e sin isualiza ning un mensa je de e o :

La ejecucion llega a una sen encia
On E o
o
Resume
.

Se asigna
;
1a
E :N umbe
.

Se llama al me o do
E :C l ea
.

La ejecucion llega a una sen encia
E xi S ub
,
E xi F unc ion
,
E nd F unc ion
o
End Sub
.
86
5.1.4 El p o ceso en cascada pa a cap u a un e o
Una ca ac e s ica esp ecial es que se p e mi e el anidamien o de ges o es de e o es: si o cu e un
e o den o del ges o de e o es, en onces se llama a al ges o de e o es p opio.
En cualquie caso si du an e la ejecucion o cu e un e o y no hay denido ning un ges o
On E o
en el p o cedimien o, en onces
BasicSc ip
uel e al p o cedimien o que lo llamo y
ejecu a all el ges o de e o es.
Es e p o ceso se epi e has a que se encuen a ese ges o , o no haya mas p o cedimien os. Si
un e o no se cap u a u o cu e den o de un ges o ,
BasicSc ip
mues a un mensa je de e o ,
de eniendose la ejecucion del
sc ip
.
5.2 El ob je o p edenido
E
Es e ob je o iene las siguien es p opiedades:

E .Desc ip ion
Es ablece u ob iene la desc ip cion del e o .

E .HelpCon ex
Es ablece u ob iene el iden icado de con ex o en la ayuda pa a con-
segui mas in o macion sob e el e o .

E .HelpFile
Es ablece u ob iene el nomb e del che o de ayuda que con iene la in o -
macion sob e el e o .

E .Las DLLE o
Ob iene el ul imo e o gene ado p o una llamada ex e na.

E .Numbe
Es ablece u ob iene el n ume o de e o .

E .Sou ce
Es ablece u ob iene la uen e de un e o en iemp o de ejecucion.
Y o ece los siguien es me o dos:

E .Clea
Inicializa las p opiedades del ob je o
E
.Es o se ealiza au oma icamen e
cuando se ejecu a alguna de las siguien es sen encias:
Resume
,
E xi F unc ion
,
On E o
y
E xi S ub
.

E .Raise
Gene a un e o en iemp o de ejecucion, es ableciendo las p opiedades ade-
cuadas en el ob je o
E
(y que se pasan como pa ame os).

Es as son: el n ume o de e o ,
la uen e del e o , la desc ip cion del e o , el che o de ayuda con in o macion sob e el
e o y el con ex o den o de la ayuda.
5.3 Funciones pa a la ges ion de e o es
Algunas unciones que an a ayuda pa a ges iona los e o es son:
E l
De uel eelnume odelnea (den o del
sc ip
) del e o mas ecien e.
E o , E o $
De uel e una cadena que con iene el ex o que co esp onde al n ume o de e o
dado o al e o mas ecien e.
IsE o
De uel e
T ue
si la exp esion es un alo de e o denido p o el usua io.
87
5.4 Compa ibilidad con
Visual Basic
BasicSc ip
iene los mismos codigos y mensa jes de e o que
Visual Basic
, acili ando la
p o abilidad en e es os en o nos. Ello es debido a que
BasicSc ip
ob iene el e o median e
la uncion
E o
o la p opiedad
E :D esc ip ion
. Hay es ca ego as de e o es:
1. E o es compa ibles con
Visual Basic
(0 a 799).
2. E o es de
BasicSc ip
(800 a 999).
3. E o es denidos p o el usua io (

1000).
5.5 O os ejemplos sob e la ges ion de e o es
Mues an es ip os de ges ion de un e o . El p ime caso simplemen e igno a el e o cap u ado
ycon inua la ejecucion del p og ama. El segundo caso ejecu a un sal o hacia una u ina com un
de p o cesamien o de e o es, einicia el ges o y eanuda la ejecucion del p og ama. El e ce
caso einicia el ges o , p o lo que la ejecucion se pa a a cuando apa ezca el siguien e e o .
Sub Main()
Dim x%
a = 10000
b = 10000
On E o Go o Eqi 0 'Cuando o cu a un e o , sal a a es a e ique a.
Do
x% = a * b
Lo op
E iq0:
E = -1 'Inicializa la se ~nal de e o .
MsgBox ``Se ~na de e o inicializada y con inuacion.''
On E o Go o E o Rango 'Sal o a una nue a u ina de e o pa a
x% = 1000 'los siguien es e o es.
x% = a * b
x% = a / 0
On E o Go o 0 'Inicializa los sal os de e o .
x% = a * b 'El p og ama pa a a aqu.
Exi Sub 'Salida p e ia a la u ina com un de e o es.
E o Rango: 'Comienzo de la u ina com un de e o es.
I E = 6 hen
MsgBox ``Sal o p o E o en el Rango.''
Else
MsgBox E o (E )
End I
Resume Nex
End Sub
88
Righ , Righ $, Righ B, Righ B$
De uel e la sub cadena o mada po los
n
ul imos ca ac-
e es o by es de la cadena esp ecicada.
S Comp
Compa acion de cadenas.
S Con
Con ie e la cadena esp ecicada seg un un pa ame o de con e sion: mayusculas,
min usculas, e c.
S ing, S ing$
De uel e una cadena de una longi ud dada que se ellena con el ca ac e
esp ecicado.
T im, T im$, LT im, LT im$, RT im, RT im$
De uel e una copia de la cadena pasada
donde se han eliminado los espacios al inicio o al nal de la misma.
UCase, UCase$
De uel e la cadena de en ada en le as mayusculas.
Wo d$
De uel e una cadena que con iene la secuencia de palab as en
e dos pun os dados del
ex o esp ecicado.
Wo dCoun
De uel eunen e o que ep esen a el n ume o de palab as en el ex o esp ecicado.
Algunas unciones sob e los ipos:
CBo ol
Con ie e una exp esion al ip o
B ool ean
.
CCu
Con ie e una exp esion al ip o
C u ency
.
CDa e, CVDa e
Con ie e una exp esion al ip o
D a e
.
CDbl
Con ie e una exp esion al ip o
Double
.
CIn
Con ie e una exp esion al ip o
I n eg e
.
CLng
Con ie e una exp esion al ip o
Long
.
CSng
Con ie e una exp esion al ip o
S ing l e
.
CS
Con ie e una exp esion al ip o
S ing
.
CVa
Con ie e una exp esion al ip o
Va ian
.
CVE
Con ie e una exp esion en un n ume o de e o denido p o el usua io.
IsDa e
De uel e
T ue
si la exp esion dada puede con e i se a una echa.
IsEmp y
De uel e
T ue
si la a iable dada es de ip o
Va ian
y no ha sido inicializada. Es
equi alen e a
(Va Type(exp ession) = ebEmp y)
.
IsNull
De uel e
T ue
si la a iable dada es de ip o
V a ian
y no con iene da os alidos. Es
equi alen e a
(Va Type(exp ession) = ebNul l)
.
IsNume ic
De uel e
T ue
si la exp esion puede con e i se a un n ume o.
IsOb jec
De uel e
T ue
si la a iable dada es de ip o
Va ian
ycon iene un ob je o
O bj ec
.
S , S $
Con ie e un n ume o en una cadena.
Typ eName
De uel e el nomb e del ip o de la a iable esp ecicada.
95

Typ eO ob jec a iable Is ob jec yp e
De uel e
T ue
si
obj ec a iabl e
es del ip o
obj ec y pe
esp ecicado. Es a uncion es muy u il pa a de e mina el ip o de los ob je os de au oma-
izacion
OLE
.
Val
Con ie e una de e minada exp esion cadena a un n ume o.
Va Typ e
De uel eunen e o que ep esen a el ip o de da o de la a iable esp ecicada.
Algunas unciones que no en an en ca ego as an e io es:

Fiche os de ex os y bina ios (
EOF
,
F il eA
,
F eeFile
,
Loc
,
Lo
y
Seek
).

Fiche os
INI
y el egis o de Windows (
Ge Al l S e ing s
,
Ge S e ing
,
ReadI ni
$).

Acceso a base de da os con
SQL
(
SQlBind
,
S QLC lose
,
S QLE o
,
S QLE xecQue y
,
S QLGe S chema
,
S QLO pen
,
S QLR eq ues
,
S QLR e ie e
y
S QLR e ie eT oF il e
).

Funciones es ads icas (
DDB
,
F
,
Ipm
,
IRR
,
MIRR
,
NP e
,
Np
,
Pm
,
PPm
,
P
,
Ra e
,
Sln
y
SY D
).

Po apap eles (Clipb oa d$).

O as (
I M ES a us
y
M acI D
).
6.2 Congu acion de op ciones
La sen encia
O p ion
congu a de mane a global al
sc ip
algunos asp ec os del p o cesamien o.
Es a sen encia deb e apa ece ue a de cualquie blo que de sub u ina o uncion.
El lmi e in e io de los a ays
Po de ec o, el lmi e in e io es 0, p e o se puede p one a 1. La sin axis que sigue es:
Op ion Base
0
j
1
g
Po ejemplo:
Op ion Base 1
Sub Main()
Dim a(10) 'Con iene 10 elemen os (y no 11).
End Sub
La compa acion de cadenas
Se puede con ola el mo do en que se compa an las cadenas. Po de ec o el mo do es
B ina y
(la
compa acion es sensi i a a las mayusculas). Se puede cambia al mo do
Tex
(la compa acion
no es sensi i a). La sin axis es:
Op ion Compa e &Bina y
j
Tex ]
Po ejemplo:
Op ion Compa e Bina y 'Compa acion sensi i aa mayusculas.
96
Sub Compa aSensi i a
a$ = ``Es a Cadena Con iene MAY

USCULAS.''
b$ = ``es a cadena con iene mayusculas.''
I a$ = b$ Then
MsgBox ``Las dos cadenas ue on compa adas de mane a no sensi i a.''
Else
MsgBox ``Las dos cadenas ue on compa adas de mane a sensi i a.''
End I
End Sub
Op ion Compa e Tex 'Compa acion no sensi i aamayusculas.
Sub Compa aNoSensi i a
a$ = ``Es a Cadena Con iene MAY

USCULAS.''
b$ = ``es a cadena con iene mayusculas.''
I a$ = b$ Then
MsgBox ``Las dos cadenas ue on compa adas de mane a no sensi i a.''
Else
MsgBox ``Las dos cadenas ue on compa adas de mane a sensi i a.''
End I
End Sub
Sub Main()
Compa aSensi i a 'Llama a la sub u ina denida p e iamen e.
Compa aNoSensi i a 'Llama a la sub u ina denida p e iamen e.
End Sub
Las cadenas de escap e al es ilo de sc C
Habili a o deshabili a la u ilizacion de las secuencias de escap e al es ilo de
C
en las cadenas.
Cuando es a habili ado, el compilado a a el ca ac e
n
como el inicio de una secuencia de
escap e (los picos
n
,
n
n,
n
,
n
, e c.). Po de ec o, es aop cion es a deshabili ada. La sin axis
que sigue es:
Op ion CS ings
On
j
O.
g
Po ejemplo:
Op ion CS ings On
Sub Main()
MsgBox ``Ellos dije on,
n
``<Mi a aquello!
n
''''
MsgBox ``P ime a lnea.
n
n
nSegunda lnea.''
MsgBox ``Ca ac e A:
n
x41
n
n
nCa ac e B:
n
x42''
End Sub
Tip o po de ec o de las a iables
Es ablece el ip o p o de ec o pa a las a iables y unciones cuando no se esp ecica. Po de ec o,
es e ip o es
V a ian
. Ac ualmen e, solo se puede esp ecica
I n eg e
como ip o al e na i o(pa a
man ene compa ibilidad con an e io es e siones de
BasicSc ip
. La sin axis que sigue es:
97
Op ion De aul
y pe
Po ejemplo:
Op ion De aul In ege
Func ion SumaEn e os(a As In ege ,b As In ege )
SumaEn e os = a + b
End Func ion
Sub Main
Dim a,b, esul ado
a = Inpu Box(``Teclee un en e o:'')
b = Inpu Box(``Teclee o o en e o:'')
esul ado = SumaEn e os(a,b)
End Sub
Sob e la decla acion implci a
Se u iliza pa a p e eni la decla acion implci a de las a iables y los p o cedimien os ex e nos.
La sin axis que sigue es:
Op ion Explici
6.3 P opiedades y me o dos de los ob je os p edenidos
6.3.1 El ob je o
Basic
P opiedades

Basic.A chi ec u e
$
Una cadena que con iene la pla a o ma sob e la que se ejecu a
BasicSc ip
. Algunas de ellas son
I n el
",
Powe PC
",
Al phaAX P
", e c. Es a cadena
es a aca si la a qui ec u a no puede se de e minada.

Basic.CodePage
Un en e o que ep esen a la pagina de codigos de ca ac e es lo cal.

Basic.Eoln
$
Una cadena que con iene la secuencia de n de lnea ap opiada a la pla a o ma
ac ual.

Basic.F eeMemo y
Un en e o la go que ep esen a el nume o de by es de memo ia
lib e en el espacio de da os de
BasicSc ip
(el ama ~no del blo que lib e mas g ande).
P e iamen e, el espacio de da os es compac ado pa a consolida el espacio lib e en un
blo que unico. Es e espacio con iene las cadenas y a ays dinamicos.

Basic.HomeDi
$
Una cadena que con iene el di ec o io donde se ubica
BasicSc ip
.

Basic.Locale
$
Una cadena que con iene in o macion del en o no lo cal donde se es a
ejecu ando
BasicSc ip
: o ma os de echa y ho a, congu acion dep endien e del pas y
analogos.
98

Basic.Ope a ingSys em
$
Una cadena que con iene el nomb e del sis ema op e a i o.
Es os alo es son:
W indow s
",
W indow s o W o k g oups
",
Win
32
s
",
W indow s
95",
W indow sN T
",
OS=
2",
M acin osh
"y
N e w a e
".

Basic.Ope a ingSys emVendo
$
Una cadena que con iene el ab ican e del sis ema
op e a i o sob e el que se ejecu a
BasicSc ip
. Es os alo es son:
M ic oso
",
IBM
",
Appl e
", e c.

Basic.Ope a ingSys emVe sion
$
Una cadena que con iene la e sion del sis ema op e-
a i o sob e el que se ejecu a
BasicSc ip
.

Basic.OS
Un en e o indicando la pla a o ma ac ual. Es as cons an es son:
ebW in
16,
ebW in
32,
ebM acin osh
,
ebS ol a is
,e c. Es muy ap opiada pa a la c eacion de
sc ip s
mul ipla a o ma.

Basic.Pa hSepa a o
$
Una cadena que con iene el sepa ado en las cadenas de di ec o io
de la pla a o ma ac ual.

Basic.P ocesso
$
Una cadena que con iene el nomb e del p o cesado en el o denado
donde se ejecu a
BasicSc ip
. Es a cadena es a a aca si no es capaz de es ablece lo.

Basic.P ocesso Coun
Un en e o que ep esen a el n ume o de p o cesado es p esen es.

Basic.Ve sion
$
Una cadena que con iene la e sion de
BasicSc ip
en el o ma o
maj o :mino :B uil dN umbe
.
Me o dos
El me o do
Basic.Capabili y
de uel e
T ue
si pla a o ma ac ual admi e la capacidad que se
esp ecica (pasada como pa ame o).
6.3.2 El ob je o
HWND
P opiedades
La p opiedad po de ec o de un ob je o
HW N D
de uel e un
Va ian
que con iene un ges o
(
HAN DLE
)dela en ana sica de una a iable ob je o
HW N D
. Su sin axis es
window
.Value
.
Es a p opiedad es de solo lec u a, y se u iliza pa a ob ene el alo de un ob je o
HW N D
en el
en o no op e a i o ac ual. Su ama ~no dep ende a del sis ema en el que se ejecu a el
sc ip
ypo
lo an o siemp e se a gua dado en una a iable
Va ian
.
En el siguien e ejemplo se isualiza una en ana que con iene el nomb e de clase de la en ana
del
P og am Manage 's"
y lo hace u ilizando la p opiedad
:V al ue
, pasandola di ec amen e a
una u ina ex e na:
Decla e Sub Ge ClassName Lib ``use '' (ByVal Win%,ByVal ClsName$,ByV
al ClsNameLen%)
Sub Main()
Dim P og amManage As HWND
Se P og amManage = WinFind(``P og am Manage '')
ClassName$ = Space(40)
Ge ClassName P og amManage .Value,ClassName$,Len(ClassName$)
MsgBox ``El nomb e de clase del p og ama es: '' & ClassName$
End Sub
99
6.3.3 El ob je o
Msg
P opiedades
La p opiedad
Msg.The mome e
cambia el p o cen a je ma cado en el e mome o de una
en ana de mensa je (abie a p e iamen e con el me o do
Msg:Open
). Si la en ana no es a
abie a o el alo es a ue a del in e alo 0{100 se gene a un e o .
Me o dos
Los siguien es me o dos son esp eccos pa a Windows.

Msg.Open
Mues a una en ana de mensa je con un b o on de cancelacion y un e mome o
que son op cionales. Tiene a ios pa ame os: el ex o del mensa je, el iemp o que se mos-
a a el mensa je, si apa ece el b o on de cancelacion, si apa ece el e mome o y la p osicion
de la en ana. La en ana es no mo dal, p o lo que p e manece a abie a has a que el usua io
seleccione la cancelacion, expi e el iemp o indicado o se ejecu e el me o do
Msg:Close
. Solo
pod a hab e uno de es os mensa jes al mismo iemp o y se qui a aau oma icamen e cuando
e mine el
sc ip
. Hay que llama p e iodicamen e al p o cedimien o
DoE en s
pa a pasa
el con ol al sis ema: de es a mane a se cie a la en ana cuando se pulse el bo on de
cancelacion.

Msg.Close
Cie a la en ana de mensa je no mo dal.
6.3.4 El ob je o
Sc een
P opiedades

Sc een.DlgBaseUni sX
Un en e o que se u iliza pa a ealiza la con e sion pxeles/uni-
dades de dialogo en el eje ho izon al. Es e alo dep ende a de la uen e u ilizada en las
en anas de dialogo. Pa a pasa de pxeles a unidades:
((
X P ixel s

4) + (
S c een:D l g B aseU ni sX
;
1))
=S c een:D l g B aseU ni sX
Pa a pasa de unidades a pxeles:
(
X D l g U ni s

S c een:D l g B aseU ni sX
)
=
4)

Sc een.DlgBaseUni sY
Un en e o que se u iliza pa a ealiza la con e sion pxeles/uni-
dades de dialogo en el eje e ical. Es e alo dep ende a de la uen e u ilizada en las
en anas de dialogo. Pa a pasa de pxeles a unidades:
(
Y P ixel s

8) + (
S c een:D l g B aseU ni sY
;
1)
=S c een:D l g B aseU ni sY
Pa a pasa de unidades a pxeles:
(
YDlgUni s

S c een:D l g B aseU ni sY
)
=
8

Sc een.Heigh
Un en e o que ep esen a la al u a en pxeles de la pan alla. Es una
p opiedad de solo lec u a.

Sc een.TwipsPe PixelX
Un en e o que ep esen a el nume o de
wips
po pxel en el
eje ho izon al del disp osi i ode pan alla ins alado. La p opiedad es de solo lec u a.
100


Sc een.TwipsPe PixelY
Un en e o que ep esen a el nume o de
wips
po pxel en el
eje e ical del disp osi i ode pan alla ins alado. La p opiedad es de solo lec u a.

Sc een.Wid h
Un en e o que ep esen a la anchu a en pxeles de la pan alla. Es una
p opiedad de solo lec u a.
6.3.5 El ob je o
Sys em
P opiedades
To das ellas son esp eccas del en o no
Windows
.

Sys em.F eeMemo y
Un en e o la go que indica el n ume odeby es de memo ia lib e.

Sys em.F eeResou ces
Un en e o que ep esen a el p o cen a je de ecu sos lib es del
sis ema. Es un alo en e 0 y 100.

Sys em.To alMemo y
Un en e o la go que ep esen a el n ume o de by es de la memo ia
lib e disp onible.

Sys em.WindowsDi ec o y
$
Una cadena que con iene el di ec o io donde se encuen a
el sis ema op e a i o.

Sys em.WindowsVe sion
$
Una cadena que con iene la e sion del sis ema op e a i o.
6.3.6 El ob je o
Clipboa d
Me o dos

Clipboa d.Clea
Bo a el con enido del p o apap eles.

Clipboa d.Ge Fo ma
De uel e
T ue
si los da os disp onibles en el p o apap eles siguen
un de e minado o ma o (que se pasa como pa ame o).

Clipboa d.Ge Tex
De uel e el ex o que con iene el p o apap eles.

Clipboa d.Se Tex
Copia el ex o esp ecicado (pasado como pa ame o) en el p o apa-
p eles.
6.3.7 El ob je o
Desk op
Me o dos
Los siguien es me o dos son esp eccos pa a Windows.

Desk op.A angeIcons
Reo ganiza las aplicaciones minimizadas en la pan alla.

Desk op.Cascade
Reo ganiza en cascada las en anas no minimizadas.

Desk op.Se Colo s
Cambia los colo es del sis ema a un conjun o de colo es p edenido
(que se pasa como pa ame o).

Desk op.Se Wal lpape
Cambia el apiz de la pan alla al mapa de bi s esp ecicado (que
se pasa como pa ame o).
101

Desk op.Snapsho
Toma una seccion de la pan alla y la sal aen el clipb oa d como un
mapa de bi s.

Desk op.Tile
Reo ganiza o das las en anas no minimizadas de mane a que no se sup e -
p ongan.
6.3.8 El ob je o
Ne
Me o dos
Los siguien es me o dos son esp eccos pa a Windows.

Ne .CancelCon
Cancela una conexion de ed.

Ne .Dialog
Visualiza una en ana de dialogo que p e mi e congu a la ed ac ualmen e
ins alada.

Ne .Ge Caps
De uel e un en e o que in o ma sob e la ed y sus capacidades, seg un el
ip o eque ido de in o macion (que se pasa como pa ame o).

Ne .Ge Con
$
De uel e el nomb e del ecu so de ed aso ciado al disp osi i o lo cal que
es a edi eccionado.

Ne .Use
$
De uel
e in o macion sob e el usua io conec ado a la ed.
6.3.9 El ob je o
Viewpo
Me o dos
Los siguien es me o dos son esp eccos pa a Windows.

Viewpo .Clea
Limpia la en ana esp ecial abie a.

Viewpo .Close
Cie a la en ana esp ecial abie a.

Viewpo .Open
Ab e una en ana esp ecial pa a mos a in o macion. Acep a como
pa ame os el  ulo de la en ana, la p osicion y el ama ~no. En combinacion con la sen-
encia
P in
, es as en anas son ap opiadas pa a la salida de in o macion de depu acion.
Es a en ana se cie a au oma icamen e cuando la aplicacion que la ab io e mina. Solo
se puede ene una en ana abie a cada ez. El ama ~no maximo del bu.e que iene
aso ciado es de 32K., po lo que la in o macion al p incipio del mismo se a b o ada pa a
hace hueco cuando se in o duce nue os da os p o el nal. Po ejemplo:
Sub Main()
Viewp o .Op en ``Ven ana esp ecial de BasicSc ip '',100,100,500,500
P in ``Es o se isualiza aenuna en ana esp ecial.''
Sleep 2000
Viewp o .Close
End Sub
102
6.4 Di ec i as de p ep o cesado
6.4.1 La di ec i a
#Cons
Dene una cons an e pa a se u ilizada en la o a di ec i a del p ep o cesado #I ...Then...#Else.
Su sin axis es:
#Cons
cons name
=
exp ession
In e namen e, o das es as cons an es son de ip o
V a ian
. Po lo an o, la exp esion puede
se de cualquie ip o.
Po ejemplo:
#Cons SUBPLATFORM = ``NT''
#Cons MANUFACTURER = ``Windows''
#Cons TYPE = ``Wo ks a ion''
#Cons PLATFORM = MANUFACTURER & `` '' & SUBPLATFORM & `` '' & TYPE
Sub Main()
#I PLATFORM = ``Windows NT Wo ks a ion'' Then
MsgBox ``Ejecu andose ba jo Windows NT Wo ks a ion''
#End I
End Sub
6.4.2 La di ec i a
#I ...Then...#Else
Fue za al compilado la inclusion o exclusion de secciones del codigo basandose en unas condi-
ciones dadas. La sin axis de es a di ec i a es:
#I
exp ession
Then
&
s a emen s
]
&#ElseI
exp ession
Then
&
s a emen s
]]
&#Else
&
s a emen s
]]
#End I
La exp esion ep esen a cualquie exp esion alida de
BasicSc ip
que e alue un ip o
b o oleano. Puede consis i de li e ales, op e ado es, cons an es denidas con #
Cons
o alguna
de las cons an es p edenidas del p ep o cesado (p o ejemplo,
Win
32 es
T ue
si el en o no de
desa ollo es a basado en
Windows
pa a 32{bi s). Cualquie cons an e no denida e alua aa
E mp y
.
Po ejemplo:
#Cons VERSION = 2
Sub Main
#I VERSION = 1 Then
di ec o y$ = ``
n
apps
n
widge ''
#ElseI VERSION = 2 Then
di ec o y$ = ``
n
apps
n
widge 32''
103
#Else
MsgBox ``Ve sion descono cida.''
#End I
End Sub
Una u ilizacion habi ual de es a di ec i a es la inclusion op cional de sen encias de depu-
acion en el codigo. El siguien e ejemplo mues a como se puede depu a el codigo si se incluye
condicionalmen e el chequeo de pa ame os a una uncion:
#Cons DEBUG = 1
Sub Cambia Fo ma o(Nue oFo ma o As In ege , Tex oEs ado As S ing)
#I DEBUG = 1 Then
I Nue oFo ma o
<>
1 And Nue oFo ma o
<>
2Then
MsgBox ``Pa ame o '' ``Nue oFo ma o'' `` es in alido.''
Exi Sub
End I
I Len(Tex oEs ado)
>
78 Then
MsgBox ``Pa ame o '' ``Tex oEs ado'' `` es demasiado la go.''
Exi Sub
End I
#End I
Rem Cambia el o ma o aqu...
End Sub
El siguien e ejemplo llama a una u ina ex e na. Es as llamadas son muy esp eccas de
la pla a o ma, po lo que end emos que esc ibi el codigo adecuado pa a cada una de ellas,
p o duciendo un codigo mul ipla a o ma:
#I Win16 Then
Decla e Sub Ge WindowsDi ec o y Lib ``KERNEL'' (ByVal
Di Name As S ing,ByVal MaxLen As In ege )
#ElseI Win32 Then
Decla e Sub Ge WindowsDi ec o y Lib ``KERNEL32'' Alias
``Ge WindowsDi ec o yA'' (ByVal Di Name As S ing,ByVal
MaxLen As Long)
#End I
Sub Main()
Dim Nomb eDi As S ing * 256
Ge WindowsDi ec o y Nomb eDi ,len(Nomb eDi )
MsgBox ``El di ec o io de Windows es '' & Nomb eDi
End Sub
104