Você está na página 1de 19

Tutorial

domingo, 28 de agosto de 2005


Pgina 1 de 11
Harbour MiniGUI - Tutorial

( Hay documentos de gua de Referencia en Espaol y en Ingls, para los usuarios registrados en el apartado
de Descargas
El Primer Programa
!o sere muy original, este programa desplegar el mensa"e #Hola $undo# %
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H 211 .
HEI3H0 411 .
0I05E #0utor 11 6 Hola $undo7# .
$/I!
E!D +I!D,+
/80I9/0E +I!D,+ +in-1
Return
El comando DE*I!E +I!D,+% 8rear la :entana principal para el programa
NI!E E "#T!U$%&
Tutorial
P'gina 2
P'gina (
P'gina )
P'gina 5
P'gina *
P'gina +
P'gina 8
P'gina ,
P'gina -0
P'gina --
+in-1% Es el nom;re de la :entana
/t 1,1% Indica la posici<n de la :entana (ro=>1,col>1
+ID0H 211% ?ignifica @ue la :entana tendr 211 piAels de anc)o(
HEI3H0 411%?ignifica @ue la :entana tendr 411 piAels de alto(
0I05E #Hola el $undo7 #% Indica el teAto en la ;arra de ttulo de la :entana(
$/I!% Indica @ue estamos definiendo la :entana principal de la aplicaci<n (una :entana principal se
re@uiere para todas las aplicaciones Har;our $ini3BI
/80I9/0E +I!D,+ *orm-1% $uestrar la :entana e iniciar el ciclo de e:entos(
Pgina 4 de 11
$a .orma Tradi/ional
El /om0ortamiento o a0arien/ia de una 1entana o /ontrol, 0odr2a /ambiarse /on un /omando al estilo
34ase 5M%I.67
En el siguiente e8em0lo, si 9uiere /ambiarse el t2tulo de la 1entana, 0odr2a usarse el siguiente /omando:
M%I.6 ;IN%; ;in<- TIT$E =Ne> Title=
Para obtener el t2tulo de la 1entana:
.ET!H ;IN%; ;in<- TIT$E T% /?ar
$a .orma &emi-%%P
Para @a/er lo mismo 0uede usarse la siguiente sinta3is semi-oo0:
;in<-ATitle :B =Ne> Title=
/?ar :B ;in<-ATitle
"gregando El MenC Prin/i0al
/gregaremos un menC principal al programa%
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H 211 .
HEI3H0 411 .
0I05E #0utor 14 6 Property 0est# .
$/I!
DE*I!E $/I! $E!B
P,PBP '*irst Popup'
I0E$ #8am;iar el 0itulo de la 9entana# /80I,! +in-1(0itle %> #!ue:o 0itulo#
I0E$ #Recuperar el 0itulo de la 9entana# /80I,! $sgInfo ( +in-1(0itle
E!D P,PBP
E!D $E!B
E!D +I!D,+
/80I9/0E +I!D,+ +in-1
Return
8omo puede :erse es ;astante fcil e intuiti:o(
0odo los comandos del menC principal estarn entre las declaraciones DE*I!E $/I! $E!B D E!D $E!B(
8ada popup indi:idual del menC estarn entre las declaraciones P,PBP D E!D P,PBP(
8ada tem de menC se codificar :a la declaraci<n I0E$(
Puede usarse cuantos popups sean necesrios y pueden anidarse sin ningCn lmite(
Pgina E de 11
$a Dun/iEn MsgInDo 57
Fsta es una funci<n muy Ctil( $ostrar una pe@uea :entana de mensa"e (con el cono de informaci<n del
sistema y un mensa"e @ue se le pase como parmetro(
Puede agregar opcionalmente un ttulo (como segundo parmetro
El !ontrol $"4E$
El control 5/GE5 permite mostrar teAto y es muy fcil de utiliHar tam;in(
I 111,11 5/GE5 5a;el-1 9/5BE #Este es un 5a;el7#
I 111,11 significa @ue el teAto sera mostrado en la fila 111 , columna 11 (recordar @ue la unidad de medida es
el piAel
5a;el-1 es el nom;re del control (lo identificaremos por este nom;re
5a clusula 9/5BE indica el :alor inicial del control cuando es creado(
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H 211 .
HEI3H0 411 .
0I05E #0utor 1E 6 5a;el 0est# .
$/I!
I 111,11 5/GE5 5a;el-1 9/5BE #Este es un 5a;el7#
E!D +I!D,+
/80I9/0E +I!D,+ +in-1
Return
%bteniendo datos del usuario 5el /ontrol Te3t4o37
El control 0eAtGoA es el medio ms usado para o;tener datos del usuario(
I 21, 141 0EJ0G,J 0eAt-1,
Para ingresar datos numricos, solo agregarse la clusula !B$ERI8%
I K1, 141 0EJ0G,J 0eAt-4 !B$ERI8
Para indicar un mscara de edici<n, de;e usarse la clusula I!PB0$/?L(
I 141, 141 0EJ0G,J 0eAt-4 I!PB0$/?L MMMM(MM !B$ERI8#
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H 211 .
HEI3H0 E11 .
0I05E #0utor 12 0eAtGoA 0est# .
$/I!
DE*I!E $/I! $E!B
P,PBP '*irst Popup'
I0E$ #8am;iar el contenido del 0eAtGoA # /80I,! +in-1(0eAt-1(9alue %> #nue:o :alor del 0eAtGoA#
I0E$ #Recuperar el contenido del 0eAtGoA # /80I,! $sgInfo ( +in-1(0eAt-1(9alue
?EP/R/0,R
I0E$ #8am;iar el contenido numrico del 0eAtGoA# /80I,! +in-1(0eAt-4(9alue %> 111
I0E$ #Recuperar el contenido numrico del 0eAtGoA# /80I,! $sgInfo ( ?tr(+in-1(0eAt-4(9alue
?EP/R/0,R
I0E$ #8am;iar el contenido numrico del 0eAtGoA(Input$asN# /80I,! +in-1(0eAt-E(9alue %>
14E2(14
I0E$ #Recuperar el contenido numrico del 0eAtGoA(Input$asN# /80I,! $sgInfo
(?tr(+in-1(0eAt-E(9alue
E!D P,PBP
E!D $E!B
I 21 , 141 0EJ0G,J 0eAt-1
I K1 , 141 0EJ0G,J 0eAt-4 !B$ERI8
I 141 , 141 0EJ0G,J 0eAt-E !B$ERI8 I!PB0$/?L #MMMM(MM#
E!D +I!D,+
/80I9/0E +I!D,+ +in-1
Return
%bteniendo atos $Egi/os
/ :eces, es necesario o;tener datos de tipo l<gico del usuario( 5a manera ms fcil de )acerlo es utiliHando el
control c)ecN;oA(
I 1K1, 141 8HE8LG,J 8)ecN-1
5o agregamos al programa, "unto con nue:as opciones de menC para poder asignar o recuperar su :alor
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H 211 .
HEI3H0 E11 .
0I05E #0utor 1O 6 8)ecNGoA 0est# .
$/I!
DE*I!E $/I! $E!B
P,PBP '*irst Popup'
I0E$ #8am;iar el 9alor del 8)ecNGoA # /80I,! +in-1(8)ecN-1(9alue %> (0(
I0E$ #Recuperar el 9alor del 8)ecNGoA # /80I,! $sgInfo ( if(+in-1(8)ecN-1(9alue,#(0(#,#(*(#
E!D P,PBP
E!D $E!B
I 111, 141 8HE8LG,J 8)ecN-1 8/P0I,! #8)ecN $e7#
E!D +I!D,+
/80I9/0E +I!D,+ +in-1
Return
&ele//ionando %0/iones
/ :eces, es necesario o;tener el :alor de una elecci<n de los usuarios, entre un grupo pe@ueo de opciones
@ue son conocidos en el momento del diseo(
5a me"or manera de proceder en tales casos es usar el control Radio3roup(
I K1, 141 R/DI,3R,BP Radio-1 ,P0I,!? P#,ption 1#,#,ption 4#,#,ption E#Q
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H 211 .
HEI3H0 411 .
0I05E #0utor 1R 6 Radio3roup 0est# .
$/I!
DE*I!E $/I! $E!B
P,PBP '*irst Popup'
I0E$ #8)ange Radio3roup 9alue# /80I,! +in-1(Radio-1(9alue %> 4
I0E$ #Retrie:e Radio3roup 9alue# /80I,! $sgInfo ( ?tr(+in-1(Radio-1(9alue
E!D P,PBP
E!D $E!B
I K1, 141 R/DI,3R,BP Radio-1 ,P0I,!? P#,ption 1#,#,ption 4#,#,ption E#Q
E!D +I!D,+
/80I9/0E +I!D,+ +in-1
Return
%tras .ormas de &ele//iEn de %0/iones
Hay :arias alternati:as para o;tener la opci<n de un usuario adems de Radio3roup(
Bno de ellos es el control 5istGoA
I 11, 11 5I?0G,J 5ist-1 I0E$? P#,ption 1#,#,ption 4#,#,ption E#Q
Bsando un 5ist;oA, puede agregarse, cam;iar o @uitar items en tiempo de e"ecuci<n(
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H 211 .
HEI3H0 411 .
0I05E #0utor 1S 6 5istGoA 0est# .
$/I!
DE*I!E $/I! $E!B
P,PBP '*irst Popup'
I0E$ #8)ange 5istGoA 9alue# /80I,! +in-1(5ist-1(9alue %> 4
I0E$ #Retrie:e 5istGoA 9alue# /80I,! $sgInfo ( ?tr(+in-1(5ist-1(9alue
I0E$ #/gregar 5ist Item# /80I,! +in-1(5ist-1(/ddItem (#!e= 5ist Item#
I0E$ #?acar 5ist Item# /80I,! +in-1(5ist-1(DeleteItem (4
I0E$ #8am;iar 5ist Item# /80I,! +in-1(5ist-1(Item (1 %> #!e= Item 0eAt#
I0E$ #$ostrar 8antidad de 5ist Item# /80I,! $sgInfo (?tr(+in-1(5ist-1(Item8ount
E!D P,PBP
E!D $E!B
I 11, 11 5I?0G,J 5ist-1 I0E$? P#,ption 1#,#,ption 4#,#,ption E#Q
E!D +I!D,+
/80I9/0E +I!D,+ +in-1
Return
%tras .ormas de &ele//iEn de %0/iones II
,tro alternati:a para o;tener la opci<n de un usuario es el 8,$G,G,J(
I 11, 11 8,$G,G,J 8om;o-1 I0E$? P#,ption 1#,#,ption 4#,#,ption E#Q
Bsar un 8om;o;oA, es similar al 5istGoA(
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H 211 .
HEI3H0 411 .
0I05E #0utor 1K 6 8om;oGoA 0est# .
$/I!
DE*I!E $/I! $E!B
P,PBP '*irst Popup'
I0E$ #8)ange 8om;oGoA 9alue# /80I,! +in-1(8om;o-1(9alue %> 4
I0E$ #Retrie:e 8om;oGoA 9alue# /80I,! $sgInfo ( ?tr(+in-1(8om;o-1(9alue
?EP/R/0,R
I0E$ #/gragar 8om;o Item# /80I,! +in-1(8om;o-1(/ddItem (#!e= 5ist Item#
I0E$ #?acar 8om;o Item# /80I,! +in-1(8om;o-1(DeleteItem (4
I0E$ #8am;iar 8om;o Item# /80I,! +in-1(8om;o-1(Item (1 %> #!e= Item 0eAt#
I0E$ #$ostar cantidad de 8om;o Item # /80I,! $sgInfo (?tr(+in-1(8om;o-1(Item8ount
E!D P,PBP
E!D $E!B
I 11, 11 8,$G,G,J 8om;o-1 I0E$? P#,ption 1#,#,ption 4#,#,ption E#Q
E!D +I!D,+
/80I9/0E +I!D,+ +in-1
Return
Gotones
,tra manera para permitir @ue los usuarios tomen una acci<n (adems de los menCs es por medio de ;otones(
I 11,11 GB00,! Gutton-1 8/P0I,! #8licN Here7# /80I,! $sgInfo(#Gutton 8licNed7#
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H 211 .
HEI3H0 411 .
0I05E #0utor 1M 6 Gutton 0est# .
$/I!
I 11,11 GB00,! Gutton-1 .
8/P0I,! #8licN Here7# .
/80I,! $sgInfo(#Gutton 8licNeado7#
E!D +I !D,+
/80I9/0E +I!D,+ +in-1
Return
4otones /on Imagen
En lugar de un teAto puede usarse una imagen(
I 11,11 GB00,! PictureGutton-1 .
PI80BRE #;utton(;mp# .
/80I,! $sgInfo(#Picture Gutton 8licNed77# .
+ID0H 4S .
HEI3H0 4S .
0,,50IP #Picture Gutton 0ooltip#
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H 211 .
HEI3H0 411 .
0I05E #0utor 11 6 Picture Gutton 0est# .
$/I!
I 11,11 GB00,! PictureGutton-1 .
PI80BRE #;utton(;mp# .
/80I,! $sgInfo(#Picture Gutton 8licNeado77# .
+ID0H 4S .
HEI3H0 4S .
0,,50IP #Picture Gutton 0ooltip#
E!D +I!D,+
/80I9/0E +I!D,+ +in-1
Return
5a clusula tooltip (optati:a causa @ue una :entana pe@uea con un teAto eAplicati:o se despliegue cuando el
indicador del rat<n se @ueda encima del control por unos segundos( Puede usarse esta clusula con la mayora
de los comandos $ini3BI(
4utton F !@e/Gbo3 B !@e/G4utton
El control 8)ecNGutton, actua como un c)ecN;oA, pero se :e como un ;ot<n( /l igual @ue los ;otones, pueden
ser de teAto o grficos(
I 11,11 8HE8LGB00,! 8)ecNGutton-1.
8/P0I,! #8)ecNGutton# .
9/5BE (*(
I O1,11 8HE8LGB00,! 8)ecNGutton-4.
PI80BRE #,pen(Gmp# .
+ID0H 4S .
HEI3H0 4S .
9/5BE (*( .
0,,50IP #3rap)ical 8)ecNGutton#
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H 211 .
HEI3H0 411 .
0I05E #0utor 11 6 8)ecNGutton 0est# .
$/I!
DE*I!E $/I! $E!B
P,PBP '*irst Popup'
I0E$ #8)ange 0eAt 8)ecNGutton 9alue# /80I,! +in-1(8)ecNGutton-1(9alue %> (0(
I0E$ #Retrie:e 0eAt 8)ecNGutton 9alue# /80I,! $sgInfo (if(+in-1(8)ecNGutton-1(9alue,#(0(#,#(*(#
?EP/R/0,R
I0E$ #8)ange Picture 8)ecNGutton 9alue# /80I,! +in-1(8)ecNGutton-4(9alue %> (0(
I0E$ #Retrie:e Picture 8)ecNGutton 9alue# /80I,! $sgInfo (if(+in-1(8)ecNGutton-4(9alue,#(0(#,#(*(#
E!D P,PBP
E!D $E!B
I 11,11 8HE8LGB00,! 8)ecNGutton-1 .
8/P0I,! #8)ecNGutton# .
9/5BE (*(
I O1,11 8HE8LGB00,! 8)ecNGutton-4 .
PI80BRE #,pen(Gmp# .
+ID0H 4S .
HEI3H0 4S .
9/5BE (*( .
0,,50IP #3rap)ical 8)ecNGutton#
E!D +I!D,+
/80I9/0E +I!D,+ +in-1
Return
El !ontrol atePi/Ger
5a manera ms fcil de o;tener una fec)a del usuario es mediante el control datepicNer(
I 11,11 D/0EPI8LER Date-1
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H 211 .
HEI3H0 411 .
0I05E #0utor 14 6 DatePicNer 0est# .
$/I!
DE*I!E $/I! $E!B
P,PBP '*irst Popup'
I0E$ #8)ange DatePicNer 9alue# /80I,! +in-1(date-1(9alue %> Date(
I0E$ #Retrie:e DatePicNer 9alue# /80I,! $sgInfo ( dtoc(+in-1(Date-1(9alue
E!D P,PBP
E!D $E!B
I 11,11 D/0EPI8LER Date-1
E!D +I!D,+
/80I9/0E +I!D,+ +in-1
Return
El /ontrol Edit4o3
El control EditGoA permite mane"ar datos de teAto de mCltiples lneas(
I 11,11 EDI0G,J Edit-1.
+ID0H E11 .
HEI3H0 1O1
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H 211 .
HEI3H0 E11 .
0I05E #0utor 1E EditGoA 0est# .
$/I!
DE*I!E $/I! $E!B
P,PBP '*irst Popup'
I0E$ #8)ange EditGoA 8ontent# /80I,! +in-1(Edit-1(9alue %> #!e= EditGoA 9alue#
I0E$ #Retrie:e EditGoA 8ontent# /80I,! $sgInfo ( +in-1(Edit-1(9alue
E!D P,PBP
E!D $E!B
I 11,11 EDI0G,J Edit-1 .
+ID0H E11 .
HEI3H0 1O1
E!D +I!D,+
/80I9/0E +I!D,+ +in-1
Return
El !ontrol IM"GE
El control Image permite mostrar imgenes desde arc)i:os (;mp (ico (gif ("pg o (emf
I 11,11 I$/3E Image-1 .
PI80BRE #Demo(Gmp# .
+ID0H M1 .
HEI3H0 M1
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H 211 .
HEI3H0 411 .
0I05E #0utor 12 Image 0est# .
$/I!
DE*I!E $/I! $E!B
P,PBP '*irst Popup'
I0E$ #8)ange Image 8ontent# /80I,! +in-1(Image-1(Picture %> #,pen(Gmp#
I0E$ #Retrie:e Image 8ontent# /80I,! $sgInfo ( +in-1(Image-1(Picture
E!D P,PBP
E!D $E!B
I 11,11 I$/3E Image-1 .
PI80BRE #Demo(Gmp# .
+ID0H M1 .
HEI3H0 M1
E!D +I!D,+
/80I9/0E +I!D,+ +in-1
Return
El !ontrol Progress4ar
El control ProgressGar permite mostrar el estado de e"ecuci<n de una operaci<n
I 11,11 PR,3RE??G/R Progress-1.
R/!3E 1 , ROOEO
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H 211.
HEI3H0 411 .
0I05E #0utor 1O Progress;ar 0est# .
$/I!
DE*I!E $/I! $E!B
P,PBP '*irst Popup'
I0E$ #ProgressGar 0est# /80I,! Do0est(
E!D P,PBP
E!D $E!B
I 11,11 PR,3RE??G/R Progress-1 .
R/!3E 1 , ROOEO
E!D +I!D,+
/80I9/0E +I!D,+ +in-1
Return
Procedure Do0est(
5ocal i
*or i > 1 0o ROOEO ?tep 4O
+in-1(Progress-1(9alue %> i
!eAt i
Return
El !ontrol &0inner
Bna manera alternada de o;tener datos numricos es mediante el control ?pinner( 8onsiste en un teAt;oA con
dos flec)as @ue permiten cam;iar el :alor de los controles usando el rat<n(
I 11,11 ?PI!!ER ?pinner-1 .
R/!3E 1,11 .
9/5BE O .
+ID0H 111
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H 211 .
HEI3H0 411 .
0I05E #0utor 1R ?pinner 0est# .
$/I!
DE*I!E $/I! $E!B
P,PBP '*irst Popup'
I0E$ #8)ange ?pinner 9alue# /80I,! +in-1(?pinner-1(9alue %> K
I0E$ #Retrie:e ?pinner 9alue# /80I,! $sgInfo ( ?tr(+in-1(?pinner-1(9alue
E!D P,PBP
E!D $E!B
I 11,11 ?PI!!ER ?pinner-1 .
R/!3E 1,11 .
9/5BE O .
+ID0H 111
E!D +I!D,+
/80I9/0E +I!D,+ +in-1
Return
El !ontrol T"4
Bsar 0/Gs permite organiHar los controles y a)orar espacio agrupndolos en carpetas(
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H 211 .
HEI3H0 4O1 .
0I05E #0utor 1S 0a; 0est# .
$/I!
DE*I!E $/I! $E!B
P,PBP '*irst Popup'
I0E$ #8)ange 0a; 9alue# /80I,! +in-1(0a;-1(9alue %> 4
I0E$ #Retrie:e 0a; 9alue# /80I,! $sgInfo ( ?tr(+in-1(0a;-1(9alue
E!D P,PBP
E!D $E!B
DE*I!E 0/G 0a;-1 .
/0 11,11 .
+ID0H EO1 .
HEI3H0 1O1
P/3E #Page 1#
I O1,O1 5/GE5 5a;el-1 9/5BE #0)is Is 0)e Page 1#
E!D P/3E
P/3E #Page 4#
I O1,O1 5/GE5 5a;el-4 9/5BE #0)is Is 0)e Page 4#
E!D P/3E
E!D 0/G
E!D +I!D,+
/80I9/0E +I!D,+ +in-1
Return
El 8ontrol 0,,5G/R
5os 0ool;ars se usan para agrupar ;otones de comando en una ;arra @ue se localiHa generalmente en la parte
superior de la :entana (de;a"o de la ;arra de menu(
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H R21 HEI3H0 2K1 .
0I05E #0utor 1K% 0oolGar 0est# .
$/I! .
*,!0 #/rial# ?ITE 11
DE*I!E $/I! $E!B
P,PBP #U*ile#
I0E$ #UDisa;le 0oolGar Gutton# /80I,! +in-1(Gutton-1(Ena;led %> (*(
I0E$ #UEna;le 0oolGar Gutton# /80I,! +in-1(Gutton-1(Ena;led %> (0(
I0E$ #UEAit# /80I,! +in-1(Release
E!D P,PBP
E!D $E!B
DE*I!E 0,,5G/R 0oolGar-1 GB00,!?ITE K1,K1 *5/0 G,RDER
GB00,! Gutton-1 .
8/P0I,! #UGutton U1# .
PI80BRE #;utton1(;mp# .
/80I,! $sgInfo(#8licN7 1#
GB00,! Gutton-4 .
8/P0I,! #UGutton 4# .
PI80BRE #;utton4(;mp# .
/80I,! $sgInfo(#8licN7 4# .
?EP/R/0,R
GB00,! Gutton-E .
8/P0I,! #Gutton UE# .
PI80BRE #;uttonE(;mp# .
/80I,! $sgInfo(#8licN7 E#
E!D 0,,5G/R
E!D +I!D,+
8E!0ER +I!D,+ +in-1
/80I9/0E +I!D,+ +in-1
Return !il
El !ontrol &tatusbar
Este control crea una ;arra en la parte inferior de la :entana, usada generalmente para mostrar informaci<n de
estado(
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H 211 .
HEI3H0 411 .
0I05E #0utor 1M 0a; 0est# .
$/I!
DE*I!E $/I! $E!B
P,PBP #U?tatusGar 0est#
I0E$ #?et ?tatus Item 1# /80I,! *orm-1(?tatusGar(Item(1 %> '!e= :alue 1'
I0E$ #?et ?tatus Item 4# /80I,! *orm-1(?tatusGar(Item(4 %> '!e= :alue 4'
E!D P,PBP
E!D $E!B
DE*I!E ?0/0B?G/R
?0/0B?I0E$ 'Item 1' /80I,! $sgInfo(#8licN7 1#
?0/0B?I0E$ 'Item 4' +ID0H 111 /80I,! $sgInfo(#8licN7 4#
85,8L
D/0E
?0/0B?I0E$ 'Item O' +ID0H 111
E!D ?0/0B?G/R
E!D +I!D,+
/80I9/0E +I!D,+ +in-1
Return
!ontroles de atos I: 4#%;&E
5os controles de datos estn diseados para tra;a"ar con datos en arc)i:os (d;f directamente(
El control Gro=se, permite mostrar o editar registros de ;ases de datos en forma ta;ular( 5a propiedad #:alue# se
usa para esta;lecer u o;tener el nCmero de registro seleccionado (recno((
Por defecto, el control Gro=se, no cam;ia el puntero de registro en su rea de tra;a"o(
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H R21 HEI3H0 2K1 .
0I05E #0utor 41% GR,+?E 0est# .
$/I! !,$/JI$ITE .
,! I!I0 ,pen0a;les( .
,! RE5E/?E 8lose0a;les(
DE*I!E $/I! $E!B
P,PBP #*ile#
I0E$ #?et Gro=se 9alue# /80I,! +in-1(Gro=se-1(9alue %> 9al ( InputGoA (#?et Gro=se 9alue#,##
I0E$ #3et Gro=se 9alue# /80I,! $sgInfo ( ?tr ( +in-1(Gro=se-1(9alue
?EP/R/0,R
I0E$ #EAit# /80I,! +in-1(Release
E!D P,PBP
P,PBP #Help#
I0E$ #/;out# /80I,! $sgInfo ('0utor 41% GR,+?E 0est'
E!D P,PBP
E!D $E!B
I 11,11 GR,+?E Gro=se-1 .
+ID0H R11 .
HEI3H0 EM1 .
HE/DER? P #8ode# , #*irst !ame# , #5ast !ame#, #Girt) Date#, #$arried# , #Giograp)y# Q .
+ID0H? P 1O1 , 1O1 , 1O1 , 1O1 , 1O1 , 1O1 Q .
+,RL/RE/ 0est .
*IE5D? P #0est6V8ode# , #0est6V*irst# , #0est6V5ast# , #0est6VGirt)# , #0est6V$arried# , #0est6VGio# Q .
DE5E0E .
5,8L .
EDI0 I!P5/8E
E!D +I!D,+
8E!0ER +I!D,+ +in-1
/80I9/0E +I!D,+ +in-1
Return !il
Procedure ,pen0a;les(
Bse 0est
+in-1(Gro=se-1(9alue %> Rec!o(
Return !il
Procedure 8lose0a;les(
Bse
Return !il
8ontroles de Datos II% 0EJ0G,J, D/0EPI8LER, 8HE8LG,J, EDI0G,J
5as :ersiones de estos controles para el mane"o directo de datos almacenados en arc)i:os (d;f, re@uiere el uso
de las siguientes propiedades y mtodos%
Propiedad '*ield'%Esta;lece el campo al cual el control est enlaHado(
$todo 'Refres)' % /ctualiHa el contenido del control ;asndose en el contenido actual del campo(
$todo '?a:e'% /ctualiHa el arc)i:o de ;ase de datos de acuerdo al contenido del control(
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H R21 .
HEI3H0 2K1 .
0I05E #0utor 41% Data6Gound 8ontrols 0est# .
$/I! .
,! I!I0 ,pen0a;les( .
,! RE5E/?E 8lose0a;les(
DE*I!E 0,,5G/R 0oolGar-1 GB00,!?ITE 111,E1 *5/0 RI3H00EJ0 G,RDER
GB00,! 0,P .
8/P0I,! #U0op# .
PI80BRE #primero(;mp# .
/80I,! ( D;3o0op( , Refres)(
GB00,! PRE9I,B? .
8/P0I,! #UPre:ious#.
PI80BRE #anterior(;mp# .
/80I,! ( D;?Nip(61 , Refres)(
GB00,! !EJ0 .
8/P0I,! #U!eAt#.
PI80BRE #siguiente(;mp# .
/80I,! ( D;?Nip(1 , if ( eof( , D;3oGottom( , !il , Refres)(
GB00,! G,00,$ .
8/P0I,! #UGottom# .
PI80BRE #ultimo(;mp# .
/80I,! ( D;3oGottom( , Refres)(
GB00,! ?/9E .
8/P0I,! #U?a:e# .
PI80BRE #guardar(;mp# .
/80I,! ( ?a:e( , Refres)(
GB00,! B!D, .
8/P0I,! #UBndo# .
PI80BRE #des)acer(;mp# .
/80I,! ( Refres)(
E!D 0,,5G/R
I O1,11 5/GE5 5/GE5-1 9/5BE #8ode%#
I K1,11 5/GE5 5/GE5-4 9/5BE #*irst !ame#
I 111,11 5/GE5 5/GE5-E 9/5BE #5ast !ame#
I 121,11 5/GE5 5/GE5-2 9/5BE #Girt) Date%#
I 1S1,11 5/GE5 5/GE5-O 9/5BE #$arried%#
I 411,11 5/GE5 5/GE5-R 9/5BE #Gio%#
I O1,411 0EJ0G,J 0EJ0-1.
*IE5D 0E?06V8,DE .
!B$ERI8 .
$/J5E!30H 11
I K1,411 0EJ0G,J 0EJ0-4.
*IE5D 0E?06V*IR?0 .
$/J5E!30H E1
I 111,411 0EJ0G,J 0EJ0-E.
*IE5D 0E?06V5/?0 .
$/J5E!30H E1
I 121,411 D/0EPI8LER D/0E-2 .
*IE5D 0est6VGirt)
I 1S1,411 8HE8LG,J 8HE8L-O .
8/P0I,! ## .
*IE5D 0est6V$arried
I 411,411 EDI0G,J EDI0-R .
*IE5D 0est6VGio .
HEI3H0 111
E!D +I!D,+
+in-1(0eAt-1(?et*ocus
/80I9/0E +I!D,+ +in-1
Return !il
Procedure Refres)
+in-1(0eAt-1(Refres)
+in-1(0eAt-4(Refres)
+in-1(0eAt-E(Refres)
+in-1(Date-2(Refres)
+in-1(8)ecN-O(Refres)
+in-1(Edit-R(Refres)
+in-1(0eAt-1(?et*ocus
Return
Procedure ?a:e
+in-1(0eAt-1(?a:e
+in-1(0eAt-4(?a:e
+in-1(0eAt-E(?a:e
+in-1(Date-2(?a:e
+in-1(8)ecN-O(?a:e
+in-1(Edit-R(?a:e
Return
Procedure ,pen0a;les
B?E 0E?0
Return
Procedure 8lose0a;les
B?E
Return
El !ontrol &P$IT4%H
5os controles o :entanas definidos como parte de este contenedor pueden ser ordenados por el usuario usando
una ';arra de arrastre' u;icada su iH@uierda( De;e omitirse #I ,# en la definici<n del control(
&include 'minigui(c)'
*unction $ain
DE*I!E +I!D,+ +in-1 .
/0 1,1 .
+ID0H R21 HEI3H0 2O1 .
0I05E #0utor 44% ?plitGoA 0est# .
$/I!
DE*I!E ?P5I0G,J
5I?0G,J 5ist-1 .
+ID0H 411 .
HEI3H0 211 .
I0E$? P#Item 1#,#Item 4#,#Item E#,#Item 2#,#Item O#Q .
9/5BE E .
0,,50IP #5istGoA 1#
EDI0G,J Edit-1 .
+ID0H 411 .
HEI3H0 211 .
9/5BE #EditGoA77# .
0,,50IP #EditGoA# .
$/J5E!30H 4OO
E!D ?P5I0G,J
E!D +I!D,+
8E!0ER +I!D,+ +in-1
/80I9/0E +I!D,+ +in-1
Return !il