Page 1 of 1

Saturación de memoria

Posted: Thu Apr 19, 2007 2:53 pm
by mariordz
Aunque he visto que algunas personas han tenido problemas similares en ningún caso he encontrado la solución a mi problema y lo replanteo pra ver si alguien me puede ayudar.

Ejecuto una aplicación que captura las comprobaciones de gastos de viaje de mis usuarios, solo abre una base de datos pero usa muchas ventanas generdas a travez de archivos de recursos (.RC), al principio todo va bien, pero al capturar el programa va incrementandose en recursos consumidos y al final el sistema simplemente se cuelga y no hay otra forma de cerrarlo mas que usando el task manager de windows. Cuando salgo de una ventana en todos _ la cierro (Ovent:end()) pero siempre llego al mismo resultado. ¿Alguna idea?

Muchas gracias por su ayuda

Esto es lo que uso:
Windows 2000
Fivewin 2.6 para xHarbour 16 & 32 bits
Resource builder 2.0
AJ Make 0.33

Posted: Thu Apr 19, 2007 4:21 pm
by Antonio Linares
Mario,

Normalmente ese problema se debe a un consumo de recursos GDI descontrolado.

Usas bitmaps, brushes, fonts, etc. en tu aplicación ? Los liberas correctamente ?

Posted: Thu Apr 19, 2007 5:52 pm
by mariordz
Antonio muchas gracias por tu pronta respuesta, como te imaginaras estoy incursionando en esta plataforma y me falta un buen por aprender, en cuanto a tu pregunta te puedo decir que no uso fonts, bitmaps o brushes en este programa, te transcribo parte del codigo para que tengas una mejor idea de lo que hago (y posiblemente me puedas sugerir alguna alternativa para hacer el programa mas eficiente.


*Funcion para capturar facturas
function capfacts()
public odial4
sino="S"
do while sino="S"
cNfac=space(12)
nMonf=0
dFechf=date()
ivapor=15
nrep1 := nrep1+" "+nrep2+" "+nrep3+" "+nrep4
nomtec="Nombre del técnico: "+alltrim(n1)+" "+alltrim(n2)
nomsolo=alltrim(n1)+" "+alltrim(n2)
public aConcepto := {"Alimentos","Hospedaje","Telefono","Combustible","Papelería","Otros","Casetas","Transporte","Sin comprobación"}
cConcepto := " "
define dialog odial4 resource "capfacs" of oVentprinc
redefine get nomtec ID 0 of oDial4
redefine get numcomp ID 2 of oDial4
redefine get cNfac ID 4 of oDial4 picture"@!" valid IIF(cNfac=" ",.f.,.t.)
redefine get nMonf ID 6 of Odial4 picture("$###,###.##") valid IIF(nMonf=0,.f.,.t.)
redefine get dFechf ID 7 of oDial4
redefine get ivapor ID 9 of oDial4 picture "##" valid IIF(ivapor=0,.f.,.t.)
redefine combobox cconcepto ID 12 ITEMS aconcepto on change eltipo() of oDial4
activate dialog oDial4
sino="N"
enddo
return


*funcion para elegir tipo de factura
function eltipo()
odial4:end()
public oDialpro
do case
case cconcepto="Alimentos"
facalim()
case cconcepto="Hospedaje"
fachosp()
case cconcepto="Telefono"
factele()
case cconcepto="Combustible"
faccomb()
case cconcepto="Papelería"
facpape()
case cconcepto="Otros"
facotro()
case cconcepto="Casetas"
faccase()
case cconcepto="Transporte"
factran()
case cconcepto="Sin comprobación"
sincomp()
endcase
return


**Inician ordenes y funciones para captura de factura de alimentos
function facalim()
prop=0
tope1=150
define dialog oDialpro resource "propina" of oDial4
redefine get prop ID 1 of oDialpro picture"$###.##"
redefine button ID 2 action oDialpro:end()
activate dialog oDialpro
ivapo=ivapor/100
subt1=nMonf-prop
subt2=subt1/(ivapo+1)
miva=subt2*(ivapo)
define dialog oDialrali resource "resali" of oDial4
redefine get folcom ID 9 of oDialrali
redefine get cNfac ID 10 of oDialrali
redefine get cconcepto ID 11 of oDialrali
redefine get subt2 ID 12 of oDialrali picture"$###,###.##"
redefine get miva ID 13 of oDialrali picture"$###,###.##"
redefine get prop ID 14 of oDialrali picture"$###,###.##"
redefine get nMonf ID 15 of oDialrali picture"$###,###.##"
redefine button ID 7 of oDialrali action regali()
redefine button ID 8 of oDialrali action rechali()
activate dialog oDialrali
return



*funcion que agrega el registro capturado a la base de datos
function regali()
odialrali:end()
comexed=space(60)
IF subt2>tope1
define dialog oDialalex resource "alimexed" of oVentprinc
redefine get comexed ID 1 of oDialalex
redefine button ID 2 of oDialalex action oDialalex:end()
activate dialog oDialalex
ENDIF
use &tmpcap
append blank
go bottom
IF lock()
replace comp_orig with folcom, fechcomp with date(), clase with 1, fechaf with dFechf, nofact with cNfac
replace alimentos with subt2, iva with miva, totalxf with nMonf, tech_id with ctechid, subtotal with subt2
replace total with nMonf, propina with prop, reports with nrep1, iva_por with ivapor, observa with comexed
replace status with "G"
unlock
ENDIF
agrotra()
return



*funcion que desecha el registro capturado
function rechali()
oDialrali:end()
agrotra()
return


****************************************
*Finalizan ordenes y funciones de factura de alimentos (de aqui en *adelante muestro ventanas para el desglose por tipo de factura y *despues le pregunto al usuario si desea capturar otra factura)
****************************************


*funcion que permite elegir si desea capturar otra factura
function agrotra()
define dialog oDialotra resource "otraf" of oventprinc
redefine button ID 1 of odialotra action agreotra()
redefine button ID 2 of oDialotra action noagreotra()
activate dialog oDialotra
return



*funcion que al elegir capturar otra llama nuevamente a la funcion de captura
function agreotra()
oDialotra:end()
capfacts()
return




*Funcion que al elegir no agregar factura pide declaracion de rembolso

function noagreotra()
public oDialreem
oDialotra:end()
define dialog oDialreem resource "reembolso" of oVentprinc
redefine button ID 1 of oDialreem action (odialreem:end(),decdev())
redefine button ID 2 of oDialreem action (oDialreem:end(),addreg())
activate dialog oDialreem
return



*funcion que declara el rembolos a la empresa
function decdev()
public oDialdede
montdep := 0
fechdep := date()
obser1 := space(60)
oDialreem:end()
define dialog oDialdede resource "declarad" of oVentprinc
redefine get nomsolo ID 1 of oDialdede
redefine get folcom ID 3 of oDialdede
redefine get montdep ID 7 of oDialdede picture"$###,###.##"
redefine get fechdep ID 9 of oDialdede
redefine get obser1 ID 13 of oDialdede
redefine button ID 14 of oDialdede action (oDialdede:end(), insregde())
redefine button ID 15 of oDialdede action oDialdede:end()
activate dialog oDialdede
return

*Funcion que inserta el registro de rembolso a la base de datos
function insregde()
oDialdede:end()
use &tmpcap
append blank
IF rlock()
replace nofact with " ", comp_orig with folcom, fechcomp with date(), clase with 0, fechr with fechdep
replace tech_id with ctechid, reports with nrep1, observa with obser1, rembolso with montdep
replace status with "G"
unlock
ENDIF
do addreg
return



*Agrega todos los _ de la base de datos de captura (temporal) a la base de datos central
function addreg()
use &dbgast
append from &tmpcap
return

Posted: Thu Apr 19, 2007 8:16 pm
by Antonio Linares
Tu código se ve bien,

Tienes instaladas todas las actualizaciones de Windows 2000 ? Es importante que las instales y que vuelvas a probar

Posted: Thu Apr 19, 2007 8:41 pm
by mariordz
Si, tengo instalado w2k SP 4 y todas las actualizaciones de seguridad, de hecho tengo activadas las actualizaciones automaticas de windows, asi como se las active a todos los usuarios de este programa.

En algun foro leí acerca de aumentar los valores en el fivewin.lnk o generar un acceso directo y activar una casilla para ejecutarlo en un espacio separado de memoria pero hasta el momento no he encontrado la solución.

Nuevamente te agradezco tu apoyo y espero que puedas yudarme a resolverlo.

Posted: Thu Apr 19, 2007 9:56 pm
by Antonio Linares
Mario,

Para descartar que pueda tratarse de un problema relacionado con Windows 2000, podrías probarlo en una versión distinta de Windows, a ser posible XP SP2 ?

Posted: Fri Apr 20, 2007 1:41 pm
by mariordz
Antonio, el perfil de software de la empresa es con win 2k, desafortunadamente no tengo ninguna máquina con un SO diferente para probar.

Posted: Fri Apr 20, 2007 2:06 pm
by Antonio Linares
Mario,

Puedes usar el vmware e instalarlo en una máquina con W2K. El vmware te permite crear un ordenador "virtual" en donde puedes instalar XP y probar en él.

Ahora hay una beta de vmware, plenamente operativa, que puede descargarse desde aqui:
http://www.vmware.com/products/beta/ws/

Posted: Mon Apr 23, 2007 9:53 pm
by Rochinha
Mira mi ejemplo:

Code complete:

Code: Select all

#include "FiveWin.ch"

static oClients, oClient, oName
static cName
static oSplit

FUNCTION EMPRESAS( oWnd, lOque, cTitle )
   local oLbx, oIco, oBar, oGet, oGraph, oItem[10], oEvolucao
   cTitle := "Linha de Produtos"
   if oClients != nil
      return nil
   endif
   SET DELETE ON

   lIncluindo:=.f.
   DEFINE FONT oFntLBX      NAME "Courier New"   SIZE 0, -12
   DEFINE FONT fntArial     NAME "Arial"         SIZE  16,  28
   DEFINE FONT fntHelvetica NAME "Helv"          SIZE  8,  8
   DEFINE FONT fntHelv2     NAME "Helv"          SIZE  6,  6
   ACTIVATE FONT fntHelvetica
   //
   // -> Rotina de abertura de DBFs e Inicializacao de variaveis
   AbreTabelas()
   CarregaTabela()

   if recco()=0
      lIncluindo:=.t.
   endif
   M->NOME     := PADR( VerifyINI( "CLIENTE", "NOME"    , EMPRESA->Nome     , cPath+"nfw.ini", .f. ), 45 )
   M->ENDERECO := PADR( VerifyINI( "CLIENTE", "ENDERECO", EMPRESA->Endereco , cPath+"nfw.ini", .f. ), 45 )
   M->BAIRRO   := PADR( VerifyINI( "CLIENTE", "BAIRRO"  , EMPRESA->Bairro   , cPath+"nfw.ini", .f. ), 25 )
   M->CIDADE   := PADR( VerifyINI( "CLIENTE", "CIDADE"  , EMPRESA->Cidade   , cPath+"nfw.ini", .f. ), 25 )
   M->CEP      := PADR( VerifyINI( "CLIENTE", "CEP"     , EMPRESA->Cep      , cPath+"nfw.ini", .f. ), 09 )
   M->ESTADO   := PADR( VerifyINI( "CLIENTE", "ESTADO"  , EMPRESA->Estado   , cPath+"nfw.ini", .f. ), 02 )
   M->CONTATO  := PADR( VerifyINI( "CLIENTE", "CONTATO" , EMPRESA->Contato  , cPath+"nfw.ini", .f. ), 20 )
   M->TELEFONE := PADR( VerifyINI( "CLIENTE", "TELEFONE", EMPRESA->Telefone , cPath+"nfw.ini", .f. ), 14 )
   M->FAX      := PADR( VerifyINI( "CLIENTE", "FAX"     , EMPRESA->Fax      , cPath+"nfw.ini", .f. ), 14 )
   M->CGC      := PADR( VerifyINI( "CLIENTE", "CGC"     , EMPRESA->Cgc      , cPath+"nfw.ini", .f. ), 20 )
   M->INSCR    := PADR( VerifyINI( "CLIENTE", "IE"      , EMPRESA->Inscr    , cPath+"nfw.ini", .f. ), 20 )
   M->EMAIL    := PADR( VerifyINI( "CLIENTE", "EMAIL"   , EMPRESA->Obs      , cPath+"nfw.ini", .f. ), 45 )

   DEFINE DIALOG oDlg RESOURCE "dlgEmpresa"
          REDEFINE GET      oCtrl101 VAR M->NOME       VALID LiberaBTN(oBTN011) ID 101 OF oDlg
          REDEFINE GET      oCtrl102 VAR M->ENDERECO   VALID LiberaBTN(oBTN011) ID 102 OF oDlg
          REDEFINE GET      oCtrl103 VAR M->BAIRRO     VALID LiberaBTN(oBTN011) ID 103 OF oDlg
          REDEFINE GET      oCtrl104 VAR M->CIDADE     VALID LiberaBTN(oBTN011) ID 104 OF oDlg
          REDEFINE GET      oCtrl105 VAR M->CEP        VALID LiberaBTN(oBTN011) ID 105 OF oDlg
          REDEFINE GET      oCtrl106 VAR M->ESTADO     VALID LiberaBTN(oBTN011) ID 106 OF oDlg
          REDEFINE GET      oCtrl107 VAR M->CONTATO    VALID LiberaBTN(oBTN011) ID 107 OF oDlg
          REDEFINE GET      oCtrl108 VAR M->TELEFONE   VALID LiberaBTN(oBTN011) ID 108 OF oDlg
          REDEFINE GET      oCtrl109 VAR M->FAX        VALID LiberaBTN(oBTN011) ID 109 OF oDlg
          REDEFINE GET      oCtrl110 VAR M->CGC        VALID LiberaBTN(oBTN011) ID 110 OF oDlg
          REDEFINE GET      oCtrl111 VAR M->INSCR      VALID LiberaBTN(oBTN011) ID 111 OF oDlg
          REDEFINE GET      oCtrl112 VAR M->EMAIL      VALID LiberaBTN(oBTN011) ID 112 OF oDlg
          REDEFINE SAY      oCtrl113 VAR STR(RECNO(),2)+"/"+STR(RECCO(),2) ID 113 OF oDlg
          // 
          REDEFINE BTNBMP ID  5 OF oDlg RESOURCE "bmp_pagant"  TOOLTIP "Primeiro registro" ACTION ( dbGoTop()   , CarregaTabela(), LimpaCampos(), oCtrl101:Setfocus(), oCtrl113:SetText(STR(RECNO(),2)+"/"+STR(RECCO(),2)) )
          REDEFINE BTNBMP ID  6 OF oDlg RESOURCE "bmp_regant"  TOOLTIP "Registro Anterior" ACTION ( dbSkip(-1)  , CarregaTabela(), LimpaCampos(), oCtrl101:Setfocus(), oCtrl113:SetText(STR(RECNO(),2)+"/"+STR(RECCO(),2)) )
          REDEFINE BTNBMP ID  7 OF oDlg RESOURCE "bmp_regsig"  TOOLTIP "Proximo registro"  ACTION ( dbSkip(), IIF(RECNO()>RECCO(),(lIncluindo:=.f., oBTN011:Disable()),), CarregaTabela(), LimpaCampos(), oCtrl101:Setfocus(), oCtrl113:SetText(STR(RECNO(),2)+"/"+STR(RECCO(),2)) )
          REDEFINE BTNBMP ID  8 OF oDlg RESOURCE "bmp_pagsig"  TOOLTIP "Ultimo registro"   ACTION ( dbGoBottom(), CarregaTabela(), LimpaCampos(), oCtrl101:Setfocus(), oCtrl113:SetText(STR(RECNO(),2)+"/"+STR(RECCO(),2)) )
          REDEFINE BTNBMP ID  9 OF oDlg RESOURCE "bmp_RegNovo" TOOLTIP "Novo registro"     ACTION ( lIncluindo:=.t., dbGoBottom(), dbSkip(), CarregaTabela("NOVO"), LimpaCampos(), oCtrl101:Setfocus(), oCtrl113:SetText(STR(RECNO(),2)+"/"+STR(RECCO(),2)) )
          REDEFINE BTNBMP ID 10 OF oDlg RESOURCE "bmp_RegCanc" TOOLTIP "Exclui registro"   ACTION ( rLock(), dbDelete(), dbCommitAll(), dbPack(), dbSkip(-1) )
          REDEFINE BTNBMP oBTN011 ID 11 OF oDlg RESOURCE "bmp_floppy" TOOLTIP "Salva registro" ACTION ( sv_emp(), oBTN011:Disable(), lIncluindo:=.f. )
          //
          REDEFINE BTNBMP ID  4 OF oDlg PROMPT "Fechar esta tela" RESOURCE "bmpbtn24"    TOOLTIP "Fechar esta tela"  ACTION ( dbCloseAll(), oDlg:End() ) LEFT
          oBTN011:Disable()
   ACTIVATE DIALOG oDlg CENTERED ;
            VALID ( oDlg := nil, dbCloseAll(), .t.  )
   return nil

static function sv_emp()
   dbSelectArea( "EMPRESA" )
   if lIncluindo
      dbAppend()
   else
      rLock()
   endif
   SalvaTabela()
   dbCommitAll()
   return .t.

static function fun(oBtn)
   return .t.

static function LiberaBTN(oBtn)
   oBtn:Enable()
   return .t.

static function LimpaCampos
   oCtrl101:Refresh()
   oCtrl102:Refresh()
   oCtrl103:Refresh()
   oCtrl104:Refresh()
   oCtrl105:Refresh()
   oCtrl106:Refresh()
   oCtrl107:Refresh()
   oCtrl108:Refresh()
   oCtrl109:Refresh()
   oCtrl110:Refresh()
   oCtrl111:Refresh()
   return .t.

static function AbreTabelas
   //
   //-> Abre arquivos de dados
   dbCloseAll()
   USE EMPRESA EXCLUSIVE
   InitVars()
   return nil

static function CarregaTabela( TIPO_ACAO )
   IF TIPO_ACAO = "NOVO"
      GOTO BOTT
      SKIP
   ENDIF
   M->NOME       := EMPRESA->NOME
   M->ENDERECO   := EMPRESA->ENDERECO
   M->BAIRRO     := EMPRESA->BAIRRO
   M->CIDADE     := EMPRESA->CIDADE
   M->CEP        := EMPRESA->CEP
   M->ESTADO     := EMPRESA->ESTADO
   M->CONTATO    := EMPRESA->CONTATO
   M->TELEFONE   := EMPRESA->TELEFONE
   M->FAX        := EMPRESA->FAX
   M->CGC        := EMPRESA->CGC
   M->INSCR      := EMPRESA->INSCR
   IF TIPO_ACAO = "NOVO"
      M->CIDADE    := 'SAO PAULO                '
      M->ESTADO    := 'SP'
      M->TELEFONE  := '(   )    -    '
      M->FAX       := '(   )    -    '
      M->CEP       := '     -   '
   ENDIF
   return .t.

static function SalvaTabela
   EMPRESA->NOME       := M->NOME
   EMPRESA->ENDERECO   := M->ENDERECO
   EMPRESA->BAIRRO     := M->BAIRRO
   EMPRESA->CIDADE     := M->CIDADE
   EMPRESA->CEP        := M->CEP
   EMPRESA->ESTADO     := M->ESTADO
   EMPRESA->CONTATO    := M->CONTATO
   EMPRESA->TELEFONE   := M->TELEFONE
   EMPRESA->FAX        := M->FAX
   EMPRESA->CGC        := M->CGC
   EMPRESA->INSCR      := M->INSCR
   EMPRESA->OBS        := M->EMAIL
   COMMIT
   return .t.
Resources

Code: Select all

dlgEmpresa DIALOG 72, 61, 316, 157
STYLE 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
CAPTION "Cadastro de Empresa"
FONT 8, "Helv"
{
 GROUPBOX "Dados de Empresa", 99, 6, 2, 251, 131, BS_GROUPBOX
 CONTROL "", 100, "static", SS_WHITERECT | WS_CHILD | WS_VISIBLE | WS_BORDER, 163, 175, 102, 32
 CONTROL "101", 101, "EDIT", WS_BORDER | WS_TABSTOP, 69, 14, 180, 12
 CONTROL "102", 102, "EDIT", WS_BORDER | WS_TABSTOP, 69, 31, 180, 12
 CONTROL "103", 103, "EDIT", WS_BORDER | WS_TABSTOP, 69, 47, 88, 12
 CONTROL "104", 104, "EDIT", WS_BORDER | WS_TABSTOP, 161, 47, 88, 12
 CONTROL "105", 105, "EDIT", WS_BORDER | WS_TABSTOP, 69, 64, 55, 12
 CONTROL "106", 106, "EDIT", WS_BORDER | WS_TABSTOP, 129, 64, 28, 12
 CONTROL "107", 107, "EDIT", WS_BORDER | WS_TABSTOP, 161, 64, 88, 12
 CONTROL "108", 108, "EDIT", WS_BORDER | WS_TABSTOP, 69, 81, 88, 12
 CONTROL "109", 109, "EDIT", WS_BORDER | WS_TABSTOP, 161, 81, 88, 12
 CONTROL "112", 112, "EDIT", WS_BORDER | WS_TABSTOP, 69, 115, 180, 12
 PUSHBUTTON "&Fechar", 4, 175, 137, 82, 15
 LTEXT "Razão Social:", -1, 12, 17, 50, 8
 LTEXT "Endereco:", -1, 12, 33, 50, 8
 LTEXT "Bairro/Cidade:", -1, 12, 49, 50, 8
 LTEXT "CEP/UF/Contato:", -1, 12, 66, 55, 8
 LTEXT "Telefone/Fax:", -1, 12, 83, 55, 8
 LTEXT "Email:", -1, 12, 117, 55, 8
 ICON "icon_info", -1, 320, 192, 18, 20
 CONTROL "TBtnBmp", 7, "TBtnBmp", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 40, 138, 14, 14
 CONTROL "TBtnBmp", 8, "TBtnBmp", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 57, 138, 14, 14
 CONTROL "TBtnBmp", 5, "TBtnBmp", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 6, 138, 14, 14
 CONTROL "TBtnBmp", 6, "TBtnBmp", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 23, 138, 14, 14
 CONTROL "TBtnBmp", 9, "TBtnBmp", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 138, 14, 14
 CONTROL "TBtnBmp", 10, "TBtnBmp", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 91, 138, 14, 14
 CONTROL "TBtnBmp", 11, "TBtnBmp", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 107, 138, 14, 14
 CONTROL "110", 110, "EDIT", WS_BORDER | WS_TABSTOP, 69, 98, 88, 12
 CONTROL "111", 111, "EDIT", WS_BORDER | WS_TABSTOP, 161, 98, 88, 12
 LTEXT "CGC/INSCR:", -1, 12, 100, 55, 8
 LTEXT "Text", 113, 125, 138, 47, 14, WS_BORDER | WS_GROUP
}

bmp_pagant BITMAP 
{
'42 4D F6 00 00 00 00 00 00 00 76 00 00 00 28 00'
'00 00 10 00 00 00 10 00 00 00 01 00 04 00 00 00'
'00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 80'
'00 00 00 80 80 00 80 00 00 00 80 00 80 00 80 80'
'00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF'
'00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF'
'00 00 FF FF FF 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77'
'77 77 77 77 77 77 77 77 77 07 77 77 07 77 77 77'
'70 07 77 70 07 77 77 77 00 07 77 00 07 77 77 70'
'00 07 70 00 07 77 77 00 00 07 00 00 07 77 77 70'
'00 07 70 00 07 77 77 77 00 07 77 00 07 77 77 77'
'70 07 77 70 07 77 77 77 77 07 77 77 07 77 77 77'
'77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77'
'77 77 77 77 77 77'
}

bmp_regant BITMAP 
{
'42 4D F6 00 00 00 00 00 00 00 76 00 00 00 28 00'
'00 00 10 00 00 00 10 00 00 00 01 00 04 00 00 00'
'00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 80'
'00 00 00 80 80 00 80 00 00 00 80 00 80 00 80 80'
'00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF'
'00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF'
'00 00 FF FF FF 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77'
'77 77 77 77 77 77 77 77 77 77 70 77 77 77 77 77'
'77 77 00 77 77 77 77 77 77 70 00 77 77 77 77 77'
'77 00 00 77 77 77 77 77 70 00 00 77 77 77 77 77'
'77 00 00 77 77 77 77 77 77 70 00 77 77 77 77 77'
'77 77 00 77 77 77 77 77 77 77 70 77 77 77 77 77'
'77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77'
'77 77 77 77 77 77'
}

bmp_pagsig BITMAP 
{
'42 4D F6 00 00 00 00 00 00 00 76 00 00 00 28 00'
'00 00 10 00 00 00 10 00 00 00 01 00 04 00 00 00'
'00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 80'
'00 00 00 80 80 00 80 00 00 00 80 00 80 00 80 80'
'00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF'
'00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF'
'00 00 FF FF FF 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77'
'77 77 77 77 77 77 77 70 77 77 70 77 77 77 77 70'
'07 77 70 07 77 77 77 70 00 77 70 00 77 77 77 70'
'00 07 70 00 07 77 77 70 00 00 70 00 00 77 77 70'
'00 07 70 00 07 77 77 70 00 77 70 00 77 77 77 70'
'07 77 70 07 77 77 77 70 77 77 70 77 77 77 77 77'
'77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77'
'77 77 77 77 77 77'
}

bmp_regsig BITMAP 
{
'42 4D F6 00 00 00 00 00 00 00 76 00 00 00 28 00'
'00 00 10 00 00 00 10 00 00 00 01 00 04 00 00 00'
'00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 80'
'00 00 00 80 80 00 80 00 00 00 80 00 80 00 80 80'
'00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF'
'00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF'
'00 00 FF FF FF 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77'
'77 77 77 77 77 77 77 77 77 07 77 77 77 77 77 77'
'77 00 77 77 77 77 77 77 77 00 07 77 77 77 77 77'
'77 00 00 77 77 77 77 77 77 00 00 07 77 77 77 77'
'77 00 00 77 77 77 77 77 77 00 07 77 77 77 77 77'
'77 00 77 77 77 77 77 77 77 07 77 77 77 77 77 77'
'77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77'
'77 77 77 77 77 77'
}

bmp_RegNovo BITMAP 
{
'42 4D F4 00 00 00 00 00 00 00 76 00 00 00 28 00'
'00 00 0E 00 00 00 0E 00 00 00 01 00 04 00 00 00'
'00 00 70 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 BF 00 00 BF'
'00 00 00 BF BF 00 BF 00 00 00 BF 00 BF 00 BF BF'
'00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF'
'00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF'
'00 00 FF FF FF 00 77 77 77 77 77 77 77 00 77 77'
'77 77 77 77 77 00 77 77 77 77 77 77 77 00 77 77'
'77 00 77 77 77 00 77 77 77 00 77 77 77 00 77 77'
'77 00 77 77 77 00 77 70 00 00 00 07 77 00 77 70'
'00 00 00 07 77 00 77 77 77 00 77 77 77 00 77 77'
'77 00 77 77 77 00 77 77 77 00 77 77 77 00 77 77'
'77 77 77 77 77 00 77 77 77 77 77 77 77 00 77 77'
'77 77 77 77 77 00 77 77 77 77 77 00 77 77 77 77'
'77 77 77 00'
}

bmp_RegCanc BITMAP 
{
'42 4D 04 01 00 00 00 00 00 00 76 00 00 00 28 00'
'00 00 10 00 00 00 10 00 00 00 01 00 04 00 00 00'
'00 00 80 00 00 00 C4 0E 00 00 C4 0E 00 00 10 00'
'00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 80'
'00 00 00 80 80 00 80 00 00 00 80 00 80 00 80 80'
'00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF'
'00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF'
'00 00 FF FF FF 00 77 77 77 77 77 77 77 77 77 77'
'77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77'
'77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77'
'00 77 77 00 77 77 77 77 70 07 70 07 77 77 77 77'
'77 00 00 77 77 77 77 77 77 70 07 77 77 77 77 77'
'77 00 00 77 77 77 77 77 70 07 70 07 77 77 77 77'
'00 77 77 00 77 77 77 77 77 77 77 77 77 77 77 77'
'77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77'
'77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77'
'77 77 77 77'
}

bmp_floppy BITMAP 
{
'42 4D F6 00 00 00 00 00 00 00 76 00 00 00 28 00'
'00 00 10 00 00 00 10 00 00 00 01 00 04 00 00 00'
'00 00 80 00 00 00 C4 0E 00 00 C4 0E 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 80'
'00 00 00 80 80 00 80 00 00 00 80 00 80 00 80 80'
'00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF'
'00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF'
'00 00 FF FF FF 00 77 77 77 77 77 77 77 77 77 00'
'00 00 00 00 00 07 70 33 00 00 00 77 03 07 70 33'
'00 00 00 77 03 07 70 33 00 00 00 77 03 07 70 33'
'00 00 00 00 03 07 70 33 33 33 33 33 33 07 70 33'
'00 00 00 00 33 07 70 30 77 77 77 77 03 07 70 30'
'77 77 77 77 03 07 70 30 77 77 77 77 03 07 70 30'
'77 77 77 77 03 07 70 30 77 77 77 77 00 07 70 30'
'77 77 77 77 07 07 70 00 00 00 00 00 00 07 77 77'
'77 77 77 77 77 77'
}

Posted: Tue Apr 24, 2007 1:56 am
by horacio
Rochinha : en el código tenes creadas unas funetes que después no destrís. No se si eso puede consumir demasiados recursos. probá a ver que sucede. espero te sirva

saludos