FoxPro/Visual FoxPro - Cambiar la interfaz del usuario

   
Vista:

Cambiar la interfaz del usuario

Publicado por Juan (230 intervenciones) el 20/06/2013 08:30:45
Buenos días, quiero hacer o mejorar un programa que tengo de gestión, y me gustaría mejorar su aspezto, como por ejemplo la interfaz que tiene Java, que es bastante bonita, por ejemplo al entrar en un text se rodea de azul, los botones al posicionarte con el ratón por encima cambian, no se, saben si hay algunas clases gratuitas donde pueda encontrar todo esto y tambien iconos y bitmap para mis botones.

Necesito adaptar mi programa a una visualización mas bonita.

Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Cambiar la interfaz del usuario

Publicado por Saul (17 intervenciones) el 20/06/2013 17:40:26
Hola Juan:

Disculpa que te conteste con una pregunta?, como tienes tu programación, con clases.

a que me refiero con clases

Una clase maestra para todos los formularios
Una clase para Textos
Una clase para ComboBox
Etc... Etc.

Revisa este sitio creo que te podrá cambiar la vida y te das una idea de que es lo que necesitas.

http://vfpx.codeplex.com/

Saludos,

sha
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cambiar la interfaz del usuario

Publicado por Juan (71 intervenciones) el 26/06/2013 15:27:28
Muchas gracias, pero he revisado todo el material y no veo nada para cambiar la interfaz, como por ejemplo botones más bonitos y modernos, cuadros de texto, etc...

Si me pudieran decir que clase en concreto sería.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cambiar la interfaz del usuario

Publicado por Fidel (558 intervenciones) el 20/06/2013 17:44:56
Imágenes para botones, quizá te ayude la página de IconFinder.
En cuanto a efectos sobre textbox y otros controles, puedes crear tu propia bibilioteca. Te muestro un ejemplo de cómo hacerlo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
* 1) Crear una clase custom en una biblioteca VCX
* Por ejemplo, la clase Custom se crea con el nombre "FunSombra"
* dentro de una biblioteca vcx llamada: "MzSombra" (podés utilizar alguna que ya tengas)
* --------------------------------------------
* Contenido de FunSombra
* Agregar a FunSombra tres métodos de usuario
* GetBind()
* AddShape()
* RmvShape()
* ---------------------------------------------------------------
* Una vez creada la biblioteca, el procedimiento es, simplemente,
* pegar la clase Custom "FunSombra" a los formularios en que se
* utilice o a la clase de Base "Form".
* ---------------------------------------------------------------
 
 
* ------------------------
* Evento Init de FunSombra
* ------------------------
 
GetBind(thisform)
 
* ------------------
* Método GetBind()
* ------------------
* GetBind es un método recursivo que puede aplicarse a cualquier caso
* modificando lo que sea conveniente.
* En otros usos, resulta necesario agregar CASEs para controles
* que aquí no se emplean. Control Grid debe evaluarse por Columns, por
* ejemplo.
* lOmitDef es un parámetro que se utiliza cuando en la llamada
* recursiva se necesita evitar alguna definición. Por ejemplo, crear
* o valorizar alguna propiedad o ejecutar algún método adicional.
* En este ejemplo no es operativo.
* --------------------------------------------------------------------
LPARAMETERS xoObjeto,lOmitDef
LOCAL ocontrol,ocont,objPict,opage
 
DO case
	CASE UPPER(xoObjeto.Baseclass)="FORM"
		UNBINDEVENTS(xoObjeto)
		FOR EACH oControl IN xoObjeto.Controls
			this.GetBind(oControl,.t.)
		ENDFOR
 
 
	CASE UPPER(xoObjeto.Baseclass)="CONTAINER"
		UNBINDEVENTS(xoObjeto)
		FOR EACH xoObjeto IN xoObjeto.Controls
			This.getbind(xoObjeto,.t.)
		ENDFOR
 
 
	CASE UPPER(xoObjeto.Baseclass)="PAGEFRAME"
		UNBINDEVENTS(xoObjeto)
 
		FOR EACH OPAGE IN xoObjeto.pages
			UNBINDEVENTS(oPage)
 
			FOR EACH objPict IN opage.controls
				THIS.GETbind(OBJPICT,.t.)
			ENDFOR
 
		ENDFOR
 
 
	CASE UPPER(xoObjeto.baseclass)="IMAGE"
		UNBINDEVENTS(xoObjeto)
 
	CASE INLIST(UPPER(xoObjeto.BaseClass),"TEXTBOX","EDITBOX","COMBOBOX","LIST")
		&& Se asegura que los objetos tengan un aspecto similar.
		WITH xoObjeto
			.specialEffect=1
			.BorderColor=RGB(114,136,141)
		ENDWITH
 
		UNBINDEVENTS(xoObjeto)
		BINDEVENT(xoObjeto,"GotFocus",this,"addshape")
		BINDEVENT(xoObjeto,"LostFocus",this,"rmvshape")
 
ENDCASE
 
* ------------------
* Método AddShape
* ------------------
* AddShape Method
* Bind GotFocus Event
**********************
LOCAL ntop,nLeft,nWidth,nHeight,lcName,nEvents,xoObjeto,obj
nEvents=AEVENTS(gaEvent,0)
IF nEvents=0
	RETURN
ENDIF
xoObjeto=gaEvent[1]
 
ntop=xoObjeto.top
nLeft=xoObjeto.left
nWidth=xoObjeto.width
nHeight=xoObjeto.Height
lcName="Shape_"+xoObjeto.name
xoObjeto.Parent.newobject(lcName,"Shape")
Obj=xoObjeto.Parent.&lcName
WITH obj
	.Top=nTop-2
	.Left=nLeft-2
	.Width=nWidth+4
	.Height=nHeight+4
	.BackStyle=0
	.BorderColor=RGB(0,64,128)
	.Curvature=5
	.Visible=.t.
ENDWITH
xoObjeto.zOrder(0)
 
* -----------------
* Método RmvShape
* -----------------
* RmvShape Method
* Bind Lostfocus Event
LOCAL ntop,nLeft,nWidth,nHeight,lcName,nEvents,xoObjeto
nEvents=AEVENTS(gaEvent,0)
IF nEvents=0
	RETURN
ENDIF
xoObjeto=gaEvent[1]
lcName="Shape_"+xoObjeto.name
IF PEMSTATUS(xoObjeto.parent,lcName,5)
	xoObjeto.Parent.removeobject(lcName)
ENDIF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar