Hola Pablo :
Yo en T.Pascal utilizaba "objetos", la forma más basica era esta.
Code: Select all
type
alumnos = RECORD
clave:integer;
nombre:string[30];
estatura:real;
end;
var
alumno:alumnos;
BEGIN
clrscr;
(* capturando registro *)
write('dame clave : ');readln(alumno.clave);
write('dame nombre : ');readln(alumno.nombre);
write('dame estatura : ');readln(alumno.estatura);
(* operaciones *)
alumno.estatura := alumno.estatura + 0.23456;
(* despliegue *)
writeln;writeln;
writeln('clave : ',alumno.clave);
writeln('nombre : ',alumno.nombre);
writeln('estatura : ',alumno.estatura:0:2);
readln;
END.
ya estoy adaptando mi codigo para trabajar de esa manera
Code: Select all
alumno:nombre := 'Pablo'
alumno:grabar
ud puede adaptar y trabajar con OBJETOS tanto HMG y su codigo :
míre usted hmg.ch y textbox.prg dentro de hmg.4, haga una pequeña modificacion a los sources de hmg.3 y haga una prueba si funciona.
parcial codigo de textbox.prg
Code: Select all
#include "hmg.ch"
/*==============================================================================
TEXTBOX class
==============================================================================*/
CLASS TEXTBOX FROM CONTROL
DATA cClass INIT "TEXTBOX"
// data: please preserve alphabetic order.
DATA nAlignment INIT TXT_LEFT PROTECTED
DATA nCaseConvert INIT TXT_NONE PROTECTED
DATA oColor INIT NIL PROTECTED
DATA nDataType INIT NIL PROTECTED
DATA cDecPoint INIT "." PROTECTED // by default USA format
DATA cFormat INIT "" PROTECTED // by default USA format ELSE European
DATA lLostFocusExecFlag INIT .F. PROTECTED
DATA cThousands INIT "," PROTECTED // by default USA format
DATA nMaxLength INIT NIL PROTECTED
DATA cInputMask INIT "" PROTECTED // what user set
DATA xItemDisplay INIT NIL PROTECTED
DATA xItemEdit INIT NIL PROTECTED
DATA bOnValid INIT NIL PROTECTED
DATA cPictDateFormat INIT "" PROTECTED
DATA cPictDisplay INIT "" PROTECTED
DATA cPictEdit INIT "" PROTECTED
DATA oRegExp INIT NIL PROTECTED
DATA cRegExpValidator INIT NIL PROTECTED
DATA oRegExpValidator INIT NIL PROTECTED
DATA xValue INIT NIL PROTECTED
parcial codigo para hmg.ch
Code: Select all
#command @ <nRow>, <nCol> TEXTBOX <tagreference> ;
[ <dummy1: OF, PARENT> <oParent> ] ;
[ TOVAR <varname> ] ;
[ HEIGHT <nHeight> ] ;
[ WIDTH <nWidth> ] ;
[ FIELD <cField> ] ;
[ VALUE <cValue> ] ;
[ < lReadOnly: READONLY > ] ;
[ FONT <cFontName> ] ;
[ SIZE <nFontSize> ] ;
[ <lFontBold : BOLD> ] ;
[ <lFontItalic : ITALIC> ] ;
[ <lFontUnderline : UNDERLINE> ] ;
[ <lFontStrikeout : STRIKEOUT> ] ;
[ TOOLTIP <cToolTip> ] ;
[ BACKCOLOR <aBackColor> ] ;
[ FONTCOLOR <aFontColor> ] ;
[ DISABLEDBACKCOLOR <aDisabledBackColor> ] ;
[ DISABLEDFONTCOLOR <aDisabledFontColor> ] ;
[ MAXLENGTH <nMaxLength> ] ;
[ <lUpper: UPPERCASE> ] ;
[ <lLower: LOWERCASE> ] ;
[ <lNumeric: NUMERIC> ] ;
[ <lDate: DATE> ] ;
[ <lPassWord: PASSWORD> ] ;
[ INPUTMASK <cInputMask> ] ;
[ FORMAT <cFormat> ] ;
[ ON CHANGE <bOnChange> ] ;
[ ON GOTFOCUS <bOnGotFocus> ] ;
[ ON LOSTFOCUS <bOnLostFocus> ] ;
[ ON ENTER <bOnEnter> ] ;
[ <lRightAlign: RIGHTALIGN> ] ;
[ <lNoVisible: INVISIBLE> ] ;
[ <lNoTabStop: NOTABSTOP> ] ;
[ HELPID <nHelpId> ] ;
=>;
With Object [<varname> :=] TEXTBOX():New(<"tagreference"> [ , <oParent> ]) ;;
[:Row := <nRow> ] ;;
[:Col := <nCol> ] ;;
[:Width := <nWidth> ] ;;
[:Height := <nHeight> ] ;;
[:Field := <"cField"> ] ;;
[:Value := <cValue> ] ;;
[:lReadOnly := <.lReadOnly.> ] ;;
[:FontName := <cFontName> ] ;;
[:FontSize := <nFontSize> ] ;;
[:FontBold := <.lFontBold.> ] ;;
[:FontItalic := <.lFontItalic.> ] ;;
[:FontUnderline := <.lFontUnderline.> ] ;;
[:FontStrikeout := <.lFontStrikeout.> ] ;;
[:ToolTip := <cToolTip> ] ;;
[:BackColor := <aBackColor> ] ;;
[:FontColor := <aFontColor> ] ;;
[:MaxLength := <nMaxLength> ] ;;
[:PassWord := <.lPassWord.> ] ;;
[:InputMask := <cInputMask> ] ;;
[:Format := <cFormat> ] ;;
[:OnChange := <{bOnChange}> ] ;;
[:OnGotFocus := <{bOnGotFocus}> ] ;;
[:OnLostFocus := <{bOnLostFocus}> ] ;;
[:OnEnter := <{bOnEnter}> ] ;;
[:Visible := !<.lNoVisible.> ] ;;
[:TabStop := !<.lNoTabStop.> ] ;;
[:HelpId := <nHelpId> ] ;;
[:Alignment := if( <.lRightAlign.> , 2 , 0 ) ] ;;
[:DisabledBackColor := <aDisabledBackColor> ] ;;
[:DisabledFontColor := <aDisabledFontColor> ] ;;
[:CaseConvert := if ( <.lUpper.> , 1 , If( <.lLower.> , 2 , 0 ) ) ] ;;
[:DataType := if ( <.lNumeric.> , 1 , if( <.lDate.> , 2 ,0 )) ] ;;
End With