Jump to content
Fivewin Brasil

reneumg

Membros
  • Posts

    105
  • Joined

  • Last visited

About reneumg

  • Birthday 07/31/1967

Profile Information

  • Gender
    Not Telling

reneumg's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Vou Dar meu pitaco, se é que entendi o Post. Se fazer assim: Exemplo: Select("CLIENTE") index on Upper(NOME) tag NOMECLI to ("C:\TABELA") vBusca:="ANTONIO C" CLIENTE->(DbSeek(vBusca,.t.)) Ou SET SOFTSEEK ON CLIENTE->(DbSeek(vBusca)) SET SOFTSEEK OFF Fim
  2. Valeu Galera, Tai uma coisa simples que eu não sabia como fazer, procurei em todos os exemplos e não achei. Rochinha, como é que não pensei nisso antes, usava este :nAt pra saber o registro que estava mas não sabia como posicionar nele, apanhei pra kct rsrsrsrs. Valeu mesmo, Obrigado.
  3. Eroni, obrigado por responder mas não achei ai a minha resposta. Não sei se vc entendeu, por exemplo quando eu jogo um DBF no listbox e uso a função DBF->(DBGoTo(Reg)) e dou um :Refresh() em seguida fica lá o registro que eu quero e os que estão proximo, quero fazer isso em uma array será que isso é possivel?
  4. Boa tarde galera. Estou tentando posicionar o ponteiro em uma array em um listbox e não consigo, Deixa eu me explicar: Tenho um Listbox assim; REDEFINE LISTBOX oLbx ; FIELDS aItens[ oLbx:nAt, 1 ],; aItens[ oLbx:nAt, 2 ],; aItens[ oLbx:nAt, 3 ],; AllTrim(aItens[ oLbx:nAt, 4 ])+" - "+aItens[ oLbx:nAt, 5 ] ; ID 200 OF oDlg ; TITLE "CNPJ ou CPF", "Nome do Cliente", "Endereço", "Cidade" ; FIELDSIZES 120, 300, 280, 200 ; ON LEFT DBLCLICK (oReg:=oLbx:nAt, ICliente(oCursor, oCNPJCli, aItens, .f.), oLbx:SetArray( aItens ), oLbx:Refresh(),; oCNPJCli:=aItens[ oReg, 1 ] ) ; ON CHANGE ( oCNPJCli:=aItens[ oLbx:nAt, 1 ]) ; COLOR CLR_BLUE Quando eu Altero ou Incluo um cliente ou faço uma busca do cliente pelo cnpj não sei como posiciar o ponteiro no listbox. Ex: Tenho 1000 registo ai e tenho que ir no registro 500 como faço isso. Assim eu acho o Registro oReg:=AScan( aItens, { | a | oCNPJCli== a[ 1 ] } ) Mas como usar as funcões oLbx:SetArray( aItens ), oLbx:Refresh() Desde ja agradeço quem puder me ajudar
  5. Herberson, Vê se não ta faltando nada ai, no meu sistema assim ta funcionando, essa Dll é meio embaçada. já sofri muito com ela, As vezes são essas propriedades InicioNossoNumero , FimNossoNumero , ProximoNossoNumero ou ArquivoRemessa:Sequencia, eu nunca vi esse erro ai não. Abs. ********************************************************************************************************************* oCBX:= TOleAuto():New("CobreBemX.ContaCorrente") // Monta arquivo de licença de teste para banco 001 carteira 51 oCBX:ArquivoLicenca := "c:\CobreBemX\licenca\09999999000199-001-51.conf" If !File("c:\CobreBemX\licenca\09999999000199-001-51.conf") nMsgBox( "c:\CobreBemX\licenca\09999999000199-001-51.conf", "Arquivo de Licenca Não Localizado") RETURN( .t. ) EndIf // Monta dados da Agencia oCBX:CodigoAgencia := "9999" // Monta dados do Cod. Cedente oCBX:CodigoCedente := "99999999" // Monta dados da Sequencia do Arq. de Remessa oCBX:ArquivoRemessa:Sequencia:= "0001" // Monta dados do Sequencia Inicio nosso Número If oNossoNo= oCBX:InicioNossoNumero := "0001" EndIf // Monta dados da Sequencia Proximo nosso Número If oNossoNo= oCBX:ProximoNossoNumero := "0002" EndIf // Monta dados da Sequencia Fim nosso Número If oNossoNo= oCBX:FimNossoNumero := "0099" EndIf oCBX:PadroesBoleto:PadroesBoletoImpresso:ArquivoLogotipo := "c:\CobreBemX\Imagens\"+COD_BAN+".jpg" //BannerCBX.gif" oCBX:PadroesBoleto:PadroesBoletoImpresso:CaminhoImagensCodigoBarras := "c:\CobreBemX\Imagens\" oCBX:PadroesBoleto:InstrucoesCaixa:=MensBOL oCBX:PadroesBoleto:Demonstrativo:="Mensagem do corpo do boleto se vc for impromir" Do While !Eof() // Inicia a Linha da Remessa oBoleto := oCBX:DocumentosCobranca:Add() oMeusDds:= oBoleto:MeusDados:Add() oMeusDds:Nome:="TipoDocumentoTradicional" //"TipoDocumentoTradicional" ou "TipoDocumentoEscritural" oMeusDds:Valor:="Sim" // Monta dados do sacado oBoleto:NomeSacado := X->NOME oBoleto:DataDocumento := Dtoc(X->DT_EMISS) oBoleto:DataVencimento := Dtoc(X->DT_VENC) oBoleto:NumeroDocumento:= X->NUM_DUPL oBoleto:ValorDocumento := X->VALOR oBoleto:BancoEmiteBoleto := .t. // .f. o cliente Imprime se, .t. o Banco Imprime oBoleto:DiasProtesto := "05" oBoleto:InstrucaoCobranca1 := "2" //Codigo para Baixa/Devolução oBoleto:InstrucaoCobranca2 := " " oBoleto:InstrucaoCobranca3 := "2" //1-Baixar/Devolver 2-Nao oBoleto:CalculaDacNossoNumero := iif(oNossoNo=,.t.,.f.) oBoleto:BancoGeraNossoNumero := iif(oNossoNo=[N],.t.,.f.) oBoleto:TipoDocumentoCobranca := X->TIPODOC oBoleto:ValorDesconto := X->VAL_DESC oBoleto:ValorjurosdiaAtraso := X->JRS_DIA If vMulta>0 oBoleto:ValorMultaAtraso := (X->VALOR*vMulta) //Multa EndIf oBoleto:CPFSacado := AllTrim(X->CPF_CNPJ) oBoleto:EnderecoSacado := AllTrim(X->ENDERECO) oBoleto:BairroSacado := AllTrim(X->BAIRRO) oBoleto:CidadeSacado := AllTrim(X->CIDADE) oBoleto:EstadoSacado := X->UF oBoleto:CepSacado := X->CEP If oNossoNo= oCBX:CalcularDadosBoletos() oDbf:NOSSO_NO := oBoleto:NossoNumero EndIf DBSkip() EndDo DBGoTop() //Gera o arquivo de remessa oCBX:ArquivoRemessa:Arquivo := oArqRem //"Ex Remessa.txt" oCBX:ArquivoRemessa:Diretorio:= "C:\Banco\" oCBX:ArquivoRemessa:Layout := CNAB400 // "CNAB400" ou "FEBRABAN240" oCBX:GravaArquivoRemessa() //Improme o Boleto oCBX:ImprimeBoletos() //oCBX:End()
  6. oCBX:InicioNossoNumero := 0001 oBoleto := oCBX:DocumentosCobranca:Add() oBoleto:CalculaDacNossoNumero := .t. .... .... If oNossoNo= oCBX:CalcularDadosBoletos() oDBF:NOSSO_NO := oBoleto:NossoNumero EndIf Neste caso ele calcula o nosso numurero, mas vc tem que ou pegar o ultimo nosso numero gereado, ou gerar em outra carteira pra nao gerar duplicidade. Espero que ajude.
  7. A Cobrebem se toronu uma fria, quem tem; comece a pensar em outra coisa, pois eles não estão mais fazendo correcões. o primeiro email que pedi correção em uma carteira do ITAU em 17/04, e o Segundo 30/04 e até hoje não me deram respostas. Resumindo quem já entrou, procure outra ferramento, quem não entrou, NÃO ENTRE. 1º Email--> Suporte Técnico Cobre Bem Adicionar aos contatos 17/04/2014 Para: Reneu Mendes Garcia Prezado(a) Reneu Reneu Mendes Garcia, Obrigado por entrar em contato conosco. Foi aberto um chamado junto à nossa equipe de desenvolvimento. Assim que esse estiver concluído, retornaremos o contato através deste e-mail. Por favor, aguarde nosso retorno. Colocamo-nos a sua disposição para esclarecer eventuais dúvidas. Atenciosamente, Marcelo Andrade | Cobre Bem Tecnologia www.cobrebem.com.br RJ: +55 (21) 2288 5990 SP: +55 (11) 5041 2228 Suporte Técnico Cobre Bem Adicionar aos contatos 30/04/2014 Para: Reneu Mendes Garcia ******************************************************************************************* 2º Email----> Prezado(a) Reneu Reneu Mendes Garcia, Obrigado por entrar em contato conosco. Ainda não obtivemos um parecer quanto a prazo para conclusão deste chamado. Esse permanece em desenvolvimento e assim que estiver concluso, retornaremos o contato através deste mesmo histórico. Colocamo-nos a sua disposição para esclarecer eventuais dúvidas. Atenciosamente, Marcelo Andrade | Cobre Bem Tecnologia www.cobrebem.com.br RJ: +55 (21) 2288 5990 SP: +55 (11) 5041 2228
  8. Valeu Amigo João, Assim também abriu.. Com a dll acho que vai funcionar melhor. CNN:Open("DRIVER=Firebird/InterBase® driver;"+; "Password=masterkey;"+; "User ID=sysdba;"+; "Database=D:\FireBird\promaspe.fdb;"+; "dbclient_library=fbclient.dll") Abraço
  9. Ah Pessoal Assim Abriu Leu e Gravou, Será que é esse o Jeito Certo? public CNN Try CNN:=CreateObject("ADODB.Connection") CNN:Open("driver=Firebird/InterBase® driver;Server=d em Computador;Database="+D:\FireBird\promaspe.fdb+";Uid="+alltrim(upper(m_usuario))+";Pwd="+alltrim(m_senha)+";") Catch e Error Connection CNN QUIT End
  10. Olá Pessoal. Alguém sabe como usar o comando para abir um BD Firebird com ADODB ; Achei os comandos abaixo em xharbour mas da o erro.: Erro Nativo: -904 Descrição..: [ODBC Firebird Driver] unavailable database public CNN Try CNN:=CreateObject("ADODB.Connection") CNN:Open("DRIVER=Firebird/InterBase® driver;UID=SYSDBA;PWD=masterkey;DBNAME=D:\FireBird\promaspe.fdb;CHARSET=WIN1252;DIALECT=3;CLIENT=fbclient.dll") Catch e Error Connection CNN ? "Erro Connection" Quit End Ah tentei também miudar a dll de fbCliente.dll p/ fbembed.dll mas não deu certo Se alguém souber e puder me ajudar eu agradeço
  11. Esse seu problema ta muito estranho já que vc disse que está funcionando em outro lugar, tente sair do campo com TAB ou de outra maneira sem usar o enter e vê se da o mesmo erro, as vezes o erro esta no próximo campo ou em outro lugar num when ou valid, sei lá. é muito dificil saber o que ta errado no sistema.
  12. Bom dia Primeiro ve se não tem nada de diferente da tela que vc ta fazendo com as anteriores do workshop, e tente o exemplo abaixo. No workshop na Dialog q vc fez clique botão direito e entre em Edit as Text... vc vai ver se os fontes são iguais. ******************************************************************************************************** Local aUF, oUF, oCmb aUF := { "AC","AL","AM","AP","BA","CE","DF","ES","GO","MA","MG","MT","MS","PA",; "PB","PE","PI","PR","RJ","RN","RO","RR","RS","SC","SE","SP","TO" } oUF:="SP" REDEFINE COMBOBOX oCmb Var oUF ITEMS aUF ID 109 OF oDlg02 UPDATE
  13. Boa Tarde Oscar De uma olhada na Classe, talvez vc tem essa resposta lá. C:\FWH\SOURCE\CLASSES\printer.prg oPrn := PrintBegin( oTitulo, ; // Titulo .F., ; // User lPreview,; // Preview nil, ; // Model lModal, .F. ) // lselect Abraços
  14. Valeu Yury deu certo sua dica *Mudei este //PRINTER oPrn FROM USER preview NAME "Ficha Técnica do Produto" MODAL // Escolhe a Impressora *Para Este oPrn:=PrintBegin("Ficha Técnica do Produto", .T., .T., NIL, .T.) Ah não tinha visto que tinha ficado daquele jeito, tá corrigido. Obrigado.
  15. Bom dia pessoal. Estou tentando fazer uma impressao usando o Fw 13.02 BCC5.82 e esta acontecento o seguinte. Depois da impressao ao inves de parar no preview da impressao ele volta para a Dialog que pedi a impressao e a impressao fica embaixo desta dialog. Como resolver isso? Desde ja Agradeco quem puder me ajudar. Fontes Abaixo -; //------------------------------------------------------------// * FUNCION : F_RelFichaProd() -> NIL * * * * FUNCTION F_RelFichaProd() Local oDlg, oLst, oDbfCd, oGet[6], lNv:=.f. Local aTipo:={.t.,.f.,.f.,.f.} If !Acesso_Modulo("R") Return .f. EndIf vBusca:="" Select("PRODUTO") DATABASE oDbfCd oDbfCd:Load() oDbfCd:bEoF := {|| NIL} oDbfCd:bBoF := {|| NIL} F_OrdScope( "MATPROD", PRODUTO->COD_PRO) MATPROD->(DbSetRelation("MATERIAL",{||MATPROD->COD_MAT},"MATPROD->COD_MAT")) PRODUTO->(DbSetRelation("GRUPOPRO",{||PRODUTO->GRUP_PRO},"PRODUTO->GRUP_PRO")) DEFINE DIALOG oDlg RESOURCE "Dlg_FichaTecPro" REDEFINE GET oGet[1] VAR oDbfCD:COD_PRO ID 101 OF oDlg UPDATE ; PICTURE "@R 99/99.999" WHEN .f. REDEFINE GET oGet[2] VAR oDbfCD:NOME ID 102 OF oDlg UPDATE ; PICTURE "@!" WHEN .f. REDEFINE CHECKBOX oGet[3] var aTipo[1] ID 103 OF oDlg ; ON CLICK ( aTipo:={.t.,.f.,.f.,.f.}, F_Refresh(oGet, 3, 6)) REDEFINE CHECKBOX oGet[4] var aTipo[2] ID 104 OF oDlg ; ON CLICK ( aTipo:={.f.,.t.,.f.,.f.}, F_Refresh(oGet, 3, 6)) REDEFINE CHECKBOX oGet[5] var aTipo[3] ID 105 OF oDlg ; ON CLICK ( aTipo:={.f.,.f.,.t.,.f.}, F_Refresh(oGet, 3, 6)) REDEFINE CHECKBOX oGet[6] var aTipo[4] ID 106 OF oDlg ; ON CLICK ( aTipo:={.f.,.f.,.f.,.t.}, F_Refresh(oGet, 3, 6)) REDEFINE LISTBOX oLbx1 ; FIELDS PRODUTO->COD_PRO,; PRODUTO->NOME,; PRODUTO->UNIDADE ; ID 200 OF oDlg ; FIELDSIZES 90, 330, 45 ; TITLE "Codigo", "Descrição", "Unid." ; ON LEFT DBLCLICK (BscFocus(oGet[3]) ) ; ON CHANGE (oDbfCD:Load(), F_OrdScope( "MATPROD", oDbfCD:COD_PRO), F_Refresh(oGet, 1, 2)) ; COLOR CLR_BLUE oLbx1:bGoTop:={|| 1 } oLbx1:cAlias:= "PRODUTO" oLbx1:bKeyChar = { | nKey | LstBusca( oLbx1, nKey ) } oLbx1:aActions:= {{|| PRODUTO->(dbSetOrder(1)),oLbx1:Refresh() },; {|| PRODUTO->(dbSetOrder(2)),oLbx1:Refresh() }} oGet[1]:lDisColors := .f. oGet[2]:lDisColors := .f. REDEFINE BTNBMP ID 10 OF oDlg RESOURCE "Print32" ; TOOLTIP "Imprimir o Produto" ; NOBORDER ; ACTION (ImprFichaProduto("MATPROD", aTipo)) REDEFINE BTNBMP ID 20 OF oDlg RESOURCE "Cancel" ; TOOLTIP "Sair do Modulo" ; NOBORDER ACTION (oDlg:End()) ACTIVATE DIALOG oDlg Center RETURN ( NIL ) *************************************************************************************** Function ImprFichaProduto(oAuxil, aT_Prc) Local oFnt[4], oPn[3], oLi, oLb , oPag:=1, oTot:=0 Local oT_Incid:=0, oMarg:=0, oMark:=0, oPreco Public oPrn oLi:=0.6 PRINTER oPrn FROM USER preview NAME "Ficha Técnica do Produto" // Escolhe a Impressora // oPrn:SetLandScape() // Paisagem oPrn:SetPortrait() //Retrato oPrn:SetPage(9) //A4 oPrn:SetSize(2150,2790) If Empty( oPrn:hDC ) msgalert("Impressora não esta Instalada!!!") Return nil // Printer was not installed or ready Endif Define FONT oFnt[1] NAME "Ms Sans Serif" SIZE 0, -6 OF oPrn Define FONT oFnt[2] NAME "Ms Sans Serif" SIZE 0, -8 OF oPrn BOLD Define FONT oFnt[3] NAME "Ms Sans Serif" SIZE 0, -10 OF oPrn ITALIC Define FONT oFnt[4] NAME "Times New Roman" SIZE 0, -14 OF oPrn Define PEN oPn[1] width 0.5 of oPrn Define PEN oPn[2] width 1 of oPrn Define PEN oPn[3] width 3 of oPrn PAGE oLi+=0.4 SayTxt( oLi, 5.30 , "FICHA DE COMPOSIÇÃO DO PRODUTO", oFnt[4], oprn) SayBox( oLi, 0.2 , oLi+.6, 20.0 , oPrn , oPn[1]) oLi+=0.6 SayTxt( oLi, 0.40 , "Código", oFnt[1], oprn) SayTxt( oLi, 3.10 , "Descrição do Produto", oFnt[1], oprn) SayTxt( oLi,12.60 , "Unid.", oFnt[1], oprn) SayTxt( oLi,14.40 , "Grupo de Venda", oFnt[1], oprn) SayTxt( oLi+.2, 0.40 , PRODUTO->COD_PRO, oFnt[3], oprn) SayTxt( oLi+.2, 3.10 , PRODUTO->NOME , oFnt[3], oprn) SayTxt( oLi+.2,12.60 , PRODUTO->UNIDADE, oFnt[3], oprn) SayTxt( oLi+.2,14.40 , GRUPOPRO->GRUP_PRO+"-"+GRUPOPRO->DESCR, oFnt[3], oprn) SayBox( oLi, 0.2 , oLi+.6, 03.0 , oPrn , oPn[1]) SayBox( oLi, 3.0 , oLi+.6, 12.5 , oPrn , oPn[1]) SayBox( oLi,12.5 , oLi+.6, 14.3 , oPrn , oPn[1]) SayBox( oLi,14.3 , oLi+.6, 20.0 , oPrn , oPn[1]) oLi+=0.6 (oAuxil)->(DbGotop()) Do While !(oAuxil)->(Eof()) oPreco:=iif(aT_Prc[2], MATERIAL->ULT_PRECO,; iif(aT_Prc[3], MATERIAL->MED_PRECO,; iif(aT_Prc[4], MATERIAL->MOR_PRECO, MATERIAL->COT_PRECO))) SayTxt( oLi, 0.30 , "Código", oFnt[1], oprn) SayTxt( oLi, 1.80 , "Descrição do Material", oFnt[1], oprn) SayTxt( oLi, 9.30 , "Quantidade", oFnt[1], oprn) SayTxt( oLi,10.50 , "Peso Espec.", oFnt[1], oprn) SayTxt( oLi,12.10 , "ICMS", oFnt[1], oprn) SayTxt( oLi,13.35 , "IPI", oFnt[1], oprn) SayTxt( oLi,14.40 , "Qtde Total", oFnt[1], oprn) SayTxt( oLi,16.60 , "Val. Unitário", oFnt[1], oprn) SayTxt( oLi,18.60 , "Valor Total", oFnt[1], oprn) SayTxt( oLi+.2, 0.40 , Transform(MATPROD->COD_MAT, [@R 99/99.999] ), oFnt[2], oprn) SayTxt( oLi+.2, 1.90 , MATERIAL->NOME , oFnt[2], oprn) SayTxt( oLi+.2, 9.20 , Transform(MATPROD->QTD_TOT, [@E 99,999.999] ), oFnt[2], oprn) SayTxt( oLi+.2,10.40 , Transform(MATERIAL->PESO_ESP, [@E 9,999.9999] ) , oFnt[2], oprn) SayTxt( oLi+.2,12.00 , Transform(MATERIAL->ICMS, [@E 99.99] )+"%" , oFnt[2], oprn) SayTxt( oLi+.2,13.10 , Transform(MATERIAL->IPI, [@E 999.99] )+"%" , oFnt[2], oprn) SayTxt( oLi+.2,14.30 , Transform(F_QtdeTotal(), [@E 9,999,999.999] )+" "+MATPROD->UNIDADE, oFnt[2], oprn) SayTxt( oLi+.2,16.40 , Transform(oPreco, [@E 9,999,999.999] ), oFnt[2], oprn) SayTxt( oLi+.2,18.10 , Transform(F_CstTotal(F_QtdeTotal(), aT_Prc), [@E 9,999,999.99] ), oFnt[2], oprn) SayBox( oLi, 0.2 , oLi+.5, 01.7 , oPrn , oPn[1]) SayBox( oLi, 1.7 , oLi+.5, 09.2 , oPrn , oPn[1]) SayBox( oLi,09.2 , oLi+.5, 10.4 , oPrn , oPn[1]) SayBox( oLi,10.4 , oLi+.5, 11.9 , oPrn , oPn[1]) SayBox( oLi,11.9 , oLi+.5, 13.1 , oPrn , oPn[1]) SayBox( oLi,13.1 , oLi+.5, 14.3 , oPrn , oPn[1]) SayBox( oLi,14.3 , oLi+.5, 16.4 , oPrn , oPn[1]) SayBox( oLi,16.4 , oLi+.5, 18.0 , oPrn , oPn[1]) SayBox( oLi,18.0 , oLi+.5, 20.0 , oPrn , oPn[1]) oLi+=0.5 oTot+=F_CstTotal(F_QtdeTotal(), aT_Prc) // oLi+=1.2 If oLi >= 25 ENDPAGE oLi:=0.6 PAGE EndIf (oAuxil)->(DBSkip()) EndDo Tot_Encargos(oTot, @oT_Incid, @oMarg, @oMark) SayTxt( oLi, 0.30 , "Incidências", oFnt[1], oprn) SayTxt( oLi, 2.10 , "Marg. Lucro", oFnt[1], oprn) SayTxt( oLi, 4.10 , "Mark Up", oFnt[1], oprn) SayTxt( oLi, 6.10 , "Preço Venda", oFnt[1], oprn) SayTxt( oLi,18.10 , "Custo Total", oFnt[1], oprn) SayTxt( oLi+.2, 0.3, Transform(oT_Incid, [@E 999.99] )+"%", oFnt[3], oprn) SayTxt( oLi+.2, 2.1, Transform(oMarg, [@E 999.99] )+"%", oFnt[3], oprn) SayTxt( oLi+.2, 4.1, Transform(oMark, [@E 99.99999] ), oFnt[3], oprn) SayTxt( oLi+.2, 6.1, Transform(oTot*oMark, [@E 99,999,999.99] ), oFnt[3], oprn) SayTxt( oLi+.2,18.1, Transform(oTot, [@E 9,999,999.99] ), oFnt[3], oprn) SayBox( oLi, 0.2 , oLi+.6, 2.0 , oPrn , oPn[1]) SayBox( oLi, 2.0 , oLi+.6, 4.0 , oPrn , oPn[1]) SayBox( oLi, 4.0 , oLi+.6, 6.0 , oPrn , oPn[1]) SayBox( oLi, 6.0 , oLi+.6, 8.5 , oPrn , oPn[1]) SayBox( oLi,18.0 , oLi+.6, 20.0 , oPrn , oPn[1]) oLi+=0.5 ENDPAGE ENDPRINT CursorArrow() oFnt[1]:End() // Destroy the font object oFnt[2]:End() // Destroy the font object oFnt[3]:End() // Destroy the font object oFnt[4]:End() // Destroy the font object oPn[1]:End() // Destroy the font object oPn[2]:End() // Destroy the font object oPn[3]:End() // Destroy the font object Return nil
×
×
  • Create New...