Create Event

HMG en Español

Moderator: Rathinagiri

User avatar
mjaviergutierrez
Posts: 127
Joined: Fri Nov 30, 2012 7:51 pm
Location: San Lorenzo, Santa Fe, Argentina
Been thanked: 2 times

Create Event

Post by mjaviergutierrez »

Hola, no he encontrado una sintaxis ó explicación para el comando CREATE EVENT. Lo quiero usar para asignarle un procedimiento al evento OnChange de un combobox en tiempo de ejecución. No se si estaré en lo correcto ó si hay otra forma de asignar un procedimiento al evento de un control en tiempo de ejecución. Gracias.
...

User avatar
andyglezl
Posts: 1251
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Has thanked: 39 times
Been thanked: 107 times
Contact:

Post by andyglezl »

Hola, en tiempo de ejecucion no se...
Pero el combobox tiene ese evento...
@ <nRow> ,<nCol>
COMBOBOX <ControlName>
[ OF | PARENT <ParentWindowName> ]
[ ITEMS <caItems> ]
[ ITEMSOURCE <ItemSourceField1> [ , <ItemSourceField2> ] ]
[ VALUE <nValue> ]
[ VALUESOURCE <ValueSourceField> ]
[ DISPLAYEDIT ]
[ WIDTH <nWodth> ]
[ HEIGHT <nHeight>]
[ FONT <cFontName> SIZE <nFontSize> ]
[ BOLD ] [ ITALIC ] [ UNDERLINE ] [ STRIKEOUT ]
[ TOOLTIP <cToolTipText> ]
[ ON GOTFOCUS <OnGotFocusProcedur> | <bBlock> ]
[ ON CHANGE <OnChangeProcedure> | <bBlock> ]
[ ON LOSTFOCUS <OnLostFocusProcedure> | <bBlock> ]
[ ON ENTER <OnEnterProcedure> | <bBlock> ]
[ ON DISPLAYCHANGE <OnDisplayChangeProcedure> | <bBlock> ]
[ ON DROPDOWN <OnDropDownProcedure> | <bBlock> ]
[ ON CLOSEUP <OnCloseUpProcedure> | <bBlock> ]
[ NOTABSTOP ]
[ HELPID <nHelpId> ]
[ BREAK ]
[ GRIPPERTEXT <cGripperText> ]
[ INVISIBLE ]
[ SORT ]
[ IMAGE <acImageNames> ]
[ DROPPEDWIDTH <nDroppedWidth> ]
Y dentro de Procedimiento, preguntar...

IF "esto"
...
ELSEIF "otro"
...
ELSEIF "otro_otro"
...
ENDIF
Andrés González López
Desde Guadalajara, Jalisco. México.

Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México
Has thanked: 1 time
Been thanked: 2 times

Post by Javier Tovar »

Hola como te dice andyglezl,

Code: Select all

/*
* HMG ComboBox Demo
* (c) 2002 Roberto Lopez
*/

#include "hmg.ch"
Function Main

	DEFINE WINDOW Form_1 ;
		AT 0,0 ;
		WIDTH 400 ;
		HEIGHT 200 ;
		TITLE 'ComboBox Demo' ;
		MAIN 

		DEFINE MAIN MENU
			DEFINE POPUP '&Test'
				MENUITEM 'Item Content' ACTION MsgInfo ( Form_1.Combo_1.Item (1) )
			END POPUP
		END MENU

		@ 10,10 COMBOBOX Combo_1 ;
			WIDTH 100 ;
			ITEMS { '1 | Uno' , '2 | Dos' , '3 | tres' } ;
			VALUE 1 ;
			ON ENTER MsgInfo ( Str(Form_1.Combo_1.value) ) ;
			ON CHANGE MiFuncion(This.VALUE) ;
			FONT 'Courier' SIZE 12 

	END WINDOW

	CENTER WINDOW Form_1

	ACTIVATE WINDOW Form_1

Return

PROCEDURE MiFuncion(nValor)
	IF nValor == 1
	   MsgBox("En tiempo de ejecución Acabas de elegir el Item 1")
	ELSEIF nValor == 2
	   MsgBox("En tiempo de ejecución Acabas de elegir el Item 2")
	ELSEIF nValor == 3
	   MsgBox("En tiempo de ejecución Acabas de elegir el Item 3")
	ENDIF
RETURN NIL


Ejecucion.jpg
Ejecucion.jpg (93.43 KiB) Viewed 3320 times
Saludos

