Login
Buscar
Quem está conectado
Há 4 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 4 Visitantes :: 2 Motores de buscaNenhum
[ Ver toda a lista ]
O recorde de usuários online foi de 337 em 27/12/2010, 08:00
Brasília
| |
Estamos no Twitter

Nossa Comunidade

Nosso Grupo

Últimos assuntos
Top dos mais postadores
| Marcos Guedes | ||||
| hugo | ||||
| alceu11 | ||||
| Julio | ||||
| m@r<3|o | ||||
| mfelis | ||||
| Tales Ruan | ||||
| Nelson Arcas | ||||
| _batmanvfp_ | ||||
| marcio |
Estatísticas
Temos 3637 usuários registradosO último usuário registrado atende pelo nome de reginaldolimas
Os nossos membros postaram um total de 13981 mensagens em 1959 assuntos
[Tópico Único] - Dicas e Truques
Página 1 de 3 • Compartilhe •
Página 1 de 3 • 1, 2, 3 
[Tópico Único] - Dicas e Truques
Manipulando Formulários:
- Código:
DO FORM "seuForm.scx" NAME formAberto
formAberto.WindowState = 1 && Minimza a janela
formAberto.WindowState = 0 && Restaura a janela
formAberto.show() && Traz para frente
formAberto.Release() && Fecha o Form
Última edição por Marcos Guedes em 21/7/2010, 16:17, editado 3 vez(es)
Marcos Guedes- Webmaster

[Tópico Único] - Dicas e Truques
Rodando a aplicação a partir de sua pasta de instalação:
- Código:
SET DEFAULT TO (ADDBS(JUSTPATH(SYS(16,0))))
Última edição por Marcos Guedes em 8/9/2009, 09:35, editado 4 vez(es)
Marcos Guedes- Webmaster

Re: [Tópico Único] - Dicas e Truques
Colorindo itens numa Grid:
Segue um exemplo colorindo itens marcados/deletados (Neste caso é necessário que a aplicação esteja com o SET DELETED OFF).
Colocar o código abaixo no INIT do formulário que contém a GRID:
Segue um exemplo colorindo itens marcados/deletados (Neste caso é necessário que a aplicação esteja com o SET DELETED OFF).
Colocar o código abaixo no INIT do formulário que contém a GRID:
- Código:
LOCAL coluna as Column
FOR EACH m.coluna IN this.nomeDaGRID.Columns
*!* Se eu quizer alguma cor para o fundo
m.coluna.DynamicBackColor = "IIF(DELETED(),RGB(255,255,213),rgb(255,255,255))"
*!* Se eu quizer alguma cor para a letra
m.coluna.DynamicForeColor = "IIF(DELETED(),RGB(255,0,0),rgb(0,0,0))"
ENDFOR
Última edição por Marcos Guedes em 18/7/2009, 12:03, editado 1 vez(es) (Razão : Retirei uma variável que não estava sendo utilizada.)
Marcos Guedes- Webmaster

Re: [Tópico Único] - Dicas e Truques
Utilizando "m." em variáveis:
Existe uma grande importância em acrescentar o "m." como prefixo em uma variável!
Quando fazemos algo do tipo:
O VFP, antes de mais nada, verifica se há alguma tabela/cursor selecionado, e se o(a) mesmo(a) tem um campo chamado "campo1", sendo assim ele retorna o valor do campo "campo1", em caso contrário, ele retorna o valor da variável "campo1".
Quando colocamos o "m.", estamos informado ao fox que estamos tratando de uma variável e não de um campo, logo o fox não verificará se alguma tabela está aberta, para depois nos retornar o valor da variável.
O seguinte exemplo tentará esclarecer a dica:
Existe uma grande importância em acrescentar o "m." como prefixo em uma variável!
Quando fazemos algo do tipo:
- Código:
MESSAGEBOX(campo1)
O VFP, antes de mais nada, verifica se há alguma tabela/cursor selecionado, e se o(a) mesmo(a) tem um campo chamado "campo1", sendo assim ele retorna o valor do campo "campo1", em caso contrário, ele retorna o valor da variável "campo1".
Quando colocamos o "m.", estamos informado ao fox que estamos tratando de uma variável e não de um campo, logo o fox não verificará se alguma tabela está aberta, para depois nos retornar o valor da variável.
O seguinte exemplo tentará esclarecer a dica:
- Código:
CREATE CURSOR TESTE (campo1 C(14))
INSERT INTO TESTE VALUES ("Valor do Campo")
LOCAL campo1 AS INTEGER
*!* Neste caso eu atribuiria valores da seguinte forma:
*!* m.campo1 = "Este é o valor de uma variável"
*!* Mas a forma abaixo também é válida!
campo1 = "Este é o valor de uma variável"
SELECT "TESTE"
MESSAGEBOX(campo1) && Campo do cursor
MESSAGEBOX(m.campo1) && Variável
USE IN SELECT("teste")
Marcos Guedes- Webmaster

