Scripting en Rational Rose (LSI-2000-01) : Versión Borrador
Full text
Sc ip ing
en
Ra ional Rose
(Ve sion b o ado )
Oc a io Ma n Daz
Dp o. de Lengua jes y Sis emas In o ma icos
Facul ad de In o ma ica y Es ads 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 duccion
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 eccas 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 eacion de diag amas y clases, mo dicaciones del mo delo, gene acion de do cu-
men os y o as).
Ejecu a las unciones de
Rose
desde o as aplicaciones median e la au oma izacion
OLE
.
Accede a las clases, p opiedades y me o dos de un mo delo de
Rose
desde un en o no de
desa ollo de so w
a e median e la inclusion de la lib e a de ex ension de ip os.
Pe sonaliza los men us de la aplicacion.
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 sion 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 aplicacion 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 izacion
OLE
La au oma izacion
OLE
p e mi e la in eg acion de o as aplicaciones con
Ra ional Rose
de
dos o mas:
U ilizando
R
ose
como un con olado de la au oma izacion: 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 izacion: el ob je o
OLE
de la aplicacion
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 aplicacion
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 aplicacion es accesible a a es
del Mo delo del In e az de Ex ension 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 me o dos que denen y con olan
la aplicacion y o das sus unciones.
La comunicacion con es e in e az se ealiza a a es de
sc ip s
o de la au oma izacion
OLE
.
La lib e a de ex ension de ip os
Ra ionalRose. lb
p e mi e accede al in e az
REI
desde un
en o no de p og amacion.
El diag ama de la gu a 1.1 mues a los comp onen es del nucleo de
Ra ional Rose
, los
comp onen es del in e az
REI
y las elaciones en e ellos:
In e az de ex ension
El conjun o com un de in e aces u ilizados po un
sc ip
o una
au oma izacion
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:
{
Aplicacion Rose
Los ob je os de ex ension que o man el in e az a las unciones de la
aplicacion.
{
Diag amas
Los ob je os de ex ension que o man el in e az a los diag amas y is as.
{
Elemen os del modelo
Los ob je os de ex ension 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 izacion
El conjun o de ob je os de au oma izacion que p e mi en a
Ra ional
Rose
unciona como un con olado o un se ido
OLE
.
2
1.1.4 Pe sonalizacion de los men us
los men us de la aplicacion se pueden ex ende o adap a mo dicando el che o de men us
(
Rose.mnu
) que
Rose
lee al inicio de su ejecucion. 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 aplicacion.
1.2 C eacion y mo dicacion 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 dica 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 basicos del lengua je de
sc ip s
1.3.1 Inicio y nalizacion de
sc ip s
Al igual que en muchos o os lengua jes, la ejecucion del
sc ip
comienza en la sub u ina
M ain
.
Po lo an o, o do
sc ip
deb e ene la denida. Cuando la ejecucion 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 denicion 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 ejecucion del
sc ip
, ce ando o dos los
che os abie os. Es e segundo ejemplo adelan a la nalizacion del
sc ip
con la sen encia
End
:
Sub Main()
MsgBox "La p oxima lnea e mina alaejecucion 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 iosenelcodigo
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 pa a o es a o do comen ado.
Es a lnea ambien se a igno ada.
Es a es la ul ima lnea del comen a io. */
MsgBox ``Despues del comen a io''
1.3.3 Un asp ec o sin ac ico
El ca ac e de con inuacion de lnea ( ) p e mi e di idi una sen encia compleja en a ias lneas.
4
Cap ulo 2
In o duccion 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 sion de
Basic
,po lo que su ap endiza je esul a sencillo. A con inuacion 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 logicos
Bo olean
Es e ip o de da os ep esen a a los alo es logicos
T ue
y
False
. Po de ec o, una
a iable
b o oleana end ael alo
False
.
2.1.2 Tip os nume icos
In ege (%)
Es e ip o de da os ep esen a a los nume os en e os de has a cua o dgi o de p ecision 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 dgi os de p ecision 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 dgi os a la izquie da del pun o
decimal y cua o a la de echa, po lo que son u iles pa a calculos 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 nume os eales con 7 dgi os de p ecision 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 dgi os de p ecision 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 codigo
ASCI I
)yla longi ud maxima 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 eelnume 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. Tambien se pueden decla a con un ama ~no jo (mas 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 esion (de ip o cadena) a una a iable ( ambien 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 nume ico, la pa e en e a almacena el n ume o de das desde el
31{Dic{1899
,
y la pa e accional el n ume o de segundos anscu idos del da. 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 ilizacion 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:
Nume icos
I n eg e
,
Long
,
S ing l e
,
Double
,
B ool ean
,
C u ency
.
Logico
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 aco (
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 nume ico, una cadena que con iene un nume o o un
ob jec o cuya p opiedad p o de ec o sea nume 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.
Asignacion a una a iable de ipo a ian e
Inicialmen e se le conside a aco (
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 nume icas o una cadena de longi ud ce o en una exp esion 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 aco. Cuando se le asigna un alo ambien 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 cion es la p omo cion au oma ica de los ip os nume 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 acion 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
ejecucion 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 olucion del p og ama es mas len a compa ada con los ip os undamen ales p o que
cada op e acion 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 coleccion 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 coleccion iene p opiedades pa a ob ene in o macion sob e ella y me o dos que p e mi en
la na egacion 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 coleccion
Coun
es la unica p opiedad aplicable a las colecciones. Es el n ume o de ob je os con enidos en
la coleccion que p e mi e la u ilizacion de un con ado pa a eco e la coleccion median e una
i e acion.
Me o dos de las colecciones
A con in
uacion se desc ib en los me o dos de una coleccion, que p e mi en la lo calizacion y p o ce-
samien o de elemen os en ella. Aunque o das las p opiedades y me 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 me o do
C l assC oll ec ion:Ge A
ob iene una ob je o clase", y el me 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 me o dos son:
Exis s
Indica si un ob je o exis e en una coleccion.
FindFi s
Ob iene el ndice (p osicion) de la p ime a ins ancia de un ob je o en una coleccion.
FindNex
Ob iene el ndice (p osicion) de la siguien e ins ancia de un ob je o en una coleccion.
Ge Wi hUniqueID
Ob iene la ins ancia de un ob je o en una coleccion, dado su iden icado
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 ecca de un ob je o en una coleccion.
Ge Fi s
Ob iene la p ime a ins ancia de un ob je o en una coleccion.
Ge Ob jec
Ob iene el in e az OLE aso ciado con una coleccion dada.
IndexO
Ob iene el ndice (p osicion) de un ob je o en una coleccion dada.
15
Me o dos pa a las colecciones denidas po el usua io
Acon inuacion se desc ib en cua o me o dos de colecciones adicionales, que p e mi en a~nadi
o qui a ob je os de una coleccion. Sin emba go, es os me o dos solo son alidos pa a aquellas
colecciones denidas 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 coleccion de ob je os.
AddCollec ion
A~nade una coleccion a una coleccion de ob je os.
Remo e
Elimina una coleccion de una coleccion de ob je os.
Remo eAll
Elimina el con enido comple o de una coleccion.
2.3 Cons an es, a iables y exp esiones
2.3.1 Denicion 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 acion,
p o d a asigna se una exp esion o mada po li e ales y o as cons an es (no se pe mi en las
llamadas a uncion, 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 lnea 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 acion 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 acion 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 acion de a ays dinamicos y jos (si se exp esan
los lmi 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 ecica 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
denidos p o el usua io).
Una sen encia
Dim
den o de una sub u ina o uncion 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 acion del ip o
S ing
:
Dim nomb e a iable As S ing * longi ud cadena
Decla acion de a iables implci as
Cuando
BasicSc ip
encuen a una a iable no decla ada con
Dim
,en onces su ip o se a el
esp ecicado p o el ca ac e de decla acion 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 acion de obje os de au oma izacion
OLE
17
Se pueden decla a a iables de un ip o de ob je o explci 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 ecica la aplicacion u ilizada pa a egis a el ob je o de au o-
ma izacion
OLE
yelpa ame o
C l ass
esp ecica el ip o de ob je o denido 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 compilacion y mejo ando el
endimien o de la in o cacion a sus me o dos.
C eacion 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 ecicado y no se puede u iliza cuando se decla an a ays u ob je os de au oma izacion
OLE
.
En iemp o de ejecucion, se no ica a a la aplicacion que se es a deniendo un n
ue oob je o:
la aplicacion esp onde a median e la c eacion 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 ica a a la
aplicacion 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, dgi os y el ca ac e de sub ayado ( ). Las pun uaciones no se
p e mi en. El signo de exclamacion (!) se pe mi e, pe o si es a en la ul ima p osicion se
in e p e a a como un ca ac e de decla acion de ip os.
3. El ul imo ca ac e del nomb e puede se un ca ac e de decla acion 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 ecica o a cosa, cualquie a iable se decla a implci amen e lo cal a la
u ina que la u iliza. La sen encia
Gl obal
iene el mismo signicado que
Public
.
Cuando se u ilizan a iables compa idas, se deb e asegu a que las decla aciones son iden 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 ecicacion de un lmi e in e io y o o
sup e io pa a cada dimension 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 denida, en onces deb e hab e se decla ado p e iamen e
median e la sen encia
Dim
como un a ay dinamico (sin esp ecica 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 ecica las nue as dimensiones, y cuando no se esp ecican,
se conside a que el a ay no end a elemen os. Po de ec o, el lmi 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 ecica 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 denidos p o el usua io
o ob je os.
La edimension 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 aca. 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
nume o de dimensiones deb e a se ce o o el mismo n ume o que ya ena.
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 isualizandolo 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 ecision. Si una op e acion se ealiza en e una exp esion nume ica y
o a ex ual, en onceslaul ima se con ie e a una exp esion nume ica.
Cuando una a iable de ip o ob je o es u ilizada con op e ado es nume icos ales como la
suma o la es a, se u iliza au oma 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 acion 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 aplicacion es '' & Excel
MsgBox ``Es a aplicacion es '' & Excel.Value
Op e ado es
A con inuacion se denen 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 acion.
Conca enacion de cadenas
&
Di ision en e a
n
Suma, es a, mul iplicacion y di ision
+,
;
,
,
=
Po encia
^
Compa aciones
<
,
,
>
,
,=,
<>
Conjuncion logica o bina ia
And
Equi alencia logica o bina ia
Eq
(de uel e
T ue
si amb os op e andos ienen el mismo alo
logico)
Implicaci
on logica o bina ia
Imp
(de uel e
T ue
si el segundo op e ando es
T ue
)
Iden icacion 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 acion puede ealiza se con
No hing
pa a
de e mina si la a iable ob je o es a sin inicializa )
Compa acion con pa ones
Lik e
Res o de una di ision
Mod
Negacion logica o bina ia
No
Disyuncion logica o bina ia
O
Exclusion logica o bina ia
Xo
(de uel e
T ue
si amb os op e andos ienen dis in os alo es
logicos)
P ecedencia de op e ado es
A con inuacion 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 onenciacion
^
Menos una io
;
21
Di ision y mul iplicacion
=
Di ision en e a
n
Modulo
Mod
Suma y es a
+
;
Conca enacion de cadenas
&
Compa a i as
=
<>><<
=
>
=
Compa acion de cadenas y ob je os
Lik e I s
Negacion logica
No
Conjuncion logica o bina ia
And
Disjuncion logica o bina ia
O
Op e ado es logicos o bina ios
Xo Eq Imp
P ecision de los op e andos
BasicSc ip
ealiza la con e sion de ip os au oma 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 nume o es edondeado hacia a iba si es impa y
hacia aba jo si es pa .
Cuando se u ilizan op e ado es nume icos, bina ios, logicos 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 mas 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 despues
se ealiza la suma, saliendose de ango solo cuando el esul ado no puede con ene se en un en e o
la go. El o den de p ecision se mues a en la siguien e lis a (de meno a mayo p ecision):
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 sion de op e andos
son mas 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 cion au oma ica del esul ado al siguien e ip o de da os mas
p eciso.
Li e ales
Los li e ales son alo es con un ip o esp ecco implci 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 acion 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 deni a p os e io men e en el modulo uen e oen o o modulo. La sen encia
D ecl a e
deb e
apa ece en el ex e io de cualquie decla acion
Sub
o
F unc ion
y el p o o ip o decla ado solo
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 acion de ip os (cualquie a de ellos excep o
@ pa a el caso de unciones ex e nas).
23
LibName$
Deb e se esp ecicada si la u ina es ex e na pa a indica el nomb e de la
lib e a o codigo 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 denidos p o
el usua io y los ob je os de au oma izacion
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 dicados 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 ecica el ip o del pa ame o. La clausula
As
deb e se incluida solo
si el nomb e del pa ame o no con iene un ca ac e de decla acion de ip o. Ademas de los
ip os basicos, pueden esp ecica se es uc u as denidas p o el usua io, ob je os de da os y
ob je os de au oma izacion
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 dica 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 ejecucion po la
sen encia que sigue a la llamada de la sub u ina. Solo 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 dialogo y en onces
naliza. La ul ima lnea 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 denidas 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 denen
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
solo
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 solo 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 ecicacion
de pa ame os en una uncion 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 codigo es mas acil de lee y ademas 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 ecicado en la des-
c ipcion de ese elemen o del lengua je, de lo con a io hab a un e o de compilacion.
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 ambien 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 ejecucion 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 clasula
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 esion que esuel aun alo logico.
S a emen s
Una o mas sen encias sepa adas p o +". Es e g up o se ejecu a cuando la condicion
es
T ue
.
ElseS a emen s
Una o mas 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 esion que esuel aun alo logico. Se e al ua si o das las condi-
ciones p e ias son
False
. Pueden apa ece cualquie n ume o de clasulas
ElseI
.
ElseI S a emen s
Una o mas sen
encias sepa adas p o +". Es e g up o se ejecu a cuando su
condicion es
T ue
.
2.5.2 La sen encia
Selec Case
Es la sen encia de seleccion m ul iple, seg un el alo de una de e minada exp esion. 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 esion nume 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 clasula
Case
simple. Po
ejemplo:
Case 1 To 10,12,15, Is
>
40
Solo se ejecu a a el blo que que iguale p ime o la exp esion. 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 sion de BasicSc ip es a ejecu andose sob e: '' & s
End Sub
2.5.3 Funciones selec i as
A con inuacion 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 sola lnea de codigo:
Cho ose
Recib e un ndice y has a 13 exp esiones como pa ame os y de uel e la exp esion que
se encuen a en la p osicion indicada.
II
Recib e una exp esion logica 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 aluacion de la exp esion logica.
Swi ch
Recib e has a sie e pa es condicion{exp esion y de uel e la exp esion que co esp onde
a la p ime condicion 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 condicion sea e dade a o
has a que la condicion sea e dade a. El bucle es inni o cuando no se esp ecica la clausula de
condicion. La condicion siemp e se a cualquie exp esion logica.
Acon inuacion 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 acion p ime o y en onces chequea la condicion, epi iendolo si la
condicion 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 acion 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 acion has a que la
condicion sea cie a, e aluando p ime o la condicion:
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 acion has a que
la condicion sea cie a, e aluandola as la ejecucion 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 lnea de ejecucion a la sen encia que sigue a la clausula
Loop
.
Solo 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 hayamas de 10 en adas (en es e caso la sen encia
Do::: Loop
e mina la i e acion):
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 ejecucion de una sen encia o g up o de ellas mien as
una condicion de en ada sea e dade a. La condicion se chequea al inicio de cada i e acion. 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 maximode1000 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 coleccion 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 acion del bucle.
G oup
Nomb e de la coleccion o a ay.
S a emen s
El blo que de sen encias.
La a iable de la i e acion es una copia del elemen o de la coleccion 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 ejecucion con in ua has a que no
haya mas elemen os. Pueden anida se los bucles
F o E ach
con o os bucles, po lo que
N ex
37
a ec a aalmas 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 nume o esp ecicado 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 nume 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 ejecucion del bucle.
S a emen s
El cue p o de sen encias del bucle.
La sen encia con inua su ejecucion 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
mas in e no. La
clausula
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 acion logica
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 mas in e no
Fo
, con inuando la lnea de
ejecucion as la sen encia
N ex
.Solo 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 dialogo 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 logica
del mo delo. Solo 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. Solo lec u a.
Ro o UseCaseCa ego y
La ca ego a az 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. Solo lec u a.
UseCases
Los casos de usos que p e enecen al mo delo.
Ylosme o dos esp eccos de la clase
Model
son:
FindCa ego ies
Encon a una coleccion de ca ego as del mo delo.
FindCa ego yWi hID
Encon a una ca ego a esp ecca del mo delo.
FindClassWi hID
Encon a una clase esp ec
ca del mo delo.
FindClassses
Encon a una coleccion de clases del mo delo.
FindI emWi hID
Encon a un em esp ecco del mo delo.
FindI ems
Encon a una coleccion 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 modulos 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 modulos 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. Solo hayunobje o
D e aul M odel P ope ies
po modelo. Los me o dos
esp eccos 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 ecicada 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 pagina con las p opiedades po de ec o del mo delo de una
he amien a dada es a isible en las esp ecicaciones.
Se To olVisibili y
Es ablece la isibilidad de una he amien a, es deci , si la pagina de p o-
piedades pa a esa he amien a apa ece a en las esp ecicaciones.
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 me o dos p e mi en esp ecica y ob ene la in o macion de o das las
pa es in oluc adas en cada elacion del mo delo. Vease la subseccion sob e el diag ama de
he encias de
Rel a ion
.
La clase
Ex e nalDocumen
o ece las p opiedades y me 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 macion de un mo delo a un do cumen o de
Wo d
. Las
p opiedades esp eccas de
E x e nal D ocumen
son:
Pa en Ca ego y
La aplicacion 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.
Ylosme o dos esp eccos 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 me o dos que o das las demas 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 acion sica de un elemen o de
Ra ional Rose
y es un ob je o con las p opiedades
yme o dos que denen su apa iencia en la en ana del diag ama (p osicion, colo , ama ~no, e c.).
La op e a i idad basica 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 coleccion 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 me 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 cuales 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 me 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 basandose en es a in o macion.
Una mane a apida pa a ob ene o dos los elemen os seleccionados en un diag ama es
u iliza el me 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 me o do simplemen e de uel e o do aquello que es e seleccionado.
O as p opiedades esp eccas de
Diag am
son:
Do cumen a ion
La do cumen acion anexa al diag ama.
Visible
La isibilidad del diag ama.
O os me o dos esp eccos 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 dica 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 aco del diag ama en un che o con el o ma o
Windows Me ale
.
Rende Enhanced
La misma accion que
Rende
,pe oconmayo calidad.
Rende ToClipb oa d
La misma accion que
Rende
, p e o gua da el g aco en el p o apap eles.
Rende EnhancedToClipBoa d
La misma accion 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 aplicacion.
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 eccas de
C l assD iag am
son:
Pa en Ca ego y
La ca ego a que con iene al diag ama de clases.
Ylosme o dos esp eccos 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 coleccion de las aso ciaciones que p e enecen al diag ama de clases.
Ge Ca ego ies
Ob ene la coleccion de las ca ego as que p e enecen al diag ama de clases.
Ge Classes
Ob ene la coleccion 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 ciacion 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 ejecucion del sis ema. La clase
Scena ioDiag am
p e mi e c ea una ep esen acion isual
de un escena io. Las p opiedades esp eccas de
S cena ioD iag am
son:
Ins anceViews
La coleccion de is as de ins ancias p e enecien es al diag ama.
Ylosme o dos esp eccos 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 coleccion 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
dene las p opiedades y me o dos que p e mi en la manipulacion 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 maquina de es ados que con iene el diag ama de es ados.
Ylosme o dos esp eccos 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 cacion de las clases y ob je os en modulos. Las p opie-
dades esp eccas de
M odul eD iag am
son:
Pa en Subsys em
El subsis ema que con iene el modulo. Siemp e hace e e encia a un ob je o
S ubsy s em
alido.
Ylosme o dos esp eccos de
M odul eD iag am
son:
AddMo dule
A~nadi unmodulo al diag ama de modulos.
AddSubsys em
A~nadi un subsis ema al diag ama de modulos.
Ge Mo dules
Ob ene la coleccion que con iene o dos los modulos p e enecien es al diag ama
de modulos.
Ge Selec edMo dules
Ob ene los modulos ac ualmen e seleccionados en el diag ama de modulos.
Ge Selec edSubsys ems
Ob ene los susbsis emas ac ualmen e seleccionados en el diag ama
de modulos.
Ge Subsys ems
Ob ene la coleccion que con iene o dos los subsis emas que p e enecen al
diag ama de modulo.
Un diag ama de despliegue es la ep esen acion isual de los disp osi i os yp o cesado es
sicos. La clase
Deploymen Diag am
o ece las siguien es me o dos esp eccos:
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 logicas 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 deni y manipula colecciones logicas de clases. Las p opiedades
esp ecicas de la clase
C a ego y
son:
Asso cia ions
La coleccion de o das las aso ciaciones que p e enecen a la ca ego a.
Ca ego ies
La coleccion de las ca ego as que son hijas de las ca ego a.
ClassDiag ams
La coleccion 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 coleccion de las clases que p e enecen a la ca ego a.
Global
Iden ica 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 coleccion de los diag amas de escena io que p e enecen a la ca ego a.
UseCases
La coleccion que con iene los casos de uso que p e enecen a la ca ego a.
Ylosme o dos esp eccos 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 coleccion 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 coleccion 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 az.
La clase
Class
pe mi e es ablece y ob ene las ca ac e s icas y elaciones de las clases
esp eccas 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 eccas de la clase
C l ass
son:
Pa en Ca ego y
La ca ego a que con iene la clase.
Abs ac
Iden ica la clase como abs ac a.
A ibu es
La coleccion que con iene los a ibu os de la clase.
Op e a ions
La coleccion 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 ica 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 ica la clase como un ip o undamen al.
S a eMachine
La maquina de es ado que p e enece a la clase.
Pa en Class
La clase pad e de es a clase.
Ylosme o dos esp eccos de la clase
Class
son:
AddAssignedMo dule
Asigna un modulo (comp onen e) a la clase.
AddAsso cia ion
A~nadi una aso ciacion (
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 egacion (
H asR el a ionship
) a una clase.
AddInhe i Rel
A~nadi una elacion 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 acion a una clase.
AddRealizeRel
A~nadi una elacion de ealizacion a una clase.
C ea eS a eMachine
C ea una maquina de es ado pa a una clase.
Dele eAsso cia ion
Elimina una aso ciacion 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 egacion de una clase.
Dele eInhe i Rel
Elimina una elacion 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 acion de una clase.
Dele eRealizeRel
Elimina una elacion de ealizacion de una clase.
Dele eS a eMachine
Elimina la maquina de es ados de la clase del mo delo.
Ge AssignedLanguage
Ob ene el nomb e del lengua je de p og amacion asignado a la clase.
Ge AssignedMo dules
Ob ene los modulos 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 coleccion 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 ciacion pa a una clase de enlace (
Link
).
Ge Nes edClasses
Ob ene las clases anidadas en la clase.
Ge RealizeRela ions
Ob ene la coleccion de elaciones de ealizacion 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 asignacion de modulo 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 deni y manipula el ama ~no y p osicion de un
RoseI em
en un diag ama. Las p opiedades esp ecicas 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 coleccion 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 lnea de la is a a o jo.
LineColo .G een
Es ablece el colo de lnea de la is a a e de.
LineColo .Blue
Es ablece el colo de lnea 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 amacion asignado al modulo.
Decla a ions
La coleccion de decla aciones co esp ondien es al modulo.
O he Pa
La segunda pa e del modulo cuando o ma pa e de un subsis ema.
Pa en SubSys em
El subsis ema que con iene el modulo.
Pa
Si el modulo es pa e de un subsis ema o no.
Pa h
El di ec o io donde se encuen a el modulo.
Typ e
El ip o del modulo.
Ylosme o dos esp eccos de
M odul e
son:
AddRealizeRel
A~nadi una elacion de ealizacion a un modulo.
AddVisibili yRela ionship
C ea una nue a elacion de isibilidad y a ~nadi la a un modulo.
Dele eRealizeRel
Elimina una elacion de ealizacion de un modulo.
Dele eVisibili yRela ionship
Elimina una elacion de isibilidad de un modulo.
Ge AllDep endencies
Ob ene o dos los modulos que a ec an al modulo.
Ge AssignedClasses
Ob ene la coleccion de clases asignadas al modulo.
Ge Dep endencies
Ob ene la coleccion de modulos incluidos en el modulo.
Ge RealizeRela ions
Ob ene la coleccion de elaciones de ealizacion p e enecien es a un
modulo.
Ge Subsys emDep endencies
Ob ene la coleccion de elaciones de isibilidad en e un modulo
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 logicas 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 me o dos p e mi en esp ecica y ob ene la in o macion sob e los ex emos
de las elaciones en el mo delo. Las p opiedades esp eccas de la clase
Rel a ion
son:
Supplie Name
El nomb e del ex emo suminis ado de la elacion.
Ylosme o dos esp eccos de la clase
Rel a ion
son:
HasClien
De e mina si la elacion iene una pa e clien e.
HasSupplie
De e mina si la elacion 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 elacion.
Ge Supplie
Ob ene el ob je o
RoseI em
que ac ua como suminis ado de la elacion.
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 oposi 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 me 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 eccas 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 ciacion 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
publicos.
Con ainmen
La elacion 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 coleccion de cla es co esp ondien es al ol.
Ylosme o dos esp eccos 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 deni 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 me o dos esp eccos de
C l assR el a ion
son:
Ge Con ex Class
Ob ene la clase clien e de la elacion.
Ge Supplie Class
Ob ene la clase suminis ado a de la elacion.
La elacion de he encia indica una elacion 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 me o dos pa a de e mina las ca ac e s icas de la elacion de he encia.
Las p opiedades esp eccas de
I nhe i Rel a ion
son:
Exp o Con ol
La isibilidad de la elacion de he encia.
F iendshipRequi ed
Si la p opiedad
F iend
es eque ida p o la elacion de he encia.
Vi ual
Si la elacion es i ual o no.
La elacion
Has
" indica una elacion con enedo a o ag egado en e clases. La clase
Has-
Rela ionship
exp one un conjun o de p opiedades y me 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 eccas de
H asR el a ionship
son:
Clien Ca dinali y
La ca dinalidad del clien e de la elacion.
Con ainmen
El con enedo de clase pa a la elacion.
Exp o Con ol
La isibilidad de la elacion.
S a ic
Si la elacion es es a ica o no.
Supplie Ca dinali y
La ca dinalidad del suminis ado de la elacion.
La clase
ClassDependency
exp one un conjun o de p opiedades y me 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 eccas 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 elacion de ealizacion en e una clase logica y una clase comp onen e mues a que la
clase comp onen e ealiza las op e aciones denidas p o la clase logica. Los me o dos esp eccos
de clase
RealizeRela ion
son:
Ge Con ex Class
Ob ene la clase clien e de la elacion.
Ge Con ex Comp onen
Ob ene el comp onen e clien e de la elacion.
Ge Supplie Class
Ob ene la clase suminis ado a de la elacion.
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 elacion.
La clase
ModuleVisibili yRela ionship
desc ib e el clien e y suminis ado de una elacion
en e modulos. Las p opiedades esp eccas de
M odul eV isibil i y Rel a ionship
son:
Con ex Mo dule
El nomb e del modulo clien e de la elacion.
Con ex Subsys em
El nomb e del subsis ema clien e de la elacion.
Supplie Mo dule
El nomb e del modulo suminis ado de la elacion.
Supplie Subsys em
El nomb e del subsis ema sumnis ado de la elacion.
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
ambien he eda de la clase
Rel a ion
p o que se conside a que una ansicion es una elacion
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 me 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 eccas de
O bj ec I ns ance
son:
ClassName
El nomb e de la clase del ob je o.
Links
La coleccion 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.
Ylosme o dos esp eccos 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 ciacion, de la misma mane a que un ob je o es una ins ancia de una clase.
Las p opiedades y me odosdelaclase
Link
p e mi en deni enlaces en e ob je os y de e mina
la na u aleza de las aso ciaciones. Las p opiedades esp eccas de
Link
son:
LinkRole1
Dene una ins ancia de ob je o como un enlace en
Role
1.
LinkRole2
Dene una ins ancia de ob je o como un enlace en
Role
2.
LinkRole1Sha ed
Dene una ins ancia de ob je o como un enlace en
Role
1con isibilidad
compa ida.
LinkRole2Sha ed
Dene una ins ancia de ob je o como un enlace en
Role
2con isibilidad
compa ida.
LinkRole1Visibili y
Dene una ins ancia de ob je o como un enlace en
Role
1 y de e mina su
ip o de isibilidad.
LinkRole2Visibili y
Dene una ins ancia de ob je o como un enlace en
Role
2 y de e mina su
ip o de isibilidad.
Ylosme o dos esp eccos de
Link
son:
AddMessageTo
A~nadi un mensa je al enlace.
AssignAsso cia ion
Asigna una aso ciacion 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 asignacion de aso ciacion del enlace.
Los mensa jes denen la in e accion en e los ob je os. La clase
Message
o ece p opiedades
y me 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 macion
esp ecca del mismo. Las p opiedades esp eccas de
M essag e
son:
F equency
La ecuencia del mensa je (si el mensa je es en iado solo una ez o p e iodicamen e).
Synch oniza ion
La seman ica de concu encia del mensa je.
Ylosme o dos esp eccos de
M essag e
son:
Ge Sende Ob jec
Ob ene el ob je o que en ioelmensaje.
Ge Recei e Ob jec
Ob ene el ob je o que ecibio 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 acion o no.
67
Ge Op e a ion
La op e acion aso ciada con el mensa je.
Ge Link
Ob ene el enlace aso ciado con el mensa je.
La clase
Pe sis ence
dene los alo es po de ec o pa a la p e sis encia de ob je os. Las
p opiedades esp eccas 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 ansicion de ob je os.
La clase
Synch oniza ion
dene los alo es p o de ec o pa a la sinc onizacion de ob je os.
Las p opiedades esp eccas de
S y nch oniz a ion
son:
Asynch onous
Dene el alo p o de ec o pa a los mensa jes asnc onos.
Balking
Dene el alo p o de ec o pa a los mensa jes
B al k ing
".
Simple
Dene el alo p o de ec o pa a los mensa jes simples.
Synch onous
Dene el alo p o de ec o pa a los mensa jes snc onos.
Timeou
Dene el alo p o de ec o pa a los mensa jes
T imeou
".
La clase
F equency
dene 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 iodicos.
Pe io dic
El alo p o de ec o pa a los mensa jes p e iodicos.
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 ansicion de es ado. Las p opiedades y me o dos
de la clase
E en
denen 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 eccas de
E en
son:
A gumen s
Las condiciones que a ec an al e en o.
Gua dCondi ion
Dene una condicion 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.
Yelme o do esp ecco de
E en
es:
Ge Ac ion
Ob ene la accion 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 macion sob e el es ado de los ob je os de una
de e minada clase. La maquina de es ado de una clase dene o dos los posibles es ados y
ansiciones pa a esa clase. Una clase puede ene o no una maquina de es ado y una maquina
de es ado solo puede p e enece a una clase. Las p opiedades esp ecca de
S a eM achine
son:
Diag am
El diag ama de es ados que con iene la maquina de es ados.
Pa en Class
La clase a la que p e enece la maquina de es ados.
S a es
La coleccion de es ados de la maquina de es ados.
Ylosme o dos esp eccos de
S a eM achine
son:
AddS a e
A~nadi un es ado a una maquina de es ados.
Dele eS a e
Elimina un es ado de una maquina de es ados.
Ge AllS a es
Ob ene o dos los es ados de una maquina de es ados.
Ge AllT ansi ions
Ob ene o das las ansiciones de una maquina de es ados.
Ge T ansi ions
Ob ene la coleccion de ansiciones de una maquina de es ados.
Relo ca eS a e
Recolo ca un es ado en una maquina 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 aun no ha llegado a su
es ado des ino. Los me o dos esp eccos de
T ansi ion
son:
Ge SendAc ion
Ob ene el mensa je a en ia cuando la ansicion o cu e.
Ge Sou ceS a e
Ob ene el es ado inicial de la ansicion.
Ge Ta ge S a e
Ob ene el es ado des ino de la ansicion.
69
Ge T igge Ac ion
Ob ene la accion a ealiza cuando el e en o dispa ado de la ansicion
o cu a.
Ge T igge E en
Ob ene el e en o que dispa a la ansicion.
Redi ec To
Redi ecciona la ansicionaunnue o es ado des ino.
Una accion es una op e acion que es a aso ciada a una ansicion, 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 accion.
Ta ge
El ob je o des ino de la accion.
La clase
S a e
esp ecica el conjun o de p opiedades y me o dos que con olan la in o macion
sob e el es ado de los ob je os de un mo delo. Las p opiedades esp eccasdelaclase
S a e
son:
His o y
Esp ecica a que 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 maquina 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 denidas pa a el es ado.
Ylosme o dos esp eccos de
S a e
son:
AddDoAc ion
A~nadi una accion (
Do
") a un es ado.
AddEn yAc ion
A~nadi una accion de en ada (la p ime a ez) a un es ado
AddExi Ac ion
A~nadi una accion 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 ansicion a un es ado.
AddUse DenedE en
A~nadi un e en o denido p o el usua io a un es ado.
Dele eAc ion
Elimina una accion de un es ado.
Dele eS a e
Elimina un sub es ado de un es ado.
Dele eT ansi ion
Elimina una ansicion de un es ado.
Dele eUse DenedE en
Elimina un e en o denido 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 DenedE en s
Ob ene los e en os denidos 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 me o dos que p e mi en deni 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 eccas de
U seC ase
son:
Abs ac
Si el caso de uso es una clase abs ac a ono.
ClassDiag ams
La coleccion 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 coleccion de diag amas de escena ios co esp ondien es al caso de uso.
S a eMachine
La maquina de es ado co esp ondien e al caso de uso.
Ylosme o dos esp eccos de
U seC ase
son:
AddAsso cia ion
A~nadi una aso ciacion 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 elacion 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 ciacion 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 elacion 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 coleccion de elaciones de he encia de un caso de uso.
Ge Roles
Ob ene la coleccion 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 inuacion se mues an los paque es en la is a logica 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 uncion
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 denicion 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
denido p o el usua io.
De aul Bu on
Un en e o que esp ecica que 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 ica el b o on.
El alo p o de ec o es
;
1 (Bo on
OK
).
Timeou
Un en e o que esp ecica el n ume o de milisegundos pa a isualiza o mula io an es
de que au oma icamen e se qui e. El alo po de ec o es 0 (solo se qui a a as una
p e icion explci 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 aca.''
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 uncion
Dialog
Tambien se puede u iliza la uncion
Dialog
que isualiza un o mula io denido p o el usua io.
La uncion de uel eunen e o que ep esen a al b o on que se pulso pa a sali :
-1
El b o on
OK
ue pulsado.
0
El b o on
C ancel
ue pulsado.
>
0
Se pulso 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 dialogo.
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 aca.''
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 dialogo p edenidas
Answe Box
Mues a un mensa je y esp e a aque el usua io de una espues a, de ol iendo un
en e o indicando que b o on pulso 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 solo se isualizan as e iscos cuando
el usua io in o duzca los da os, p e mi iendo aslaen ada de cla es.
Inpu Box, Inpu Bo
x$
Mues a una en ana de dialogo con un con ol de edicion 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 dialogo con un conjun o de b o ones p e-
denidos. 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 dialogo pa a ab i un che o.
Sa eFilename$
Mues a una en ana de dialogo pa a gua da un che o.
Selec Box
Mues a una en ana de dialogo 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 Me o dos y unciones sob e los con oles de los o mula ios
4.4.1 Me o dos
Ac i a eCon ol
Colo ca el o co en el con ol esp ecicado.
DlgCap ion
Cambiael ulodela en ana de dialogo ac ual.
DlgEnable
Habili a/deshabili a el con ol esp ecicado.
DlgFocus
Colo ca el o co en el con ol esp ecicado.
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 ecicado. 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 ecicado.
Selec Bu on
Simula la pulsacion 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 cion de la en ana.
4.4.2 Funciones
Bu onEnabled
De uel e
T ue
si el b o on esp ecicado 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 ecicado 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 icacion esp ecicado 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 icacion esp ecicado 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 ecicada del o mula io ac i o
es a habili ada.
ComboBoxExis s
De uel e
T ue
si la lis a combinada esp ecicada 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 ecicado al y como
apa ece en la plan illa del o mula io.
DlgEnable
De uel e
T ue
si el con ol esp ecicado 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 ecicado.
DlgValue
De uel e un en e o que ep esen a el alo del con ol esp ecicado. 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 ecicado es a isible.
Edi Enable
De uel e
T ue
si el con ol de edicion de ex os esp ecicado 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 edicion de ex os esp ecicado 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 icacion 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 nume o de elemen os en la
lis a combinada esp ecicada.
Ge Edi Tex $
De uel e una cadena que es el con enido del con ol de edicion de ex os es-
p ecicado.
Ge Lis BoxI em$
De uel e una cadena que con iene el elemen o esp ecicado en una lis a.
Ge Lis BoxI emCoun
De uel e un en e o que con iene el nume o de elemen os en la lis a
esp ecicada.
Ge Op ion
De uel e
T ue
si el b o on de op cion esp ecicado es a ac i o.
Lis BoxEnabled
De uel e
T ue
si la lis a esp ecicada 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 ecicada 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 ecicado exis e y su con ol de
e icacion es aac i o.
MenuI emEnabled
De uel e
T ue
si el elemen o de men u esp ecicado exis e y es a habili-
ado.
MenuI emExis s
De uel e
T ue
si el elemen o de men u esp ecicado exis e.
Op ionEnabled
De uel e
T ue
si el b o on de op cion esp ecicado 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 cion esp ecicado 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 ecicados, 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 accion sob e un o mula io,
BasicSc ip
llama a una
uncion esp ecial que iene aso ciada y que ges iona a el p o cesamien o de al accion. La sin axis
pa a deni es a uncion 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 uncion 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 dene. Los pa ame os que ecib e la uncion 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 accion p o la que se llamo a la uncion.
SuppValue
En e o que con iene in o macion ex a aso ciada con dic
ha accion.
Cuando
BasicSc ip
isualiza un o mula io se p o ducen di e sos e en os debidos a la
in e accion con el usua io: pulsacion de b o ones, in o duccion de ex os p o el eclado, seleccion
de elemen os de una lis a y o os. Cuando se p o ducen es as acciones,
BasicSc ip
llama a la
uncion aso ciada al o mula io, pasandole como pa ame os: la accion que ha o cu ido, el nomb e
del con ol y o a in o macion ele an e. La siguien e abla desc ib e las di e en es acciones que
se pueden en ia a una uncion de o mula io:
1
Es a accion 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 ilizacion del o mula io. Los demas
pa ame os no son signica i os y se igno a ael alo esul ado de uel o p o la uncion.
2
Es a accion 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 indenido si es o o
b o on. Si la uncion de uel e 0 como espues a en onces el o mula io se a ce ado.
Se ha mo dicado el es ado de un con ol de e icacion. En es e caso,
Con olN ame
$
con end asunomb e y
SuppV alue
el nue oes ado(1siac i oo 0 si desac i o).
Se ha seleccionado un b o on de op cion. 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 seleccion 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 accion es en iada cuando el con enido de un con ol de edicion de ex o o una lis a
combinada ha sido mo dicado. Es a accion solo 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 uncion es igno ado.
4
Es a accion 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 dio el o co (que empieza en 0). El
alo que de uel e la uncion es igno ado.
83
5
Es a accion es en iada con inuamen e cuando un o mula io es a inac i o. Si la uncion
de uel e 1 en espues a, en onces la accion inac i idad" ol e aase en iada. Pe o si la
uncion de uel e0, en onces la accion 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 accion es en iada cuando se mue eel o mula io. En es e caso, los pa ame os no son
signica i os y se igno a ael alo de uel o p o la uncion.
La uncion de un o mula io no puede deni o os o mula ios, aunque s p o d a in
o ca
cualquie cuad o de dialogo p edenido ( 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 manipulacion de los con oles del o mula io de una mane a dinamica. 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 cion cuando un con ol
de e icacion 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 ion de e o es
5.1 In o duccion
BasciSc ip
o ece un me o do pa a p o cesa de mane a adecuada los e o es que ocu en en
iemp o de ejecucion.
5.1.1 Denicion del ges o de e o es
Una plan illa gene ica pa a la denicion 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
'Codigo de la uncion.
Exi Sub
ca ch:
'Codigo del P o cesamien o del E o .
End Sub
B e emen e, la lnea de ejecucion ejecu a el codigo del algo i mo y si o cu e un e o , en onces
la lnea de ejecucion se anse e al codigo 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
dene la accion a lle a a cab o cuando o cu e un e o cap u able en
iemp o de ejecucion. 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
anse e la lnea de ejecucion ala e ique a esp ecicada
cuando o cu e un e o . La o ma
O n E o Resume N ex
ue za la con inuacion de la ejecucion
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 cual ue la condicion que causo
el e o y con inua la ejecucion con la sen encia
Resume
pa a einicia el ges o de e o es,
ans iendo la ejecucion 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 ejecucion del p og ama
con inua en una seccion esp ecca 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 ejecucion 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 oduzcaunnume 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 ejecucion del p og ama en la
x% = a% * b% 'siguien e lnea 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 ejecucion llega a una sen encia
On E o
o
Resume
.
Se asigna
;
1a
E :N umbe
.
Se llama al me o do
E :C l ea
.
La ejecucion 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 ejecucion o cu e un e o y no hay denido 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 llamo 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 mas 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 eniendose la ejecucion del
sc ip
.
5.2 El ob je o p edenido
E
Es e ob je o iene las siguien es p opiedades:
E .Desc ip ion
Es ablece u ob iene la desc ip cion del e o .
E .HelpCon ex
Es ablece u ob iene el iden icado de con ex o en la ayuda pa a con-
segui mas in o macion 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 -
macion 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 ejecucion.
Y o ece los siguien es me o dos:
E .Clea
Inicializa las p opiedades del ob je o
E
.Es o se ealiza au oma 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 ejecucion, 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 cion del e o , el che o de ayuda con in o macion sob e el
e o y el con ex o den o de la ayuda.
5.3 Funciones pa a la ges ion de e o es
Algunas unciones que an a ayuda pa a ges iona los e o es son:
E l
De uel eelnume odelnea (den o del
sc ip
) del e o mas 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 mas ecien e.
IsE o
De uel e
T ue
si la exp esion es un alo de e o denido p o el usua io.
87
5.4 Compa ibilidad con
Visual Basic
BasicSc ip
iene los mismos codigos 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 uncion
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 denidos p o el usua io (
1000).
5.5 O os ejemplos sob e la ges ion de e o es
Mues an es ip os de ges ion de un e o . El p ime caso simplemen e igno a el e o cap u ado
ycon inua la ejecucion 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 ejecucion del p og ama. El e ce
caso einicia el ges o , p o lo que la ejecucion 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 inuacion.''
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 ecicada.
S Comp
Compa acion de cadenas.
S Con
Con ie e la cadena esp ecicada seg un un pa ame o de con e sion: mayusculas,
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 ecicado.
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 mayusculas.
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 ecicado.
Wo dCoun
De uel eunen e o que ep esen a el n ume o de palab as en el ex o esp ecicado.
Algunas unciones sob e los ipos:
CBo ol
Con ie e una exp esion al ip o
B ool ean
.
CCu
Con ie e una exp esion al ip o
C u ency
.
CDa e, CVDa e
Con ie e una exp esion al ip o
D a e
.
CDbl
Con ie e una exp esion al ip o
Double
.
CIn
Con ie e una exp esion al ip o
I n eg e
.
CLng
Con ie e una exp esion al ip o
Long
.
CSng
Con ie e una exp esion al ip o
S ing l e
.
CS
Con ie e una exp esion al ip o
S ing
.
CVa
Con ie e una exp esion al ip o
Va ian
.
CVE
Con ie e una exp esion en un n ume o de e o denido p o el usua io.
IsDa e
De uel e
T ue
si la exp esion 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 esion 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 ecicada.
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 ecicado. Es a uncion es muy u il pa a de e mina el ip o de los ob je os de au oma-
izacion
OLE
.
Val
Con ie e una de e minada exp esion 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 ecicada.
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 ads 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 Congu acion de op ciones
La sen encia
O p ion
congu 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 uncion.
El lmi e in e io de los a ays
Po de ec o, el lmi 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 acion 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 acion es sensi i a a las mayusculas). Se puede cambia al mo do
Tex
(la compa acion
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 acion sensi i aa mayusculas.
96
Sub Compa aSensi i a
a$ = ``Es a Cadena Con iene MAY
USCULAS.''
b$ = ``es a cadena con iene mayusculas.''
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 acion no sensi i aamayusculas.
Sub Compa aNoSensi i a
a$ = ``Es a Cadena Con iene MAY
USCULAS.''
b$ = ``es a cadena con iene mayusculas.''
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 denida p e iamen e.
Compa aNoSensi i a 'Llama a la sub u ina denida p e iamen e.
End Sub
Las cadenas de escap e al es ilo de sc C
Habili a o deshabili a la u ilizacion 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 cion 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 lnea.
n
n
nSegunda lnea.''
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 ecica. Po de ec o,
es e ip o es
V a ian
. Ac ualmen e, solo se puede esp ecica
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 acion implci a
Se u iliza pa a p e eni la decla acion implci 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 me o dos de los ob je os p edenidos
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 aca si la a qui ec u a no puede se de e minada.
Basic.CodePage
Un en e o que ep esen a la pagina de codigos de ca ac e es lo cal.
Basic.Eoln
$
Una cadena que con iene la secuencia de n de lnea 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 nume 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 mas 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 dinamicos.
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 macion del en o no lo cal donde se es a
ejecu ando
BasicSc ip
: o ma os de echa y ho a, congu acion dep endien e del pas y
analogos.
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 sion 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 eacion 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 aca 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 sion de
BasicSc ip
en el o ma o
maj o :mino :B uil dN umbe
.
Me o dos
El me o do
Basic.Capabili y
de uel e
T ue
si pla a o ma ac ual admi e la capacidad que se
esp ecica (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 solo 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
, pasandola 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 mome o de una
en ana de mensa je (abie a p e iamen e con el me 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 .
Me o dos
Los siguien es me o dos son esp eccos pa a Windows.
Msg.Open
Mues a una en ana de mensa je con un b o on de cancelacion y un e mome 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 cancelacion, si apa ece el e mome o y la p osicion
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 cancelacion, expi e el iemp o indicado o se ejecu e el me o do
Msg:Close
. Solo
pod a hab e uno de es os mensa jes al mismo iemp o y se qui a aau oma icamen e cuando
e mine el
sc ip
. Hay que llama p e iodicamen 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
cancelacion.
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 sion pxeles/uni-
dades de dialogo en el eje ho izon al. Es e alo dep ende a de la uen e u ilizada en las
en anas de dialogo. Pa a pasa de pxeles 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 pxeles:
(
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 sion pxeles/uni-
dades de dialogo en el eje e ical. Es e alo dep ende a de la uen e u ilizada en las
en anas de dialogo. Pa a pasa de pxeles 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 pxeles:
(
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 pxeles de la pan alla. Es una
p opiedad de solo lec u a.
Sc een.TwipsPe PixelX
Un en e o que ep esen a el nume o de
wips
po pxel en el
eje ho izon al del disp osi i ode pan alla ins alado. La p opiedad es de solo lec u a.
100
Sc een.TwipsPe PixelY
Un en e o que ep esen a el nume o de
wips
po pxel en el
eje e ical del disp osi i ode pan alla ins alado. La p opiedad es de solo lec u a.
Sc een.Wid h
Un en e o que ep esen a la anchu a en pxeles de la pan alla. Es una
p opiedad de solo lec u a.
6.3.5 El ob je o
Sys em
P opiedades
To das ellas son esp eccas 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 sion del sis ema op e a i o.
6.3.6 El ob je o
Clipboa d
Me 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 ecicado (pasado como pa ame o) en el p o apa-
p eles.
6.3.7 El ob je o
Desk op
Me o dos
Los siguien es me o dos son esp eccos 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 edenido
(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 ecicado (que
se pasa como pa ame o).
101
Desk op.Snapsho
Toma una seccion 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
Me o dos
Los siguien es me o dos son esp eccos pa a Windows.
Ne .CancelCon
Cancela una conexion de ed.
Ne .Dialog
Visualiza una en ana de dialogo que p e mi e congu 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 macion (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 macion sob e el usua io conec ado a la ed.
6.3.9 El ob je o
Viewpo
Me o dos
Los siguien es me o dos son esp eccos 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 macion. Acep a como
pa ame os el ulo de la en ana, la p osicion y el ama ~no. En combinacion con la sen-
encia
P in
, es as en anas son ap opiadas pa a la salida de in o macion de depu acion.
Es a en ana se cie a au oma icamen e cuando la aplicacion que la ab io e mina. Solo
se puede ene una en ana abie a cada ez. El ama ~no maximo del bu.e que iene
aso ciado es de 32K., po lo que la in o macion 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
Dene 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 esion 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 inclusion o exclusion de secciones del codigo basandose 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 esion ep esen a cualquie exp esion 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 denidas con #
Cons
o alguna
de las cons an es p edenidas 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 denida 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 sion descono cida.''
#End I
End Sub
Una u ilizacion habi ual de es a di ec i a es la inclusion op cional de sen encias de depu-
acion en el codigo. El siguien e ejemplo mues a como se puede depu a el codigo si se incluye
condicionalmen e el chequeo de pa ame os a una uncion:
#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 eccas de
la pla a o ma, po lo que end emos que esc ibi el codigo adecuado pa a cada una de ellas,
p o duciendo un codigo 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