Page 1 of 1

ARCHIVOS .MEM

Posted: Fri Sep 26, 2008 4:00 pm
by LuisPonce
Hola

Todos venimos de Clipper, y soliamos utilizar el famomo HEADMAIN.MEM que no era mas que un file donde guardabamos variables de memoria, herede esta costumbre al paso al FiveWin (16 bits) aun, y sospecho que me esta generando los problemas de GPF, las variables contenidas en este archivo pasan a ser PUBLICAS y por ende ocupan recursos de memoria?, he intentado urtilizar un array y #Xtraslate pero no tengo buen resultado, Antonio a lo mejor hay alguna solucion.

Gracias

Posted: Fri Sep 26, 2008 11:00 pm
by Antonio Linares
Luis,

Que variables estas guardando en ese fichero MEM ?

Desde donde y cuando las restauras ?

Posted: Sat Sep 27, 2008 1:12 am
by LuisPonce
Hola Antonio

Gracias por tu respuesta, en ese file guardo los nombres de las tablas que utilizo, Pictures y otras :

USE &FIL01

USE &FIL02.....

Como comprenderas son casi com cincuenta, y parametros de mis sistemas, decimales, ruta de mi servidor, impuestos y demas.

y lo abro al inicio del sistema, en mi modulo principal algo asi como esto :

#include "FiveWin.ch"
#include "Folder.ch"
#include "Report.Ch"
#include "SSay.ch"
#Include "Ord.Ch"

STATIC oWnd,hBorland,oMenu,oCursorMano
STATIC cVersion:="Ventas Ver. 7.0"
STATIC cMiCia :=""
STATIC cMiRuc :=""
STATIC cMiDir :=""
STATIC cMiDi2 :=""
STATIC cMiDi3 :=""
STATIC cMiPro :=""
STATIC cMiCom :=""
STATIC cMiMail :="la_ponce@hotmail.com"

//----------------------------------------------------------------------------//

Function Main()
LOCAL oBrush,oIco,oBarraBotones
LOCAL oBtnCaptura,oBtnParametros,oBtnCalculador,oBtnClient,oBtnProveed,oBtnABusca,oBtnArticulos,oBtnReindexa,oBtnSalir,oBtnCotiza,oBtnCaja,oBtnTactil,oBtnInternet
LOCAL oBmp,oFont,oFontComic,oMiCasilla,oTcCasilla,oNetCasilla
LOCAL cBrocha,cLogoInicial,aMiCia
LOCAL lValidaSys,lValidaRed

PUBLIC cCodFilial:=""
PUBLIC cNomFilial:=""
PUBLIC cAbrFilial:=""
PUBLIC TCambio,lFilCentral
PUBLIC mmUsuario,mmInicial,mmNombre,mmAcceso,mmUltimo,mmModulo,mmIngreso,mmRegPss
PUBLIC cImpNet,cImpLoc,cImpXls

hBorland := LoadLibrary( "BWCC.DLL" ) // Loading Borland's dll
SET RESOURCES TO "VT20998.dll"
SET DATE GERMAN
SET _3DLOOK ON

RESTORE FROM HEADMAIN
RESTORE FROM HEADIMPT ADDITIVE

lValidaSys := ValidaSys()
lValidaRed := ValidaRed()
aMiCia := IF(lValidaSys,QMiCia(),{ "INTEL SOFT S.C.R.Ltda.", "Av. de la Cultura 1-A","20225059559","PacificSoft" })
cMiCia := aMiCia[1]
cMiDir := aMiCia[2]
cMiRuc := aMiCia[3]
cMiCom := aMiCia[4]
cBrocha := BcaTapiz(TRIM(IMPTPZ))
cLogoInicial:= TRIM(IMPLG0)
nWindows := IIF(IsWin95(),1,2).....

DEFINE FONT oFont NAME "MS SANS SERIF" SIZE 0,-10 // ancho,alto
DEFINE FONT oFontComic NAME "Comic Sans Ms" SIZE 8, 15
DEFINE ICON oIco RESOURCE "ICONO"
DEFINE CURSOR oCursorMano RESOURCE "Hand"

IF nWindows=1 // Windows 95/98

IF lValidaRed
DEFINE WINDOW oWnd MDI ;
TITLE "Sistema de Ventas" ;
BRUSH oBrush ;
ICON oIco ;
MENU IIF(lValidaSys.and.lValidaRed,BuildMenu(),SalirMenu())
ELSE
DEFINE WINDOW oWnd MDI ;
TITLE "Sistema de Ventas" ;
BRUSH oBrush ;
ICON oIco ;
MENU SalirMenu()

