Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
-Si tu has sufrido por tu ignorancia, ense�a a los demas, que ellos no sufran lo
que tu, y asi se ira reduciendo el sufrimiento en el mundo (del T.A.O.)
No he tratado de hacer nada bonito, sino util , que ocupe poco por eso va en texto
puro
2.- como filtrar un listbox de una base de datos, para aquellos records que
cumplan una determinada condicion .
oLBX:SetFilter("CAMPO_o_EXPRESION","Valor_TOPE_del_FILTRO","Valor_ULTIMO_del_FILTR
O")
oLBX:GoTop()
3.-No se cierra las DLL cuando hay una terminacion anormal del Programa.
Para eso usa:
WPS.exe
4.-Salen cosas raras al darle al boton dcho en un get...Con respecto al menu popup
si puedes modificarlo, pero tienes que retocar la clase TGet.
Debes entonces modificar la Clase TGET.
Entre las lineas 954 y 1041 (aproximadamente) del TGET.prg, esta el metodo
ButtonDown.
Creo que puede funcionar poniendo un asterisco a la linea 1039 (o a la linea que
dice:
ACTIVATE POPUP oMenu AT nRow - 60, nCol OF Self
Si tu Boton tiene el ID 445, entonces lo mas seguro es que dentro de tu DLL haya
al menos 2 BMP que terminan en 445 (esos son los BMP que construyen al boton y que
le dan las apariencias de: Boton normal, Boton pulsado y Boton con Foco). Los BMP
tendran (para que trabajen como Botones Borland), ser: 1445 (bmp del boton
normal), 3445 (bmp del boton pulsado), y 5445 (bmp del boton con foco).
Si quieres cambiar el tama�o del boton , deberas cambiarle el tama�o a estos 3
Bmp's. (yo uso mucho los botones Borland pero solo uso los que empiezan con 1 y
con 3, o sea que cuando mis botones tienen el foco, se ven con Bmp que empieza con
1 y no con 5). O sea: No es obligatorio usar el bmp que empieza con 5.
Eso lo puedes arreglar Grabando tus recursos encima de otra DLL existente (claro,
sacas una copia de una dll de otro programa), y despues haces un rename a esa DLL
y la sigues usando con WS.
Objetivo:
1) Si el usuario ingresa un codigo valido, entonces el foco no deberia detenerse
en el boton de la lupita.
2) Si el usuario no ingresa ningun codigo (contenido dentro de la tabla DBF),
entonces el boton de la lupita si deberia adquirir el foco.
3) Si el usuario ingresa un codigo errado, (o sea: que no est� contenido dentro de
la DBF), entonces el boton de la lupita SI deberia ganar el foco.
4) El boton de la lupita, deberia activar otro dialogo en donde se despliega un
browse de ayuda con los datos de la DBF que contiene los codigos en cuestion.
Tienes que grabar un icono como file .RC, e "incrustarlo" en tu exe luego que
Blinker te lo produce.
El incrustador del icono dentro del exe es RC.EXE (y BRC.EXE si usas el del
workshop).
El icono .RC lo generas en el workshop.
Si incrustas todos tus recursos completos en el exe, (si haces esto es porque no
quieres usar DLL en tiempo de ejecucion), entonces el icono de el exe sera el
primer icono del grupo ICON dentro de los recursos
9.- un problema de VmPreAlloc.
Tengo la solucion para tu amigo, dile que compile el objeto que te anexo
junto a sus demas obj y problema resuelto.
el obj es ALLOC.obj.....
10.-Manejo de fonts
Tienes que cambiar el Font en tu programa.
LOCAL BACEPTA,OBMP,OFONT,OSAY2,OFONT2
PRIVATE OTIMER,ODLG,OSAY
DEFINE FONT OFONT NAME "MS SANS SERIF" SIZE 0,-10
DEFINE FONT OFONT2 NAME "ARIAL" SIZE 0,-20 BOLD
DEFINE DIALOG ODLG TITLE 'Transferencia de NOTAS DE DESPACHO .....' RESOURCE
'DLG_001' FONT OFONT
REDEFINE BITMAP OBMP ID 102 OF ODLG RESOURCE 'DMICH'
OBMP:CENTER()
REDEFINE SAY OSAY ID 120 OF ODLG COLOR CLR_BLUE FONT OFONT2
REDEFINE BUTTON BINFO ID 442 OF ODLG ACTION INFORMA(M->AUTOR,'Desarrollo de
SoftWare')
REDEFINE BUTTON BACEPTA ID 400 OF ODLG ACTION (ODLG:END())
OSAY:SETTEXT('Esperando .............')
ACTIVATE DIALOG ODLG CENTER ON INIT DEFINIT(ODLG)
RELEASE TIMER OTIMER
RETURN NIL
Saludos.
13.- ahora no puedo cargar mas de una DLL, no me reconoce los recursos de la
segunda que cargo.
La primera vez que llamas a SET RESOURCES TO ... estableces las DLLs
que vas a usar para los recursos. A partir de ah�, has de volver a
llamar a SET RESOURCES TO para seleccionar la que vas a usar en cada
momento:
FUNCIONA ..
15.-Spinners
Este es un SPINNER:
Es un Get con Vertical Scroll Bar, y en el REDEFINE pones: SPINNER MIN x MAX y
Un Spinner es una barra de scroll vertical asociada a un �nico get y sirve para
incrementar o disminuir el valor de la variable asignada al get. As�, en un get
con Spinner puedes introducir el dato manualmente o pulsar su scroll para
modificarlo. Dado que el spinner suma o resta a la variable del get, s�lo tiene
sentido en gets num�ricos o de fecha.
El caso es que despu�s de probar varias cosas la �nica forma que hago que me
funcione es la siguiente, pero no entiendo PORQUE FUNCIONA!
Seguro que es m�s facil que todo esto , pero funciona !!!
>
18.-En relacion con el tema de los recursos:
1) La SCREENS.DLL que viene con FW 2.0 aparenta tener algun problema ya
que nunca le pude adicionar recursos. La unica solucion para empezar con
DLL vacia fue tomar una 'prestada' que funcionaba y borrarle todos los
recursos.
2) La otra forma de utilizar recursos, incrustandolos en el .EXE, se
puede concretar por el metodo que ense�a el BUILD.BAT o bien, segun
descubri en el BLINKER 5.1 agregar en el script de enlace el comando RC
RECURSO.RES
tienes razon, a mi incluso me envio An Lin una screen.dll
vacia y no va, no se puede grabar nada en ella
Creo que el motivo por el que va cuando le a�ades recursos a una llena es
porque tienen algo mas, vacie una buena, y al abrirla con set resources
me abria ella sola la ct3dv2 ( o algo asi)
metiendo los recursos por medio de un rc y diciendole grabar como fos.dll
(llenita) me decia que ya existia, me la sobreescribia con mis recursos y
voil�!! solo quedan mis recursos y lo otro (misterio)
19.-Todos tenemos el prg calendar que viene en samples
Lo pones solo y funciona, lo llamo desde mi rutina y nada, ni con
parametros ni sin parametros,
21.- Variables estaticas Esto debido a que un amigo de Brasil me preguntaba sobre
por que de sus GPF en una gran aplicacion El problema estaba en las STATIC. El
amigo utilizaba muchas variables STATIC por PRG, cosa que FW soporta en menor
cantidad respecto al MSDOS. Igualmente JAMAS seria necesario escribir mas de 1
variable por modulo PRG, veamos el ejemplo:
En realidad con esto definimos 1 variable STATIC y consumimos menos los recursos
del sistema, y esta solucion EVITA modificar el codigo del PRG, excepto la
definicion inicial, y lo mas importante EVITA GPF !!! Algunos diran que es lo
mismo poner #define, PERO NO ES LO MISMO !!!!!!!!, dado que estos defines no se
resuelven cuando se incorporan en COMANDOS, cosa que si resuelve #xtranslate. :-)
return nil
CLASS TApplication
DATA cSistema INIT "Sistema Pepe"
DATA cPath INIT "\Datos"
DATA cCopyright INIT "Topo Gigio Sistemas"
........... y asi todas las que quisieramos !!!!! :-)
ENDCLASS
1) Mayor rapidez
2) Mayores disponibilidad de resursos
3) Menores errores GPF (seran casi imposibles de visualizar)
4) Un codigo mas legible
22.- Una forma muy buena de armar todos los controles es ponerle la clausula
UPDATE
De esta forma efectuas los cambios de las variables y solo tenes que hacer
oDlg:update()
y listo se refresca todo el dialogo.
23.- para que no se pueda editar el get debes poner la condicion WHEN .F.
> Estimados amigos como se hace para poner color a los static text generados
> desde el Work Shop. �Se puede hacer desde c�digo?
> Actualmente para los REDEFINE SAY utilizo
> REDEFINE SAY oMunicipi VAR cCMunici ID 122 OF Odlg UPDATE;
> COLOR RGB(000,000,255),RGB(255,255,255)
>
> Pero si genero un texto de cabecera al campo desde el Work Shop no se
> cambiarle el color. �Es posible?
Lo haces de igual manera al ejemplo que mandaste, solo asegurate de que el
texto no tenga ID -1 sino un ID valido.
26.-checkbox.
Si quieres que una variable logica cambie de estado no uses:
if(vclival=.t.,vclival:=.f.,vclival:=.t) es mas facil y mas limpio usar:
vclival := !vclival, de esta manera te olvidas de las preguntas.... ;)
2) El valor de vclival cambia dependiendo del estado de checkbox..... no veo
para que lo cambias vos en el programa.
PS: Tienes un ejemplo MUY SENCILLO EN SAMPLES\TESTCHCK.PRG
intentalo as�:
ON CLICK (CAMBIAR('CLIENTES','CLI_VAL',IF(VCLIVAL,'SI','NO') ) )
27.- > Asunto: [fivewin-la] alguien sabe de algun gestor tipo dbu para windows
> que use cdx??
>Prometheus de Daniel Andrade (Free)
http://www.dbwide.freeservers.com/
static aArrayVars
FUNCTION Main()
RETURN NIL
> Al compilar uno de los prg me da memory overboked, pero lo compilo con lh
> clipper ... y a pesar de que da el error no se sale, sigue hasta el
> final ---
> he probado a recompilar con 5.3 y horror!!! los preprocesor table overflow
> que habia logado quitar con un mejor manejo de las variables de memoria,
> vuelven en todos los modulos, gestiona peor el preprocesado Hay alguna
forma
> de aumentarle la memoria de preprocesado???
Tenes que eliminar Chs que no utilizas, como colocando estas definiciones
antes de FIVEWIN.CH, este los llama y esta es la forma de anular las
llamadas.
Otra cosita:
Te recomiendo que armes prgs donde requieran llamadas especificas juntos.
Por ejemplo:
impre.prg // defini este funciones para imprimir
de esta forma solo aca nesesitas por ejemplo REPORT.CH, y en los otros no!!
SET RESOURCES TO
loadlibrary("bwcc.dll")
SET RESOURCES TO "MENU.DLL"
prueba esto:
Pagado:SetFont(oWnd:oFont)
Pagado:SetFont(oDlg:oFont)
En caso contrario creo que el oDlg no toma como oFont el del oWnd.