User avatar
mjaviergutierrez
Posts: 127
Joined: Fri Nov 30, 2012 7:51 pm
Location: San Lorenzo, Santa Fe, Argentina
Been thanked: 2 times

Post by mjaviergutierrez »

No, creo que no me explique. Necesito asignar un procedimiento al evento "OnChange" del control COMBOBOX en TIEMPO DE EJECUCION. Gracias.
...

User avatar
andyglezl
Posts: 1251
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Has thanked: 39 times
Been thanked: 107 times
Contact:

Post by andyglezl »

Mas bien, dependiendo de las condiciones que quieres, en vez de asignar un procedimento al "ON CHANGE"
debes de crear todo el control COMBOBOX...
Andrés González López
Desde Guadalajara, Jalisco. México.

Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México
Has thanked: 1 time
Been thanked: 2 times

Post by Javier Tovar »

Hi all,

Try to make a new control, as I imagine is what our friend wants but gives me error. Any idea?


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Hola a todos,

Trate de hacer un nuevo control, como me imagino que es lo que quiere nuestro amigo pero me da error. Alguna idea?

Code: Select all

/*
* HMG ComboBox Demo
* (c) 2002 Roberto Lopez
*/

#include "hmg.ch"
Function Main

	DEFINE WINDOW Form_1 ;
		AT 0,0 ;
		WIDTH 400 ;
		HEIGHT 200 ;
		TITLE 'ComboBox Demo' ;
		MAIN 

		DEFINE MAIN MENU
			DEFINE POPUP '&Test'
				MENUITEM 'Item Content' ACTION MsgInfo ( Form_1.Combo_1.Item (1) )
			END POPUP
		END MENU

		@ 10,10 COMBOBOX Combo_1 PARENT Form_1;
			WIDTH 100 ;
			ITEMS { '1 | Uno' , '2 | Dos' , '3 | tres' } ;
			VALUE 1 ;
			ON ENTER MsgInfo ( Str(Form_1.Combo_1.value) ) ;
			ON CHANGE MiFuncion(This.VALUE) ;
			FONT 'Courier' SIZE 12 

	END WINDOW

	CENTER WINDOW Form_1

	ACTIVATE WINDOW Form_1

Return

PROCEDURE MiFuncion(nValor)
	IF nValor == 1
	   MsgBox("En tiempo de ejecución Acabas de elegir el Item 1")
	ELSEIF nValor == 2
	   MsgBox("En tiempo de ejecución Acabas de elegir el Item 2")
	ELSEIF nValor == 3
	   MsgBox("En tiempo de ejecución Acabas de elegir el Item 3")
	ENDIF
	
	Form_1.Combo_1.Release

	NuevoControl()


	

	
RETURN NIL



Function NuevoControl()

LOCAL cLabel := "Label_1" 
LOCAL cText  := "Text_2" 
LOCAL cCombo := "Combo_3" 

@ 50 , 10  LABEL &cLabel  PARENT Form_1  ;
           VALUE cLabel ;
           BACKCOLOR  {128,255,255}
           
@ 46 , 70  TEXTBOX &cText PARENT Form_1  ;
           VALUE cText ;
           MAXLENGTH 10
           
@ 80 , 20 COMBOBOX &cCombo PARENT Form_1 ;
          ITEMS { '11111111' , '2222222' , '3333333' } ;
          ON CHANGE Fun(This.VALUE) 
		  
*Form_1.Text_1.SetFocus

Return nil



PROCEDURE Fun(nValor)
	IF nValor == 1
	   MsgBox("Este es otro procedimiento 1")
	ELSEIF nValor == 2
	   MsgBox("Este es otro procedimiento 2")
	ELSEIF nValor == 3
	   MsgBox("Este es otro procedimiento 3")
	ENDIF
	
RETURN NIL


User avatar
mustafa
Posts: 1008
Joined: Fri Mar 20, 2009 11:38 am
DBs Used: DBF
Location: Alicante - Spain
Been thanked: 208 times
Contact:

Post by mustafa »

Hola mjaviergutierrez
Estoy haciendo una aplicación que otorga permisos por
categorias laborales mediante Combobox en un Password.
1º creo una tabla de permisos
aadd ( aItems , 'Manager' )
aadd ( aItems , 'Manager R.Human' )
aadd ( aItems , 'Manager Financial' )
aadd ( aItems , 'Section Chief' )
aadd ( aItems , 'Administrative Officer 1ª' )
aadd ( aItems , 'Administrative Officer 2ª' )
aadd ( aItems , 'Administrative Assistant ' )
aadd ( aItems , 'Broker' )
aadd ( aItems , 'Stock Foreman' )
aadd ( aItems , 'Officer 1ª Stock' )
aadd ( aItems , 'Officer 2ª Stock' )
aadd ( aItems , 'Boy Stock' )

nLogX = 1

@ 055,137 COMBOBOX Combo_01 ;
WIDTH 120 HEIGHT 023 ;
ITEMS aItems ;
VALUE nLogX ;
ON CHANGE nLogX := This.Value ;
FONT 'Arial' SIZE 09 ;
TOOLTIP 'vARIOS'

2º nLogX queda en memoria

DEFINE BUTTON Button_1a
ROW 130
COL 026
WIDTH 105
HEIGHT 028
CAPTION "Accept"
ACTION UsuarioX()
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP "Accept"
FONTBOLD .T.
FONTITALIC .T.
TABSTOP .T.
VISIBLE .T.
TRANSPARENT .F.
MULTILINE .F.
PICTURE "resource\Acep.bmp"
PICTALIGNMENT LEFT
END BUTTON

*----------------------------------*
Function UsuarioX()
*----------------------------------*

IF nLogX = 1
mirax := 'Manager'
ENDIF
IF nLogX = 2
mirax := 'Manager R.Human'
ENDIF
IF nLogX = 3
mirax := 'Manager Financial'
ENDIF
etc,etc........
y se graba la opción en un fichero

SELECT 1
USE control
append BLANK
REPLACE CHARGE WITH mirax

Pronto publicaré el sample completo

Mustafa :idea:

User avatar
mustafa
Posts: 1008
Joined: Fri Mar 20, 2009 11:38 am
DBs Used: DBF
Location: Alicante - Spain
Been thanked: 208 times
Contact:

Post by mustafa »

El ejemplo se basa en la investigacion de autorizar trabajos
mediante autorizaciones en una empresa.

Solamente tienen autorizacion de cambio de Clave y de Listado

george General Manager admin
adam Manager R.Human admin

El programa por defecto si no existe el fichero "control.dbf"
crea la clave de acceso ---> 'admin' 'General Manager' 'admin'

Se ha creado para el ejemplo unos nombres imaginarios y unos
cargos, que debe borrar cuando quiera y crear un nuevo fichero
que se creara automatico.


Espero que les guste, saludos

Mustafa

*------------------------------ Google ------------------------------------------------*

The example is based on research papers authorizing
 authorizations by a company.
 Only have authorization and Key exchange Listing

 george General Manager admin
adam Manager R.Human admin

 The program by default if there is no file "control.dbf"
 creates the password ---> 'admin' 'General Manager' 'admin'

 It has been created for such imaginary names and some
 charges must clear whenever and create a new file
 which create automatic.


Hope you like it, greetings

Mustafa :lol:
Attachments
Restricted_Access.zip
(1.36 MiB) Downloaded 219 times
screenshot.jpg
screenshot.jpg (69.3 KiB) Viewed 3236 times

User avatar
esgici
Posts: 4537
Joined: Wed Jul 30, 2008 9:17 pm
DBs Used: DBF
Location: iskenderun / Turkiye
Has thanked: 409 times
Been thanked: 118 times
Contact:

Post by esgici »

Hola Mustafa

Good work ( as always ), thanks;

this project is helpful and educative for everyone :arrow:

Viva HMG :D
Viva INTERNATIONAL HMG :D

User avatar
danielmaximiliano
Posts: 2357
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Has thanked: 433 times
Been thanked: 83 times
Contact:

Post by danielmaximiliano »

Javier Tovar wrote:Hi all,

Try to make a new control, as I imagine is what our friend wants but gives me error. Any idea?


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Hola a todos,

Trate de hacer un nuevo control, como me imagino que es lo que quiere nuestro amigo pero me da error. Alguna idea?
Cual es el error que te da ?
ya que probe el codigo y funciona ; Solamente que en un momento falla porque el control Combo_1 es borrado.

Code: Select all

Form_1.Combo_1.Release
otro error que econtre es que la rutina intenta crear de nuevo el contro Label , Textbox y ComboBox y esos controles ya fueron creados anteriomente.
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO

Post Reply