MsgYesNo: Tem como descentralizar ?
Moderador: Moderadores
MsgYesNo: Tem como descentralizar ?
Bom dia,
Alguém sabe me dizer se tem como colocar a caixa de diálogo MSGYESNO em outra posição da tela que não seja o centro, ou seja, colocar na parte inferior da tela e mais a direita?
Agradecimentos antecipados,
Gilvandi
Alguém sabe me dizer se tem como colocar a caixa de diálogo MSGYESNO em outra posição da tela que não seja o centro, ou seja, colocar na parte inferior da tela e mais a direita?
Agradecimentos antecipados,
Gilvandi
Editado pela última vez por Pablo César em 17 Out 2012 12:32, em um total de 1 vez.
Razão: Título re-editado
Razão: Título re-editado
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
MsgYesNo: Tem como descentralizar ?
Eu tenho feito uma função própria pra isso. No prg aplicativo STRU (disponível na seção de Downloads) tem uma função chamada MyAlert, onde o terceiro parâmetro coloca nRow abaixo. Talvez possa dar uma idéia.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
MsgYesNo: Tem como descentralizar ?
Mover a janela seria o caso, se fosse possível. Não fiz nenhum teste, mas acredito que obtendo o handle da janela, seja através do título, você poderia utilizar o MoveWindow( FormHandle, 0, 0, Width, Height, .t. ) ou SetWindowPos como esta ultima função que é apresentada na função C abaixo:
Código: Selecionar todos
#pragma BEGINDUMP
#define HB_OS_WIN_USED
#define _WIN32_WINNT 0x0400
#include <windows.h>
#include "hbapi.h"
#include "hbapiitm.h"
HB_FUNC ( C_CENTER )
{
RECT rect;
int w, h, x, y;
GetWindowRect((HWND) hb_parnl (1), &rect);
w = rect.right - rect.left;
h = rect.bottom - rect.top;
SystemParametersInfo( SPI_GETWORKAREA, 1, &rect, 0 );
x = rect.right - rect.left;
y = rect.bottom - rect.top;
SetWindowPos( (HWND) hb_parnl (1), HWND_TOP, (x - w) / 2, (y - h) / 2 + 1, 0, 0, SWP_NOSIZE | SWP_NOACTIVATE ) ;
}
#pragma ENDDUMPUm clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
MsgYesNo: Tem como descentralizar ?
Pablo,
Boa tarde,
Não conseguí compilar o STRU.PRG, deu vários erros, inclusive nas cláusulas:
PICTALIGNMENT TOP
ROWSOURCE NIL
COLUMNFIELDS NIL
entre outras...
Estou usando o HARBOUR 3.1.0dev (Ref. 17094)
Gilvandi
Boa tarde,
Não conseguí compilar o STRU.PRG, deu vários erros, inclusive nas cláusulas:
PICTALIGNMENT TOP
ROWSOURCE NIL
COLUMNFIELDS NIL
entre outras...
Estou usando o HARBOUR 3.1.0dev (Ref. 17094)
Gilvandi
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
MsgYesNo: Tem como descentralizar ?
Você pode até compilar o STRU, sempre e quando você utilizar o HMG de preferência a versão 3.0.44, pois o arquivo Stru.hbp encontra-se no pacote. Mas não foi isso que eu indiquei. Eu disse para você procurar a Function MyAlert() e você poderia controlar adicionando o valor no terceiro parâmetro.Vandi escreveu:Não conseguí compilar o STRU.PRG, deu vários erros
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
MsgYesNo: Tem como descentralizar ?
Ok, Pablo,
Já havia entendido que era apenas para usar a função MyAlert, mas eu tentei compilar simplesmente porque queria ver antecipadamente o funcionamento da mesma.
Gilvandi
Já havia entendido que era apenas para usar a função MyAlert, mas eu tentei compilar simplesmente porque queria ver antecipadamente o funcionamento da mesma.
Gilvandi
MsgYesNo: Tem como descentralizar ?
Pablo,
Boa tarde,
Desculpe incomodá-lo com um assunto tão "pequeno", mas é que coloquei a função MyAlert no meu sistema, fiz alguns teste mas não funcionou. Mudei o terceiro parâmetro da função (nRow), ora para 200 e ora para 4, porém não surtiu qualquer efeito. A janela de diálogo permaneceu centralizada.
Onde foi que eu errei?
Gilvandi
Boa tarde,
Desculpe incomodá-lo com um assunto tão "pequeno", mas é que coloquei a função MyAlert no meu sistema, fiz alguns teste mas não funcionou. Mudei o terceiro parâmetro da função (nRow), ora para 200 e ora para 4, porém não surtiu qualquer efeito. A janela de diálogo permaneceu centralizada.
Onde foi que eu errei?
Gilvandi
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
MsgYesNo: Tem como descentralizar ?
Imagina, não é incômodo. Inclusive esta experiência que passamos juntos, conseguimos detectar uma pequena carência no código STRU.Vandi escreveu:Desculpe incomodá-lo com um assunto tão "pequeno"
Você está certo, está faltando o código diferenciando o código interno C_CENTER, pois eu não incluído outro de forma diferenciada.coloquei a função MyAlert no meu sistema, fiz alguns teste mas não funcionou. Mudei o terceiro parâmetro da função (nRow), ora para 200 e ora para 4, porém não surtiu qualquer efeito.
Então nessa mesma Function MyAlert, altere a linha onde chama C_CENTER(GetFormHandle( "MyAlert"),nRow) por W_CENTER(GetFormHandle( "MyAlert"),nRow)
E inclua este código no pragma:
Código: Selecionar todos
HB_FUNC ( W_CENTER )
{
RECT rect;
int w, h, x, y;
GetWindowRect((HWND) hb_parnl( 1 ), &rect);
w = rect.right - rect.left;
h = rect.bottom - rect.top;
SystemParametersInfo( SPI_GETWORKAREA, 1, &rect, 0 );
x = rect.right - rect.left;
y = rect.bottom - rect.top;
SetWindowPos( (HWND) hb_parnl (1), HWND_TOP, (x - w) / 2, ((y - h) / 2 + 1)+(16*hb_parnl( 2 )), 0, 0, SWP_NOSIZE | SWP_NOACTIVATE ) ;
}Caso você não queira horizontalmente centralizada, você poderia passar outro parâmetro informando a coluna on deve começar. Aí terá que substituir rect.top por hb_parnl( 3 ) caso passe 3 parâmetros no W_CENTER.A janela de diálogo permaneceu centralizada.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
MsgYesNo: Tem como descentralizar ?
Pablo,
Boa noite...
Primeiramente peço desculpas pela demora em responder... e depois quero dizer que com a alteração sugerida o sistema ficou 100%, ótimo mesmo...
Obrigado,
Gilvandi
Boa noite...
Primeiramente peço desculpas pela demora em responder... e depois quero dizer que com a alteração sugerida o sistema ficou 100%, ótimo mesmo...
Obrigado,
Gilvandi
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
MsgYesNo: Tem como descentralizar ?
pessoal, boa noite!
estou agora migrando aos poucos de CONSOLE p/ GUI, e, usando a HMG 3.0.xx descobri que é possível no lugar de usar mensagens comuns ao usuário, é possível que elas estejam já modo GRÁFICO. Isso é ótimo!
São as MSG + yesno, okcancel, info, exclamation, box, etc...
Estou implementando tudo aos poucos, e, a começar com a MSGYESNO e MSGINFO. Só que tem um problema.
Vejamos o código antigo abaixo no modo CONSOLE:
Agora observem que no modo GRÁFICO, eliminei bastante coisa:
Na MSGYesNo, o resultado esperado às vezes não é o mesmo do modo CONSOLE.
Descobri que se eu usar .not. o resultado é estranho.
Por exemplo, no código abaixo:
No modo CONSOLE tá tudo certo, o processador harbour no RUN-TIME entende corretamente que foi pressionado o não e então é pra desfazer um possível ESC que fo pressionado e volta para o do while .t. .
Mas essa mesma coisa no modo GUI, além de o pressionamento do SIM ele entender como NÃO, se pressionarmos NÃO (já que está aceitando o contrário), ele deveria apenas sair do GET em questão e ir para outro lugar, mas, estranhamente é como se fosse pressionado vários ESCs para sair de todas as telas e voltar ao início do módulo.
O código que contém o CONFIRMA acima e o while .t. é (só pra efeito didático):
Bom, alguém aqui, sabe me dizer por que isso acontece e como resolver?
estou agora migrando aos poucos de CONSOLE p/ GUI, e, usando a HMG 3.0.xx descobri que é possível no lugar de usar mensagens comuns ao usuário, é possível que elas estejam já modo GRÁFICO. Isso é ótimo!
São as MSG + yesno, okcancel, info, exclamation, box, etc...
Estou implementando tudo aos poucos, e, a começar com a MSGYESNO e MSGINFO. Só que tem um problema.
Vejamos o código antigo abaixo no modo CONSOLE:
Código: Selecionar todos
function CONFIRMA (TEXTO)
local LIN := 16,;
COL := 0,;
CENTRO := 0,;
LARG_JAN := 0,;
CONTROLE := 2,;
SALVA_COR := setcolor (),;
SALVA_TELA := nil,;
SALVA_INTENSIDADE := set (_SET_INTENSITY)
if len (TEXTO) + 2 < 16
TEXTO := TEXTO + SPACE(16-(LEN(TEXTO)+2))
endif set (_SET_INTENSITY,.t.)
TEXTO := TEXTO + ' ? '
LARG_JAN = len (TEXTO) + 2
if LARG_JAN < 16
LARG_JAN = 16
endif
COL := (80 - LARG_JAN) / 2
SALVA_TELA := savescreen (LIN,0,LIN + 5,maxcol ())
setcolor (COR_CONFIRMA)
setcolor (COR_REVERSA ())
@ LIN,COL clear to LIN + 3,COL + LARG_JAN
SOMBRA (LIN,COL,LIN + 3,COL + LARG_JAN)
@ LIN,COL to LIN + 3,COL + LARG_JAN
setcolor (COR_CONFIRMA)
@ LIN + 1,COL + 2 say TEXTO
CENTRO := (LARG_JAN - 9) / 2
@ LIN + 2,COL + CENTRO prompt 'Sim'
@ LIN + 2,COL + CENTRO + 6 prompt 'N„o'
menu to CONTROLE
if CONTROLE = 1
CONTROLE := .t.
else
CONTROLE := .f.
endif
setcolor (SALVA_COR)
set (_SET_INTENSITY,SALVA_INTENSIDADE)
restscreen (LIN,0,LIN + 5,maxcol (),SALVA_TELA)
return (CONTROLE)
Código: Selecionar todos
function CONFIRMA (TEXTO,PROGRAMA)
local LIN := 16,;
COL := 0,;
CENTRO := 0,;
LARG_JAN := 0,;
CONTROLE := 2,;
SALVA_COR := setcolor (),;
SALVA_TELA := nil,;
SALVA_INTENSIDADE := set (_SET_INTENSITY)
if len (TEXTO) + 2 < 16
TEXTO := TEXTO + SPACE(16-(LEN(TEXTO)+2))
endif
MsgYesNo (TEXTO,PROGRAMA)
return // (CONTROLE)Descobri que se eu usar .not. o resultado é estranho.
Por exemplo, no código abaixo:
Código: Selecionar todos
if .not. CONFIRMA ('Confirma Dados')
loop
endifMas essa mesma coisa no modo GUI, além de o pressionamento do SIM ele entender como NÃO, se pressionarmos NÃO (já que está aceitando o contrário), ele deveria apenas sair do GET em questão e ir para outro lugar, mas, estranhamente é como se fosse pressionado vários ESCs para sair de todas as telas e voltar ao início do módulo.
O código que contém o CONFIRMA acima e o while .t. é (só pra efeito didático):
Código: Selecionar todos
do while .t.
CAN_TECLA_F3 := .t.
set key TECLA_CONT_ANT to
mIND := achoice (12,01,16,77,mLINHA,.T.,'fACH_004',mIND)
set key TECLA_CONT_ANT to CONTEUDO_ANTERIOR
CAN_TECLA_F3 := .f.
if lastkey () = 27
SALVA_CP := savescreen (0,0,maxrow (),maxcol ())
// if .not. CONFIRMA ('Confirma Dados')
if CONFIRMA ('Confirma Dados')
exit
else
loop
endif
// exit
elseif lastkey () = 13
mCDPRODUTO := val (substr (mLINHA [mIND],01,13))
* Consulta se j existe o produto/grade na venda
EXISTE_PRD := EXISTE_PRDUTO ()
@ 12 + nLinGet,01 get mCDPRODUTO picture pCDPRODUTO when empty (mCDPRODUTO) valid fCDPRODUTO ()
read
mVT_MERCAD := 0
mVR_DESCON := 0
mVT_VENDA := 0
for mI = 1 to 15
*mQT_VENDA := val (substr (mLINHA [mI],52,06))
mQT_VENDA := val (substr (mLINHA [mI],51,07)) // Modificado p/Mim em 09/05/01, p/ poder func. cm,kg.
mVR_UNITAR := val (substr (mLINHA [mI],59,01) +;
substr (mLINHA [mI],61,03) + '.'+;
substr (mLINHA [mI],65,02))
mVR_TOTAL := val (str (mQT_VENDA * mVR_UNITAR,8,2))
mVT_MERCAD += mVR_TOTAL
next
mVR_DESCON := mVT_MERCAD * (mVR_PERDES/100)
mVT_VENDA := mVT_MERCAD - mVR_DESCON
MOSTRA_COMPLEMENTO ()
endif
enddoGrato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
MsgYesNo: Tem como descentralizar ?
uma última informação que acabo de descobrir no google, mas que também não funcionou. foi modificar o MSGyesno para:
vlw mais uma vez!
Código: Selecionar todos
MsgYesNo (TEXTO,PROGRAMA,{'Yes','No'})Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MsgYesNo: Tem como descentralizar ?
Uma outra forma de exibir caixa de diálogo usando api do windows.
Código: Selecionar todos
IF MensagemGui("Deseja realmente sair?", 1) == 1
QUIT
ENDIF
Código: Selecionar todos
#include "hbdyn.ch"
#define MB_OK 0x00000000
#define MB_OKCANCEL 0x00000001
#define MB_ABORTRETRYIGNORE 0x00000002
#define MB_YESNOCANCEL 0x00000003
#define MB_YESNO 0x00000004
#define MB_RETRYCANCEL 0x00000005
#define MB_CANCELTRYCONTINUE 0x00000006
#define MB_ICONHAND 0x00000010
#define MB_ICONQUESTION 0x00000020
#define MB_ICONEXCLAMATION 0x00000030
#define MB_ICONASTERISK 0x00000040
#define MB_USERICON 0x00000080
#define MB_DEFBUTTON2 0x00000100
#define MB_DEFBUTTON3 0x00000200
#define MB_DEFBUTTON4 0x00000300
#define MB_SYSTEMMODAL 0x00001000
#define MB_TASKMODAL 0x00002000
#define MB_HELP 0x00004000
#define MB_NOFOCUS 0x00008000
#define MB_SETFOREGROUND 0x00010000
#define MB_DEFAULT_DESKTOP_ONLY 0x00020000
#define MB_TOPMOST 0x00040000
#define MB_RIGHT 0x00080000
#define MB_RTLREADING 0x00100000
FUNCTION MensagemGui(cMensagem,nPergunta)
LOCAL nEscolha:=0
SWITCH nPergunta
CASE 1
nEscolha:=hb_dynCall( { "MessageBoxA", "user32.dll",HB_DYN_CALLCONV_STDCALL},0,cMensagem, "Aviso do Sistema",hb_bitOr( MB_YESNO, MB_ICONASTERISK ))
IF nEscolha = 6
nEscolha:=1
ELSEIF nEscolha = 7
nEscolha:=2
ENDIF
EXIT
CASE 2
nEscolha:=hb_dynCall( { "MessageBoxA", "user32.dll",HB_DYN_CALLCONV_STDCALL},0,cMensagem, "Aviso do Sistema",hb_bitOr( MB_YESNO, MB_ICONASTERISK, MB_DEFBUTTON2 ))
IF nEscolha = 6
nEscolha:=1
ELSEIF nEscolha = 7
nEscolha:=2
ENDIF
EXIT
CASE 3
nEscolha:=hb_dynCall( { "MessageBoxA", "user32.dll",HB_DYN_CALLCONV_STDCALL},0,cMensagem, "Aviso do Sistema",hb_bitOr( MB_YESNOCANCEL, MB_ICONASTERISK ))
IF nEscolha = 6
nEscolha:=1
ELSEIF nEscolha = 7
nEscolha:=2
ELSE
nEscolha:=-1
ENDIF
EXIT
CASE 4
nEscolha:=hb_dynCall( { "MessageBoxA", "user32.dll",HB_DYN_CALLCONV_STDCALL},0,cMensagem, "Aviso do Sistema",hb_bitOr( MB_YESNOCANCEL, MB_ICONASTERISK, MB_DEFBUTTON3 ))
IF nEscolha = 6
nEscolha:=1
ELSEIF nEscolha = 7
nEscolha:=2
ELSE
nEscolha:=-1
ENDIF
EXIT
ENDSWITCH
hb_LibFree("user32.dll")
RETURN nEscolha
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
MsgYesNo: Tem como descentralizar ?
prezado professor "asimoes", fiz o teste de sua sugestão, conforme código abaixo:
Então, o resultado foi o mesmo usando o MSGYESNO, o qual é:
se pressionar, clicar em SIM o sistema realmente sai.
Mas, se clicarmos em NÃO o sistema não sai, mas, também a mensagem fica ali em loop, e, de acordo com o ELSE acima, deveria voltar ao início do do while .t. e não a MENSAGEM ficar em LOOP, pois é isso que está acontencendo.
Aguardo mais instruções prezado parceiro e colaborador!
Código: Selecionar todos
do while .t.
INICIO := .t.
if INTEGRIDADE_OK ()
TELA_PADRAO (procname (),DESC_SIST,COR_DESKTOP,chr (189))
aadd (TECLAS,{'Esc','Retorna'})
aadd (TECLAS,{'F4','Consulta'})
TECLAS_FUNCAO (TECLAS)
if VERIFICOU_SENHA ()
TECLAS := {}
aadd (TECLAS,{'Esc','Retorna'})
aadd (TECLAS,{'F1','Help'})
aadd (TECLAS,{'F2','Utilit rios'})
aadd (TECLAS,{'F4','Consultas'})
TECLAS_FUNCAO (TECLAS)
setcolor (COR_NORMAL)
ABRE_ARQ_ACESSO ()
MCI10000 ()
else
// if CONFIRMA2 ('Confirma a sa¡da do sistema') // modificado p/modo gráfico 2/12/15w
// if MsgYesNo ('Confirma a Saída do Sistema ?')
IF MensagemGui ("Deseja realmente sair?", 1) == 1 // if CONFIRMA ('Confirma a saída do sistema')
setcolor (SALVA_COR)
@ 00,00 clear to maxrow (),maxcol ()
@ 00,00 say 'MVinfo Sistemas & Automa‡Æo ...'
@ 01,00 say 'Obrigado pelo acesso. Volte Sempre !'
inkey(3)
exit
else
loop
endif
endif
else
setcolor (SALVA_COR)
@ 00,00 clear to maxrow (),maxcol ()
@ 00,00 say 'Acesso negado ...'
@ 01,00 say 'Arquivo de Controle Alterado !'
@ 02,00 say "Pressione <ENTER> para encerrar..." // acrescentada em 05/09/11w
inkey(0) // coloquei provisoriamente pra ver onde o SiCCA deu erro - 06/09/11w
exit
endif
close all
enddose pressionar, clicar em SIM o sistema realmente sai.
Mas, se clicarmos em NÃO o sistema não sai, mas, também a mensagem fica ali em loop, e, de acordo com o ELSE acima, deveria voltar ao início do do while .t. e não a MENSAGEM ficar em LOOP, pois é isso que está acontencendo.
Aguardo mais instruções prezado parceiro e colaborador!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
MsgYesNo: Tem como descentralizar ?
Não precisa rotinas especiais pra usar muitas funções da API do Windows, porque já fazem parte da hbwin.
Teste se passando referência da janela atual resolve.
Uso assim no Harbour 3.4, mas sinceramente nunca reparei como fica a posição da mensagem:
incluir no hbp a linha hbwin.hbc
Mas tem um detalhe que mencionou:
Está passando aos poucos de console pra GUI.
Se é assim, melhor não se preocupar com essa mensagem em estilo Windows agora.
Apenas deixe como rotina separada, e depois vai trocar quando quiser.
Teste se passando referência da janela atual resolve.
Uso assim no Harbour 3.4, mas sinceramente nunca reparei como fica a posição da mensagem:
Código: Selecionar todos
FUNCTION MsgYesNo( cText )
LOCAL lValue
lValue := wapi_MessageBox( wapi_GetActiveWindow(), cText, "Confirmação", MB_YESNO + WIN_MB_ICONQUESTION + WIN_MB_DEFBUTTON2 ) == IDYES
RETURN lValue
Mas tem um detalhe que mencionou:
Está passando aos poucos de console pra GUI.
Se é assim, melhor não se preocupar com essa mensagem em estilo Windows agora.
Apenas deixe como rotina separada, e depois vai trocar quando quiser.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
MsgYesNo: Tem como descentralizar ?
Prezado JQuintas, testei seu exemplo, mas a mensagem de erro foi:
BASE/1003 variable does not exist: MB_YESNO (na linha 5 do exemplo).
E agora patrão?
BASE/1003 variable does not exist: MB_YESNO (na linha 5 do exemplo).
E agora patrão?
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!