ENDIF

ELSE

IF lValidaRed
DEFINE WINDOW oWnd MDI ;
TITLE "Sistema de Ventas" ;
ICON oIco ;
MENU IIF(lValidaSys.and.lValidaRed,BuildMenu(),SalirMenu())

oWnd:bPainted = { | hDC | PalBmpDraw( hDC, 0, 0, oBrush:hBitmap, oWnd:nWidth, oWnd:nHeight ) }

ELSE
DEFINE WINDOW oWnd MDI ;
TITLE "Sistema de Ventas" ;
ICON oIco ;
MENU SalirMenu()

oWnd:bPainted = { | hDC | PalBmpDraw( hDC, 0, 0, oBrush:hBitmap, oWnd:nWidth, oWnd:nHeight ) }

ENDIF

ENDIF

oWnd:Say( 3, 16, aMiCia[4], nRGB( 25, 40, 95 ), nRGB( 192, 192, 192 ),oFontComic )

DEFINE BUTTONBAR oBarraBotones; // Se define Barra de Botones (Objeto: BUTTONBAR).
SIZE 42,42; // Tama¤o en pixeles de los botones
3D; // Vista en efecto 3¦ dimensi¢n
TOP; // Se despliega en la parte superior de la ventana.
OF oWnd; // Se indica que pertenece
CURSOR oCursorMano // Se define tipo de cursor al posicionarse en la barra.


DEFINE BUTTON oBtnClient RESOURCE "Bmp_Clientes" OF oBarraBotones ;
TOOLTIP "Clientes";
NOBORDER ;
ACTION Click(),MovClte(oWnd,cVersion,cMiCia);
WHEN lValidaSys.and.lValidaRed ;
MESSAGE "Archivo de Clientes"

DEFINE BUTTON oBtnArticulos RESOURCE "Bmp_Articulos" OF oBarraBotones ;
TOOLTIP "Articulos";
NOBORDER ;
ACTION (Click(),MovItem(oWnd,cVersion,cMiCia));
WHEN lValidaSys.and.lValidaRed ;
MESSAGE OemToAnsi("Archivo de Articulos")

DEFINE BUTTON oBtnProveed RESOURCE "Bmp_Proveedores" OF oBarraBotones ;
TOOLTIP "Proveedores";
NOBORDER ;
ACTION (Click(),MovProv(oWnd,cVersion,cMiCia));
WHEN lValidaSys.and.lValidaRed ;
MESSAGE "Archivo de Proveedores"


SET FONT OF oWnd TO oFont

SET MESSAGE OF oWnd ;
TO "Software a Medida by Pacific(s)Soft" NOINSET CENTERED KEYBOARD TIME DATE

/*** Define tus propias casillas:... ***/

DEFINE MSGITEM oMiCasilla OF oWnd:oMsgBar;
PROMPT "Operador";
SIZE 100 COLOR "R*/BG" ;
ACTION (Click(),InfoUsuario())

DEFINE MSGITEM oNetCasilla OF oWnd:oMsgBar;
PROMPT "Ruta de Servidor";
SIZE 150 COLOR "G+/N" ;
ACTION (Click(),Dlg_Parametro(oWnd,cMiCia,cMiCom,cMiDir,cMiRuc),oNetCasilla:SetText(TRIM(IMPNET)))

DEFINE MSGITEM oTcCasilla OF oWnd:oMsgBar;
PROMPT "T. de Cambio";
SIZE 110 COLOR "GR+/N" ;
ACTION (Click(),TCambio:=Cambio(oWnd),oTcCasilla:SetText("T.C. "+TRANS(TCambio,MA43)))

ACTIVATE WINDOW oWnd MAXIMIZED ;
ON INIT (SetHandleCount(80),;
IngPasse(),;
ConfigSet(),;
oNetCasilla:SetText(TRIM(IMPNET)),;
oMiCasilla:SetText(mmUsuario),;
Matrices(),;
CreaDbfNtx(.f.),;
TCambio:=Cambio(oWnd),;
oTcCasilla:SetText("T.C. "+TRANS(TCambio,MA43)),;
LogoInicio(cLogoInicial),;
oWnd:SetText(cMiCia+" - "+UPPER(TRIM(cNomFilial))),;
IIF(IMPSND,SndPlaySound( "..\Sonidos\Notify.wav" ),"") ) ;
VALID MsgYesNo( "Salir del Sistema" ,cVersion)