Re: [Tópico Único] - Dicas e Truques
Formulário redondo:
Fonte original:
[Você precisa estar registrado e conectado para ver este link.]
- Código:
PUBLIC oform
oform = CREATEOBJECT("Tform")
oform.VISIBLE = .T.
* end of main
DEFINE CLASS tform AS FORM
#DEFINE badgediameter 500
#DEFINE topmargin 1
#DEFINE leftmargin 2
WIDTH=500
HEIGHT=500
AUTOCENTER=.T.
DESKTOP=.T.
SHOWWINDOW = 2
PICTURE="fundo.jpg"
hrgn=0
ADD OBJECT lbl AS LABEL WITH CAPTION="Senha:",;
FONTNAME="Arial", FONTSIZE=9, bold=.T., BACKSTYLE=0, ALIGNMENT=2,;
FORECOLOR=RGB(255,255,225), LEFT=384, TOP=214, WIDTH=100, HEIGHT=25;
ADD OBJECT txt AS TEXTBOX WITH WIDTH=100, HEIGHT=24,;
LEFT=382, TOP=230, FORECOLOR=RGB(128,128,128),PASSWORDCHAR="X"
ADD OBJECT cmd AS COMMANDBUTTON WITH WIDTH=40, HEIGHT=25,;
LEFT=384, TOP=265, CAPTION="Ok", DEFAULT=.T.
ADD OBJECT fxform AS COMMANDBUTTON WITH WIDTH=55, HEIGHT=25,;
LEFT=430, TOP=265, CAPTION="Fechar", DEFAULT=.T.
PROCEDURE INIT
*
DO DECL
ENDPROC
PROCEDURE ACTIVATE
*
IF THIS.hrgn = 0
THIS.regionon
ENDIF
ENDPROC
PROCEDURE regionon
#DEFINE sm_cysize 31
#DEFINE sm_cxframe 32
#DEFINE sm_cyframe 33
LOCAL HWND, x0, y0, x1, y1
* calculating position of the region
x0 = getsystemmetrics(sm_cxframe) + leftmargin
y0 = getsystemmetrics(sm_cysize) +;
getsystemmetrics(sm_cyframe) + topmargin
x1 = x0 + badgediameter
y1 = y0 + badgediameter
* creating an elliptical region
THIS.hrgn = createellipticrgn (x0, y0, x1, y1)
HWND = getfocus()
* applying the region to the form
IF setwindowrgn(HWND, THIS.hrgn, 1) = 0
* if failed then release the handle
= deleteobject (THIS.hrgn)
THIS.hrgn = 0
ENDIF
ENDPROC
PROCEDURE MOUSEDOWN
LPARAMETERS nbutton, nshift, nxcoord, nycoord
#DEFINE wm_syscommand 0x112
#DEFINE wm_lbuttonup 0x202
#DEFINE mouse_move 0xf012
IF nbutton = 1
LOCAL hwindow
hwindow = getfocus()
= releasecapture()
= sendmessage(hwindow, wm_syscommand, mouse_move, 0)
= sendmessage(hwindow, wm_lbuttonup, 0, 0)
ENDIF
ENDPROC
PROCEDURE cmd.CLICK
WITH THISFORM
IF EMPTY(.txt.VALUE)
.txt.SETFOCUS
MESSAGEBOX(" Preenchimento obrigatório !",64+0+0,"Atenção")
RETURN .F.
ENDIF
IF .txt.VALUE # '12345'
=MESSAGEBOX('Senha "'+(ALLTRIM(.txt.VALUE))+'" é inválida !',24+0+0,'Atenção')
.txt.SETFOCUS
RETURN .F.
ELSE
tudo_ok = .T.
DODEFAULT()
ENDIF
ENDWITH
THISFORM.RELEASE
ENDPROC
PROCEDURE fxform.CLICK
THISFORM.RELEASE
ENDPROC
ENDDEFINE
PROCEDURE DECL
DECLARE INTEGER GetFocus IN user32
DECLARE INTEGER DeleteObject IN gdi32 INTEGER hObject
DECLARE INTEGER GetSystemMetrics IN user32 INTEGER nIndex
DECLARE INTEGER ReleaseCapture IN user32
DECLARE INTEGER SendMessage IN user32;
INTEGER HWND, INTEGER Msg,;
INTEGER wParam, INTEGER LPARAM
DECLARE INTEGER CreateEllipticRgn IN gdi32;
INTEGER nLeftRect, INTEGER nTopRect,;
INTEGER nRightRect, INTEGER nBottomRect
DECLARE INTEGER SetWindowRgn IN user32;
INTEGER HWND, INTEGER hRgn, INTEGER bRedraw
ENDPROC
Fonte original:
[Você precisa estar registrado e conectado para ver este link.]
Marcos Guedes- Webmaster