DIRCHANGE("\FWVENTAS\DATA")

IMPOSV:=nWindows
IMPHOY:=DATE()
IMPNTX:=.F.

* Mascaras para PICTURE

IMPMPV:=IIF(!EMPTY(IMPDPV),"999,999"+"."+REPL("9",IMPDPV),"999,999")
IMPMPC:=IIF(!EMPTY(IMPDPC),"999,999"+"."+REPL("9",IMPDPC),"999,999")
IMPMUM:=IIF(!EMPTY(IMPMUM),"999,999"+"."+REPL("9",IMPDUM),"999,999")

SAVE TO HEADIMPT ALL LIKE IMP* FIL* MA*

SET RESOURCES TO // Desactivamos los recursos definidos.

FreeLibrary( hBorland ) // We have finish with it

Return nil

Y abro todavia dos, y como veras los IMP* FIL* y mascaras para PICTURE las pongo en un MEM me ha funcionado muy bien el Clipper puro pero ahora con regular exito.

Estoy con Clipper 5.3b FW 2.4 y Blinker 7.0

y el LNK

BLINKER CLIPPER SYMBOL OFF
BLINKER EXECUTABLE COMPRESS
BLINKER EXECUTABLE CLIPPER F30
MAP A,S

PACKCODE
PACKDATA

// If you use Mr. Debug for Windows product
// search c:\mrdebug\lib\mrd4win.lib

FILE VT20999, VT20998, VT20100, VT20150, VT20199, VT20200, VT20299, VT20300, VT20400, VT20500, VT20550, VT20600, VT20700, VT20710, VT20800, VT20900, VT20340, VT20000
FILE TGET, TGRAPH, TDOSPRN, SSAY,TCBROWSE, fwcalen,F:\clip53\obj\mpar

DEFBEGIN
name FiveWin
description 'Clipper for Windows library'
exetype Windows 3.1
code moveable discardable
data preload moveable
stacksize 10500
heapsize 8500
segment 'PLANKTON_TEXT' nondiscardable
segment 'EXTEND_TEXT' nondiscardable
segment 'OM_TEXT' nondiscardable
segment 'OSMEM_TEXT' nondiscardable
segment 'SORTOF_TEXT' nondiscardable
segment 'STACK_TEXT' nondiscardable
DEFEND

NOBELL

SEARCH Five, FiveC, Objects, SBROWSE
BTNGET, FILEXLS
LIB WinApi, Clipper, Extend, Terminal, dbfcdx, _dbfcdx, CTP53, BTNGET, FILEXLS


GRACIAS

Att.
Luis Ponce

Posted: Sat Sep 27, 2008 6:23 am
by Antonio Linares
Luis,

> ahora con regular exito.

El problema cual es ? GPFs ?

Donde ocurren ? Has puesto trazas en tu programa usando MsgInfo() para localizar el punto exacto en donde se genera un GPF ?

Tendrás que generar un fichero MAP usando MAP A,S con Bliker y buscar la dirección del GPF dentro de él.

Mi mejor consejo es que migres a 32 bits usando FWH y Harbour/xHarbour.

Posted: Sat Sep 27, 2008 4:38 pm
by LuisPonce
El problema es que se ha vuelto inestable, debido a los problemas de GPF, en las listas de articulos muestra un grafico con el ON CHANGE del LISTBOX y si lo pasa muy rapido da error stck fault 650, uso la TIMAGE para poder mostrar JPG, el scroll del mouse no va para arriba... y no logro solucionar estos inconvenientes, debo estar haciendo algo mal.

Gracias Antonio, quisiera hacer caminar el sistema para migrar a paso firme a 32 bits, cuales serian los pasos y como cambiaria mi entorno de programacion.

Att.

Posted: Sat Sep 27, 2008 5:29 pm
by Ruben D. Fernandez
Hola Luis:

Seguramente ese problema es que estas usando NViewlib o
algo parecido. Ese fue unos de mi problemas en 16 bits.

(Si las imagenes son JPG prueba primerpo con BMPs)

Ahoar con 32 bits, no ocurre, usas JPG o BMP sin problemas.

De todos modos trata de ubicar la FreeImage.dll, y busca
en utilidades en el foro que debe de haber algo.

Yo use esta solucion alternativa. Pero igualmente
lo unico que te salvara definitivamente es pasarte a Harbour .

Saludos

Ruben Fernandez.