Re: [Tópico Único] - Dicas e Truques
Encontrei esta função no Help do fox e achei interessante compartilhar com os colegas.
Muitas respostas que alcançamos com várias linhas de códigos, podemos resumir a esta simples função GETENV()
Muitas respostas que alcançamos com várias linhas de códigos, podemos resumir a esta simples função GETENV()
- Código:
?"Nome do computador: "
?? GETENV("COMPUTERNAME")
?"Drive primário: "
?? GETENV("HOMEDRIVE")
?"Pasta do usuário: "
?? GETENV("HOMEPATH")
?"Número de processos: "
?? GETENV("NUMBER_OF_PROCESSORS")
?"Sistema Operacional: "
?? GETENV("OS")
?"Processador: "
?? GETENV("PROCESSOR_IDENTIFIER")
?"Pasta arquivos de programas: "
?? GETENV("ProgramFiles")
?"Sessão: "
?? GETENV("SESSIONNAME")
?"Driver do sistema: "
?? GETENV("SystemDrive")
?"Pasta temporária(TEMP): "
?? GETENV("TEMP")
?"Pasta temporária(TMP): "
?? GETENV("TMP")
?"Nome do usuário: "
?? GETENV("USERNAME")
?"Pasta do usuário: "
?? GETENV("USERPROFILE")
?"Diretório do Windows: "
?? GETENV("windir")
?
*!* Outros exemplos:
? GETENV("ALLUSERSPROFILE")
? GETENV("APPDATA")
? GETENV("CommonProgramFiles")
? GETENV("ComSpec")
? GETENV("FP_NO_HOST_CHECK")
? GETENV("LOCALAPPDATA")
? GETENV("LOGONSERVER")
? GETENV("Path")
? GETENV("PATHEXT")
? GETENV("PROCESSOR_ARCHITECTURE")
? GETENV("PROCESSOR_LEVEL")
? GETENV("PROCESSOR_REVISION")
? GETENV("ProgramData")
? GETENV("PUBLIC")
? GETENV("SystemRoot")
? GETENV("USERDOMAIN")
? GETENV("VS90COMNTOOLS")
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: [Tópico Único] - Dicas e Truques
Abrindo o painel de controle de data e hora do windows:
- Código:
Run /N Control Timedate.cpl
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: [Tópico Único] - Dicas e Truques
Alterando a propriedade de vários objetos de uma única vez:
Nota: O exemplo torna todos os textbox's de um form com a propriedade READONLY = .F.
- Código:
thisform.SetAll("readonly", .f., "Textbox")
Nota: O exemplo torna todos os textbox's de um form com a propriedade READONLY = .F.
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: [Tópico Único] - Dicas e Truques
Utilizando o DOEVENTS para dar continuidades a processos:
Autor: Borislav Borissov
- Código:
oform = CREATEOBJECT([Form1])
oform.SHOW(1)
DEFINE CLASS form1 AS FORM
DOCREATE = .T.
bcancelloop = .F.
NAME = "form1"
ADD OBJECT command1 AS COMMANDBUTTON WITH ;
TOP = 125, ;
LEFT = 8, ;
HEIGHT = 27, ;
WIDTH = 111, ;
CAPTION = "Start Loop", ;
NAME = "Command1"
ADD OBJECT command2 AS COMMANDBUTTON WITH ;
TOP = 125, ;
LEFT = 130, ;
HEIGHT = 27, ;
WIDTH = 111, ;
CAPTION = "Cancel Loop", ;
NAME = "Command2"
ADD OBJECT label1 AS LABEL WITH ;
AUTOSIZE = .T., ;
CAPTION = "Press START", ;
HEIGHT = 17, ;
LEFT = 31, ;
TOP = 45, ;
WIDTH = 40, ;
NAME = "Label1"
PROCEDURE command1.CLICK
THISFORM.bcancelloop = .F.
lncounter = 0
DO WHILE .T.
lncounter = lncounter + 1
THISFORM.label1.CAPTION = TRANSFORM(lncounter)
DOEVENTS
IF THISFORM.bcancelloop
THISFORM.label1.CAPTION = [Loop is canceled]
EXIT
ENDIF
ENDDO
ENDPROC
PROCEDURE command2.CLICK
THISFORM.bcancelloop = .T.
ENDPROC
ENDDEFINE
Autor: Borislav Borissov
Última edição por Marcos Guedes em 8/8/2009, 10:21, editado 1 vez(es)
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: [Tópico Único] - Dicas e Truques
Centralizar imagem no SCREEN do fox:
- Código:
_screen.AddObject("LOGO","Image")
_screen.LOGO.Picture=GETPICT()
_screen.LOGO.left=(_Screen.width/2) - (_screen.LOGO.width/2)
_screen.LOGO.Top =(_Screen.Height/2) - (_screen.LOGO.Height/2)
_screen.LOGO.BackStyle = 0 && Transparente
_screen.LOGO.Visible = .T.
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: [Tópico Único] - Dicas e Truques
Verificando se um objeto tem, ou não, uma propriedade:
- Código:
CLEAR
LOCAL obj as Object
m.obj = NEWOBJECT("classeteste")
?PEMSTATUS(m.obj, 'prop1',5)
?PEMSTATUS(m.obj, 'prop3',5)
?PEMSTATUS(m.obj, 'modelo1',5)
?PEMSTATUS(m.obj, 'modelo3',5)
m.obj = null
DEFINE CLASS classeteste AS CUSTOM
prop1 = NULL
prop2 = NULL
PROCEDURE modelo1 AS void
ENDPROC
PROCEDURE modelo2 AS void
ENDPROC
ENDDEFINE
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: [Tópico Único] - Dicas e Truques
Separando as cores de um resultado obtidas pela função GETCOLOR():
Fonte:
Grupo Fox Br, postado por Thiago Takehana.
- Código:
CLEAR
lncor = GETCOLOR()
?getred(lncor)
?getgreen(lncor)
?getblue(lncor)
FUNCTION getred(tncolor)
RETURN BITAND(tncolor, 0x000000ff)
ENDFUNC
FUNCTION getgreen(tncolor)
RETURN BITRSHIFT(BITAND(tncolor, 0x0000ff00), 8)
ENDFUNC
FUNCTION getblue(tncolor)
RETURN BITRSHIFT(BITAND(tncolor, 0x00ff0000), 16)
ENDFUNC
Fonte:
Grupo Fox Br, postado por Thiago Takehana.
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: [Tópico Único] - Dicas e Truques
Manipulando Formulários:
- Código:
DO FORM "seuForm.scx" NAME formAberto
formAberto.WindowState = 1 && Minimza a janela
formAberto.WindowState = 0 && Restaura a janela
formAberto.show() && Traz para frente
formAberto.Release() && Fecha o Form
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: [Tópico Único] - Dicas e Truques
Escolhendo o papel para impressão:
- Código:
SYS(1037)
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: [Tópico Único] - Dicas e Truques
Exemplo de impressão utilizando o "@... SAY":
- Código:
SET DEVICE TO PRINTER
SET PRINTER ON
@ PROW(), PCOL() SAY "Linha 1"
@ PROW()+1, 0 SAY "Linha 2"
@ PROW()+1, 0 SAY "Linha 3"
SET PRINTER OFF
SET PRINTER TO
SET DEVICE TO SCREEN
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Página 1 de 3 • 1, 2, 3 
Página 1 de 3
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum
» Ajuda com Imagens no MySQL
» Registrar OCX Windows Seven
» Criar Variáveis em sequencia
» No final a Impressora não Ejecta cem corta o papel
» Instalando MySQL no linux
» Como Criar arquivos de Log`s para certos usuarios
» MySQL X VFP @MEMO
» Dirf
» EXE Instalador Não Executa
» SQL Server Setup
» localizar registro no postgreslq (alterar/incluir)
» Saber se existe uma tabela??
» Empacotar arquivos em um único executável
» VAGAS ANALISTA DE SISTEMAS - VISUAL FOX
» Escrever a DATA por extenso
» ActionScript - Introdução
» Selecionar campo com mais de 9 caracteres
» CEP do BRASIL e dos UFs do brasil com codigo do IBGE para nf - <<<
» Tutorial HTML